MobileRobotK4/Education/bahan ajar/agile/1_/3.1.1.6_Methodologies_Overv...

587 lines
15 KiB
Plaintext
Raw Normal View History

2025-01-29 14:49:32 +07:00
1
00:00:08,090 --> 00:00:12,110
Setelah menonton video ini, Anda akan dapat menjelaskan pendekatan Waterfall pada perangkat lunak
2
00:00:12,110 --> 00:00:13,560
perkembangan.
3
00:00:13,560 --> 00:00:18,860
Jelaskan masalah dengan pendekatan Waterfall, jelaskan pendekatan Extreme Programming, daftar
4
00:00:18,860 --> 00:00:22,430
nilai pendekatan XP, tentukan Kanban,
5
00:00:22,430 --> 00:00:25,310
dan daftar prinsip-prinsip intinya.
6
00:00:25,310 --> 00:00:28,360
Jadi, mari kita lihat pengembangan Air Terjun tradisional.
7
00:00:28,360 --> 00:00:32,820
Semuanya dimulai dengan fase persyaratan. Orang-orang mengumpulkan persyaratan, melihat
8
00:00:32,820 --> 00:00:35,820
apa yang diinginkan pelanggan, memastikan bahwa kami akan memberikan sesuatu yang
9
00:00:35,820 --> 00:00:38,780
keinginan pelanggan. Setidaknya untuk saat itu.
10
00:00:38,780 --> 00:00:43,960
Jadi ini adalah fase di mana semua yang Anda lakukan adalah mendokumentasikan semua persyaratan dari
11
00:00:43,960 --> 00:00:49,380
mungkin diinginkan pelanggan dalam sistem. Kemudian Anda beralih ke fase desain.
12
00:00:49,380 --> 00:00:51,329
Perhatikan saya menggunakan istilah fase di sini.
13
00:00:51,329 --> 00:00:56,880
Ini sangat penting, karena ada kriteria keluar dan kriteria masuk untuk pindah
14
00:00:56,880 --> 00:00:58,650
dari satu fase ke fase lainnya.
15
00:00:58,650 --> 00:01:03,670
Jadi setelah kami mendapatkan semua persyaratan, kami beralih ke desain, berharap kami memilikinya
16
00:01:03,670 --> 00:01:06,930
semua persyaratan yang sebenarnya kita butuhkan.
17
00:01:06,930 --> 00:01:10,840
Maka pada tahap desain, para arsitek sedang merancang. Mereka mencari tahu bagaimana caranya
18
00:01:10,840 --> 00:01:15,869
kami mengambil persyaratan itu, mengubahnya menjadi perangkat lunak yang berfungsi, dan mereka mendesain keseluruhannya
19
00:01:15,869 --> 00:01:16,869
sistem.
20
00:01:16,869 --> 00:01:20,270
Dan kemudian setelah fase itu selesai, kita beralih ke fase pengkodean.
21
00:01:20,270 --> 00:01:23,840
Jadi di sinilah para pengembang meretas hacking coding.
22
00:01:23,840 --> 00:01:29,039
Sekarang, Anda akan melihat ini disebut Air Terjun dan panah-panah itu mengalir ke bawah.
23
00:01:29,039 --> 00:01:32,599
karena sangat sulit untuk berenang ke atas air terjun.
24
00:01:32,599 --> 00:01:34,649
Ini adalah nama yang sesuai.
25
00:01:34,649 --> 00:01:38,870
Karena ketika Anda berada dalam fase pengkodean, dan Anda mengetahui, ini adalah desain yang buruk, tidak
26
00:01:38,870 --> 00:01:42,930
bekerja, sangat sulit untuk kembali dan mendesain ulang sesuatu.
27
00:01:42,930 --> 00:01:47,590
Faktanya, karena kami memperlakukan pengembangan perangkat lunak seperti proyek teknik sipil, terkadang
28
00:01:47,590 --> 00:01:52,310
beberapa dari desainer tersebut telah pindah ke proyek berikutnya, dan Anda harus menemukannya.
29
00:01:52,310 --> 00:01:56,220
Jadi sangat, sangat sulit untuk kembali dan berenang dengan air terjun.
30
00:01:56,220 --> 00:01:59,150
Kemudian setelah coding, akhirnya kita bisa mengintegrasikan.
31
00:01:59,150 --> 00:02:04,470
Jadi selama ini, kami mengkode secara terpisah, kami tidak mengintegrasikan modul saya dengan modul orang berikutnya
32
00:02:04,470 --> 00:02:07,820
modul. Anda tahu, ada saatnya semua modul itu bersatu. Pertama kali
33
00:02:07,820 --> 00:02:11,849
kami menyadari, apakah semua potongan kode ini bekerja bersama?
34
00:02:11,849 --> 00:02:15,459
Dan kemudian kami beralih ke fase pengujian, karena sekarang kami memiliki sistem yang membuat orang
35
00:02:15,459 --> 00:02:16,730
dapat menguji.
36
00:02:16,730 --> 00:02:21,760
Dan ketika mereka menemukan serangga, mereka harus kembali, berenang ke air terjun, dan membuka beberapa serangga
37
00:02:21,760 --> 00:02:23,989
dalam tahap coding dan melakukan beberapa recoding.
38
00:02:23,989 --> 00:02:28,370
Dan kemudian jika salah satu bug yang mereka uji ternyata, Anda benar-benar perlu mengubahnya
39
00:02:28,370 --> 00:02:33,980
desain karena hal-hal ini tidak berinteraksi dengan baik, jalan, naik ke air terjun, sangat mahal
40
00:02:33,980 --> 00:02:36,569
untuk kembali ke tahap desain.
41
00:02:36,569 --> 00:02:41,580
Dan akhirnya, setelah semua pengujian selesai, kami menerapkan perangkat lunak.
42
00:02:41,580 --> 00:02:43,879
Jadi apa yang salah dengan pendekatan ini?
43
00:02:43,879 --> 00:02:46,490
Yah, tidak ada ketentuan untuk perubahan.
44
00:02:46,490 --> 00:02:48,840
Setiap fase memiliki kriteria masuk dan keluar.
45
00:02:48,840 --> 00:02:51,750
Dan ketika satu berakhir, Anda tahu, yang berikutnya dimulai.
46
00:02:51,750 --> 00:02:55,640
Dan tidak ada ketentuan untuk kembali dan mengubah desain atau mengubah persyaratan
47
00:02:55,640 --> 00:02:57,840
atau apa pun seperti itu.
48
00:02:57,840 --> 00:03:01,940
Jadi masalah lainnya adalah, Anda tidak tahu apakah itu berhasil sampai akhir, kan, tidak ada perantara
49
00:03:01,940 --> 00:03:06,299
pengiriman. Tidak ada yang dikirim, sampai langkah terakhir itu, ketika kami memberikannya ke operasi
50
00:03:06,299 --> 00:03:10,640
tim dan katakan, kirim barang ini ke produksi.
51
00:03:10,640 --> 00:03:14,390
Yang lainnya adalah bahwa setiap langkah berakhir ketika langkah berikutnya dimulai, di situlah ia mendapatkan ini
52
00:03:14,390 --> 00:03:17,590
nama air terjun, di mana hal-hal baru saja diturunkan.
53
00:03:17,590 --> 00:03:22,689
Dan tentu saja, semua ini adalah kesempatan untuk kehilangan informasi, Anda tahu, dan untuk memiliki
54
00:03:22,689 --> 00:03:28,109
kecelakaan terjadi atau orang diblokir, karena mereka tidak dapat menerima, Anda tahu, pekerjaan itu
55
00:03:28,109 --> 00:03:29,400
dari fase sebelumnya.
56
00:03:29,400 --> 00:03:33,080
Dan sekarang Anda sedang menunggu untuk memulai fase berikutnya.
57
00:03:33,080 --> 00:03:38,060
Yang lainnya adalah bahwa kesalahan yang ditemukan di kemudian hari sangat, sangat mahal, sangat mahal untuk ditemukan
58
00:03:38,060 --> 00:03:42,439
sesuatu yang dirancang salah dan menguji dan kembali dan mendesain ulang.
59
00:03:42,439 --> 00:03:46,579
Dan akhirnya, ada waktu tunggu yang lama, tepat di antara mendapatkan perangkat lunak itu
60
00:03:46,579 --> 00:03:51,740
terkirim. Sejak pertama kali Anda menginginkan perangkat lunak, dan Anda merancang perangkat lunak dan
61
00:03:51,740 --> 00:03:52,760
mengkodekannya dan mengujinya.
62
00:03:52,760 --> 00:03:56,569
Dan pada saat Anda akhirnya mengirimkannya dengan waktu yang sangat lama.
63
00:03:56,569 --> 00:04:01,620
Jadi masalahnya di sini adalah tim bekerja secara terpisah, mereka tidak menyadari dampaknya satu sama lain.
64
00:04:01,620 --> 00:04:05,579
Benar, desainer tidak menyadari dampak kode, pembuat kode tidak menyadarinya
65
00:04:05,579 --> 00:04:07,720
dampak untuk mengintegrasikan semua kode bersama-sama.
66
00:04:07,720 --> 00:04:11,139
Di sana semua orang bekerja di silo kecil mereka untuk fase kecil mereka.
67
00:04:11,139 --> 00:04:13,609
Dan kemudian ini harus menjadi pemikiran yang menakutkan.
68
00:04:13,609 --> 00:04:19,470
Orang-orang yang terjauh dari kode, tim operasi yang buruk, harus menjalankan ini
69
00:04:19,470 --> 00:04:21,700
dan mengelola ini dalam produksi, kan?
70
00:04:21,700 --> 00:04:26,750
Mereka tahu sedikit tentang kodenya, dan merekalah yang diharapkan untuk menjalankannya.
71
00:04:26,750 --> 00:04:28,340
Tidak terlalu efisien.
72
00:04:28,340 --> 00:04:31,600
Mari kita bicara tentang metodologi lain, pemrograman ekstrim.
73
00:04:31,600 --> 00:04:33,610
Ini diperkenalkan kembali pada tahun 96.
74
00:04:33,610 --> 00:04:38,140
Kent Beck memperkenalkan ini dan jika Anda melihat grafik di sebelah kanan, Anda akan melihatnya
75
00:04:38,140 --> 00:04:41,490
itu sangat berulang dan berbicara tentang loop.
76
00:04:41,490 --> 00:04:44,680
Anda memiliki rencana rilis utama ini di loop luar.
77
00:04:44,680 --> 00:04:46,400
Dan kemudian Anda punya rencana iterasi.
78
00:04:46,400 --> 00:04:49,280
Jadi rilis mungkin berbulan-bulan, iterasi mungkin berminggu-minggu,
79
00:04:49,280 --> 00:04:54,340
penerimaan mungkin berhari-hari, berdiri rapat sekali sehari, benar, negosiasi pasangan dalam hitungan jam,
80
00:04:54,340 --> 00:04:58,180
unit testing dalam hitungan menit, pasangkan prpgramming dalam hitungan detik.
81
00:04:58,180 --> 00:05:04,690
Anda tahu, ini adalah putaran yang semakin ketat dalam melakukan pekerjaan dan kemudian mendapatkan umpan balik yang cepat.
82
00:05:04,690 --> 00:05:08,160
Ini didasarkan pada pendekatan berulang untuk pengembangan perangkat lunak.
83
00:05:08,160 --> 00:05:10,580
Dan faktanya, dari sinilah Agile mendapatkannya.
84
00:05:10,580 --> 00:05:15,131
Dan maksud di sini adalah untuk meningkatkan kualitas perangkat lunak, bukan? Jadilah responsif terhadap perubahan, jadilah
85
00:05:15,131 --> 00:05:18,930
responsif terhadap kebutuhan pelanggan, melakukan hal-hal sedikit demi sedikit.
86
00:05:18,930 --> 00:05:25,180
Dan begitu banyak orang mengenali Extreme Program sebagai salah satu metode Agile pertama.
87
00:05:25,180 --> 00:05:28,009
Jadi mari kita bicara tentang nilai Extreme Programming.
88
00:05:28,009 --> 00:05:29,620
Pertama adalah kesederhanaan, bukan?
89
00:05:29,620 --> 00:05:30,820
Lakukan apa yang Anda butuhkan
90
00:05:30,820 --> 00:05:36,050
dan tidak lebih, jangan over-engineer, jangan over code, jangan memberikan kode lebih dari pelanggan
91
00:05:36,050 --> 00:05:37,050
diminta.
92
00:05:37,050 --> 00:05:39,069
Tetap sederhana, sangat penting.
93
00:05:39,069 --> 00:05:41,020
Selanjutnya adalah komunikasi.
94
00:05:41,020 --> 00:05:44,830
Semua orang di tim harus berkomunikasi, tahu apa yang dilakukan orang lain, itu mendorong
95
00:05:44,830 --> 00:05:49,639
banyak, banyak komunikasi, dan orang-orang berinteraksi. Sangat penting juga.
96
00:05:49,639 --> 00:05:53,830
Dan kemudian umpan balik, Anda tidak tahu apa yang Anda lakukan kecuali Anda mendapatkan umpan balik.
97
00:05:53,830 --> 00:05:58,540
Jadi memiliki loop umpan balik itu sangat penting untuk pemrograman ekstrem, dan penting untuk Agile
98
00:05:58,540 --> 00:06:00,070
secara umum.
99
00:06:00,070 --> 00:06:04,580
Dan kemudian rasa hormat, semua orang merasa bahwa mereka dihormati di tim, yang dapat mereka tawarkan
100
00:06:04,580 --> 00:06:09,440
saran bahwa mereka dapat membuat saran, dan saran mereka sama berharganya
101
00:06:09,440 --> 00:06:11,270
sebagai saran orang lain di tim.
102
00:06:11,270 --> 00:06:16,520
Tidak ada hierarki, setiap orang memiliki rekan kerja di tim, dan dihormati karena ide-ide mereka.
103
00:06:16,520 --> 00:06:21,020
Dan akhirnya, keberanian, benar, kami tidak menghitung perkiraan kami, kami hanya sangat jujur
104
00:06:21,020 --> 00:06:22,690
tentang kami pikir kami bisa melakukan ini
105
00:06:22,690 --> 00:06:24,130
Dan kami tidak berpikir kami bisa melakukan itu.
106
00:06:24,130 --> 00:06:27,199
Dan kami tidak akan berbohong kepada Anda bahwa kami tahu, kami bisa menyelesaikan ini, ini selesai dalam hal ini
107
00:06:27,199 --> 00:06:28,280
jumlah waktu.
108
00:06:28,280 --> 00:06:32,750
Kami sangat terbuka dan jujur dalam Extreme Programming, ini perkiraannya, ini yang akan kami komit
109
00:06:32,750 --> 00:06:33,750
ke.
110
00:06:33,750 --> 00:06:35,639
Selanjutnya, ada Kanban.
111
00:06:35,639 --> 00:06:38,520
Ini berasal dari sistem manufaktur Jepang.
112
00:06:38,520 --> 00:06:43,221
Dan kanban secara harfiah berarti tanda papan reklame, dan ini semua tentang aliran terus menerus di
113
00:06:43,221 --> 00:06:48,569
lantai manufaktur, di mana kartu atau catatan ini akan mengalir dengan produk dari stasiun
114
00:06:48,569 --> 00:06:52,050
ke stasiun, turun jalur.
115
00:06:52,050 --> 00:06:55,550
Jadi prinsip inti dengan Kanban adalah memvisualisasikan alur kerja.
116
00:06:55,550 --> 00:06:58,450
Jika Anda tidak dapat melihat pekerjaan tersebut, Anda tidak dapat mengelola pekerjaan tersebut.
117
00:06:58,450 --> 00:07:02,080
Dan ini adalah sesuatu yang kita ambil ke Agile juga. Anda akan mengetahui bahwa kami akan pergi
118
00:07:02,080 --> 00:07:03,580
untuk menggunakan papan Kanban dan Agile.
119
00:07:03,580 --> 00:07:08,039
Dan ini semua tentang memvisualisasikan pekerjaan, sangat penting bahwa Anda dapat memahami pekerjaan itu
120
00:07:08,039 --> 00:07:14,660
yang perlu dilakukan, dan semuanya dipertanggungjawabkan. Kanban juga menekankan batasi pekerjaan di
121
00:07:14,660 --> 00:07:19,300
kemajuan. Anda tidak ingin, ketika Anda berada di lantai produksi, Anda tidak ingin pekerjaan dicadangkan di satu tempat
122
00:07:19,300 --> 00:07:20,300
dari stasiun.
123
00:07:20,300 --> 00:07:23,470
Tetapi bahkan ketika Anda sedang mengembangkan perangkat lunak, Anda tidak ingin orang lain mengerjakannya juga
124
00:07:23,470 --> 00:07:25,040
banyak hal sekaligus.
125
00:07:25,040 --> 00:07:29,080
Karena, Anda tahu, Anda hanya dapat mengirimkan 100% dari satu hal yang berfungsi, Anda tidak dapat mengirim
126
00:07:29,080 --> 00:07:30,080
50% dari dua hal.
127
00:07:30,080 --> 00:07:33,180
Jadi jika Anda membuat satu orang mengerjakan dua hal, itu tidak baik.
128
00:07:33,180 --> 00:07:37,300
Dan itu berasal dari Kanban untuk membatasi pekerjaan yang sedang berlangsung.
129
00:07:37,300 --> 00:07:41,860
Lalu ada mengelola dan meningkatkan aliran. Di Kanban, mereka selalu ingin berkembang.
130
00:07:41,860 --> 00:07:46,479
Mereka selalu ingin berubah dan mengerti bagaimana kita bisa mendapatkan aliran yang lebih baik, aliran yang lebih cepat
131
00:07:46,479 --> 00:07:52,889
di lantai produksi, dan kemudian membuat kebijakan eksplisit, sehingga semua orang mengerti
132
00:07:52,889 --> 00:07:54,189
bagaimana hal-hal bekerja.
133
00:07:54,189 --> 00:07:58,659
Dan semua orang mengerti definisi "selesai", apa artinya memiliki sesuatu?
134
00:07:58,659 --> 00:08:04,840
"selesai." Kami mengambil itu juga dari Kanban dalam perencanaan Agile kami untuk memahami apa definisinya
135
00:08:04,840 --> 00:08:06,300
dari "selesai" adalah.
136
00:08:06,300 --> 00:08:11,520
Dan kemudian terus ditingkatkan, sangat, sangat penting untuk mendapatkan umpan balik dan terus menerus
137
00:08:11,520 --> 00:08:12,520
meningkatkan apa yang Anda lakukan.
138
00:08:12,520 --> 00:08:17,850
Jadi Kanban adalah tentang membuat alur bekerja lebih baik, memahaminya, melihatnya,
139
00:08:17,850 --> 00:08:22,530
mampu mengukurnya, dan kemudian terus meningkatkan bagaimana kita bisa mengalir lebih cepat.
140
00:08:22,530 --> 00:08:27,500
Dalam video ini, Anda mempelajari bahwa pendekatan Waterfall tradisional Anda untuk pengembangan perangkat lunak
141
00:08:27,500 --> 00:08:32,520
adalah proses langkah-demi-langkah yang terstruktur yang dapat menyebabkan masalah yang tidak muncul sampai nanti
142
00:08:32,520 --> 00:08:33,980
dalam pengembangan.
143
00:08:33,980 --> 00:08:38,820
Pemrograman ekstrim dikembangkan untuk meningkatkan kualitas perangkat lunak dan responsif terhadap perubahan
144
00:08:38,820 --> 00:08:40,540
persyaratan.
145
00:08:40,540 --> 00:08:46,150
Nilai XP meliputi kesederhanaan, komunikasi, umpan balik, rasa hormat, dan keberanian.
146
00:08:46,150 --> 00:08:52,270
Kanban adalah sistem yang dicirikan dengan memvisualisasikan alur kerja, membatasi pekerjaan yang sedang berjalan, mengelola
147
00:08:52,270 --> 00:08:58,053
dan meningkatkan aliran, membuat kebijakan proses eksplisit dan terus meningkatkan proses.