Model Kanban dalam Rekayasa Perangkat Lunak
Apa itu Kanban?
Kanban adalah kerangka kerja yang sangat populer untuk pengembangan dalam metodologi pengembangan perangkat lunak tangkas. Ini memberikan cara transparan dalam memvisualisasikan tugas dan kapasitas kerja sebuah tim. Ini terutama menggunakan papan fisik dan digital untuk memungkinkan anggota tim memvisualisasikan keadaan proyek yang sedang mereka kerjakan.
Kanban berasal dari Toyota pada tahun 1940-an. Arti Kanban dalam bahasa Jepang adalah "papan reklame." Papan Kanban memiliki kolom dan kartu cerita. Kolom-kolom tersebut tidak ada apa-apanya, tetapi status dan kartu alur kerja tidak lain hanyalah demonstrasi tugas sebenarnya yang dilakukan oleh anggota tim.
Kapan menggunakan Kanban?
Berikut alasan menggunakan metode pengembangan Kanban:
- Kanban dapat digunakan di domain apa pun, dan dapat digunakan dengan sangat efektif dalam pengembangan perangkat lunak. Manajemen proyek Kanban membantu meningkatkan efisiensi tim.
- Ini adalah sistem berbasis tarikan. Tugas ditarik segera setelah seseorang bebas.
- Kanban sebaiknya digunakan saat Anda ingin merilis karya Anda kapan saja. Ini membutuhkan percabangan git, tetapi itu bisa dilakukan.
- Kanban harus digunakan ketika Anda ingin mengubah prioritas dengan cepat. Untuk itu, yang perlu Anda lakukan hanyalah menempatkan cerita ini di urutan teratas daftar tugas.
- Ini harus digunakan ketika Anda ingin memvisualisasikan pekerjaan Anda, dan Anda ingin melihat kemajuan tugas Anda secara visual.
Kartu Kanban
Sistem Kanban merekomendasikan visualisasi pekerjaan. Ini menyarankan penggunaan papan fisik dan digital.
Kartu Kanban adalah bagian penting di papan Kanban karena mewakili pekerjaan yang sedang dikerjakan tim. Kartu-kartu ini akan ada
- Prioritas
- pemilik
- Tipe
- Batas tanggal terakhir
Kolom di papan Kanban mewakili tahapan pekerjaan, dan Anda dapat menempatkan batas WIP (Pekerjaan Sedang Berlangsung) pada kolom tersebut. Batas WIP berarti jumlah maksimum kartu yang dapat bertahan di kolom tersebut.
Karena manajemen proyek Kanban menggunakan sistem berbasis tarikan, ketika pengembang sedang senggang, dia dapat menarik kartu dari kolom tugas ke kolom pengembangan.
Dewan kanban
Dewan kanban adalah alat manajemen proyek tangkas yang membantu menerapkan Kanban untuk mengelola proyek untuk tujuan pribadi dan bisnis. Ini adalah papan fisik atau digital (JIRA) yang dirancang untuk membantu tim memvisualisasikan pekerjaan mereka pada berbagai tahapan dan proses. Ini juga membantu untuk mewakili tahapan pekerjaan dengan kolom menggunakan kartu.
Ini memiliki kolom yang mewakili status pekerjaan
- Melakukan,
- dev
- pengujian
- Done.
Masing-masing kolom ini dapat memiliki kartu <= batas WIP. Kartu-kartu tersebut mewakili pekerjaan sebenarnya.
Anda dapat menggunakan angka positif untuk membatasi pekerjaan yang sedang berlangsung, dan angka batas ini dapat ditempatkan di bagian atas kolom pada papan Kanban fisik dan digital. Setiap individu dalam tim dapat mengelola status kartunya, dan seluruh tim dapat memvisualisasikan alur kerja. Selanjutnya dalam tutorial Kanban ini, kita akan mempelajari tentang Alur Kerja Kanban.
Alur Kerja Kanban
Alur Kerja Kanban adalah serangkaian langkah yang membantu tim menentukan kebijakan dan prinsip eksplisit di Kanban. Ini mewakili aturan dan prosedur saat pekerjaan berlangsung di berbagai tahap siklus pengembangan dan penyampaian. Alur kerja Kanban terdiri dari proses langkah demi langkah antara memulai dan menyelesaikan tugas tertentu.
Prinsip dasar yang diikuti Kanban adalah, “berhenti memulai, mulai menyelesaikan”. Dengan bantuan batasan WIP, pekerjaan dapat diselesaikan lebih banyak. Ada alur kerja dan status Kanban yang dapat disesuaikan yang tersedia di alat modern apa pun seperti JIRA.
Di bawah ini adalah status dasar yang diikuti oleh banyak tim perangkat lunak untuk manajemen alur kerja mereka.
Negara | Pemahaman tentang tugas |
---|---|
Melakukan | Tugas tiba di sini untuk pertama kalinya dalam kondisi ini. |
Siap untuk dianalisis | Analisis tugas dan tambahkan persyaratan sepenuhnya. |
Siap untuk pengembangan | Analisis selesai dan pengembangan dapat dimulai. |
Dalam pengembangan | Tugas sedang dikembangkan. |
Siap untuk pengujian | Pengembangan selesai, dan sekarang pengujian dapat dimulai. |
Dalam pengujian | Tugas sedang diuji. |
Siap untuk dirilis | Pengujian selesai; pelepasan bisa terjadi. |
Dirilis/Selesai | Dirilis. |
Empat Prinsip Kanban
Di bawah ini adalah empat prinsip inti utama Kanban:
- Mulailah dengan apa yang Anda miliki sekarang: Sistem Kanban menyarankan untuk bekerja secara bertahap dan mulai dengan apa yang Anda miliki saat ini. Karena salah satu praktiknya adalah perbaikan terus-menerus, maka Anda harus memperbaiki sistem secara bertahap.
- Setuju untuk Mengejar Perubahan yang Bertambah dan Evolusioner: Kanban merekomendasikan perubahan bertahap dalam prosesnya, dan Anda tidak boleh membuat perubahan besar dalam proses sekaligus.
- Hormati Proses, Peran & Tanggung Jawab Saat Ini: Sekali lagi, mulailah dengan apa yang Anda miliki sekarang dan ubah proses, peran, dan tanggung jawab secara bertahap.
- Mendorong Tindakan Kepemimpinan di Semua Tingkat: Setiap individu dapat bertindak sebagai pemimpin dan memberikan ide untuk meningkatkan efisiensi sistem Kanban secara keseluruhan. Anda tidak boleh berpikir bahwa ini adalah aktivitas tingkat manajemen, dan bahkan anggota tim termuda pun dapat bertindak sebagai pemimpin.
Enam Praktik Inti Kanban
Berikut ini adalah Enam praktik inti utama Kanban:
- Visualisasikan alur kerja: Prinsip ini menyarankan memiliki papan Kanban (fisik atau digital) untuk memvisualisasikan alur kerja. Setiap individu dalam suatu tim harus melihat kartunya dan kartu anggota tim lainnya. Anda dapat memindahkan kartu Anda ke kolom yang berbeda sesuai gambar di atas. Ini memberikan banyak transparansi dalam tim dan juga mempermudah penyelesaian pemblokiran
- Batasi pekerjaan yang sedang berlangsung: Kanban adalah sistem berbasis tarikan, dan meningkatkan efisiensi tim untuk membatasi pekerjaan yang sedang berlangsung dan memiliki tugas yang dapat diselesaikan dalam jangka waktu tertentu oleh tim. Batas WIP ini berlaku dari awal hingga akhir alur kerja. Anda dapat menerapkan batasan di atas kolom menggunakan bilangan bulat positif.
- Fokus pada aliran: Prinsip ini berfokus pada aliran dan interupsi apa pun. Jika ada gangguan atau penghambat harus diperbaiki secara permanen.
- Kebijakan Eksplisit: Kebijakan dapat ditetapkan dalam tim untuk mengurangi pengerjaan ulang dan fokus pada bidang yang memerlukan perhatian atau yang lebih efektif.
- Umpan Balik: Putaran umpan balik sangat penting di Kanban. Ini tidak hanya terjadi di dalam tim tetapi juga di antara banyak tim, pelatih, dll. Hal ini membantu meningkatkan kesehatan sistem Kanban secara keseluruhan.
- Continuous Improvement: Ini adalah prinsip inti dari sistem Kanban. Dinyatakan bahwa Anda selalu dapat meningkatkan proses, dan itu akan menghasilkan efisiensi yang lebih baik.
Sistem Berbasis Tarik
Kanban adalah metode berbasis tarikan di mana tugas ditarik, bukan didorong. Segera setelah Anda menyelesaikan kartu Anda saat ini, Anda dapat menarik kartu baru dari kolom sebelumnya di papan Kanban.
Dengan batasan WIP, Kanban membantu dalam peningkatan Lead Time dan Cycle Time. Harus ada celah sekecil mungkin antara kedua waktu ini. Misalnya, kita memiliki 5 pengembang dan hanya 1 penguji; apa yang akan terjadi dalam kasus ini? Akan selalu ada banyak kartu yang memerlukan pengujian, dan kartu-kartu tersebut akan menganggur dan menunggu.
Untuk mengatasi masalah yang disebutkan di atas dan meningkatkan efisiensi, Kanban mengikuti pendekatan berbasis tarikan dengan batasan WIP, di mana jumlah kartu yang akan ditarik dibatasi.
Jadi, seorang penguji akan menarik tugas dari tahap "siap untuk pengujian" ketika dia telah menyelesaikan tugasnya saat ini. Dengan batas WIP di kolom Kanban (tahapan pengembangan), Anda tidak akan memiliki banyak kartu tanpa pengawasan di alur kerja Kanban.
Sistem berbasis tarikan juga membantu dalam menemukan kecepatan yang tepat untuk tim. Dengan kecepatan yang tepat, kinerja tim akan lebih baik.
Waktu Pimpin dan Waktu Siklus
Dalam metode Kanban, waktu tunggu dan waktu siklus banyak digunakan, terdapat perbedaan antara keduanya, dan hal ini penting untuk dipahami untuk menghindari kebingungan.
timbal Waktu | Siklus Waktu |
---|---|
Waktu tunggu diukur sebagai waktu antara kedatangan tugas di alur kerja Anda dan keluarnya tugas dari alur kerja, yang berarti tugas telah dilepaskan. | Waktu siklus diukur sebagai waktu antara kedatangan tugas dalam keadaan “sedang berlangsung” dan kedatangan tugas dalam keadaan “siap untuk dirilis”. |
Di sini penting juga untuk dipahami untuk tidak memasukkan waktu yang diperlukan antara siap rilis dan rilis sebenarnya.
Cycle Time = Work in Progress/Throughput
Dalam skenario ideal, kesenjangan antara waktu tunggu dan waktu siklus harus minimal, dan Kanban menggunakan diagram alur kumulatif (CFD) untuk mengukur data historis waktu tunggu dan waktu siklus.
Diagram Alir Kumulatif (CFD)
CFD adalah grafik yang tersedia di semua terkemuka alat manajemen alur kerja seperti JIRA. Bagan ini mengukur jumlah total kartu kerja/tugas yang masuk ke alur kerja dan mengumpulkan kartu/tugas yang diselesaikan dari waktu ke waktu.
Ini membantu Anda mendapatkan perkiraan waktu tunggu rata-rata dan waktu siklus untuk waktu yang telah ditentukan.
Diagram CFD akan memberi Anda indikator atau area masalah yang perlu diperbaiki. Ini akan memberi Anda gambaran yang jelas, dan berdasarkan diagram ini. Anda dapat memperbaiki waktu tunggu dan waktu siklus tim Anda.
- timbal Waktu: Ini adalah durasi antara kedatangan kartu baru di alur kerja Anda dan keberangkatan terakhirnya dari alur kerja.
- Siklus Waktu: Ini adalah durasi antara kedatangan kartu dalam kondisi berfungsi dan saat kartu siap dirilis.
- WIP: Pekerjaan dalam proses (WIP) membatasi jumlah maksimum item pekerjaan di berbagai tahapan alur kerja.
- Throughput: Ini adalah performa sebenarnya, dan memberitahukan jumlah sebenarnya kartu yang dikirimkan dalam jangka waktu tertentu.
Throughput = WIP/Waktu Siklus
Membatasi WIP (Pekerjaan sedang berlangsung)
Dalam metodologi pengembangan Kanban, WIP membatasi jumlah tugas/kartu yang dapat dikerjakan oleh satu anggota tim atau seluruhnya dalam satu waktu.
Batasan WIP memastikan bahwa tim menstabilkan pekerjaan mereka dan meningkatkan sifat prediktif, yang penting dalam sistem berbasis tarikan. Biasanya keputusan batas WIP diambil oleh tim itu sendiri.
Alasan menetapkan Batas WIP
Berikut alasan untuk menetapkan Batas WIP:
- Ini mengalihkan fokus dalam menyelesaikan sesuatu karena seorang individu berfokus pada satu tugas dalam satu waktu.
- Ini membantu tim untuk memahami kapasitas mereka.
- Ini meningkatkan prospek produktivitas dan waktu siklus.
- Ini membantu menghindari tugas yang menumpuk (dalam mode menunggu).
- Ini membantu pergerakan alur kerja dan tugas terus bergerak.
- Ini juga membantu untuk mengatasi hambatan karena individu tidak beralih di antara tugas-tugas yang berbeda.
Scrum Vs. Kanban
Inilah perbedaan penting antara keduanya Scrum Vs. Kanban
Banyak orang | Kanban |
---|---|
Banyak orang menekankan pada perencanaanDimulai dengan perencanaan sprint dan diakhiri dengan retrospeksi sprint. Ada banyak rapat yang diadakan untuk membantu memastikan bahwa tim selaras dengan langkah selanjutnya, prioritas, dan pembelajaran dari sprint sebelumnya. | Kanban terbuka untuk melakukan perubahan saat bepergian. Ini berarti kekakuannya berkurang dan segalanya bisa sering berubah. |
Ini merekomendasikan pengumpulan pengukuran waktu dibuat saat sprint | Kanban merekomendasikan grafik untuk mendapatkan gambaran kemajuan tim dari waktu ke waktu. |
Banyak orang tidak lagi meminta komitmen dari tim. Sebaliknya, ini tentang sasaran dan prakiraan sprint. | Kanban mengandalkan pembatasan waktu dan perkiraan. |
Ini menekankan pada perencanaan, dan sebagainya estimasi mempunyai peranan yang sangat penting di Scrum | Kanban punya tidak ada persyaratan wajib untuk estimasi. |
Setiap individu mempunyai perannya masing-masing dan tanggung jawab. | Tidak mengatur peran sehingga fleksibilitas dalam hal tanggung jawab individu. |
Iterasi/Sprints memiliki durasi yang tetap. Durasi ini bervariasi dari 2 minggu hingga 1 bulan. | Kanban adalah bukan berdasarkan durasi. Hal ini diukur mengenai waktu Siklus. |
Tim adalah diharuskan untuk berkomitmen sejumlah pekerjaan tertentu. | Komitmen tidak diperlukan itu opsional untuk tim. |
Dalam metode ini, tim lintas fungsi penting karena dapat mengatasi gangguan apa pun yang dapat menyebabkan hambatan dalam pengembangan perangkat lunak. | Memiliki tim khusus penting. |
Hal ini tidak mungkin menambahkan item untuk iterasi yang sedang berlangsung. | New item dapat dengan mudah ditambahkan jika kapasitas tambahan tersedia. |
Sprint backlog hanya dimiliki oleh satu orang tim tunggal. | Banyak tims dapat berbagi papan Kanban. |
Kiriman adalah ditentukan oleh sprint, yang mana serangkaian pekerjaan harus diselesaikan dan siap untuk ditinjau. | Produk dan proses adalah disampaikan terus menerus sesuai kebutuhan. Jadi proses pengujian dan peninjauan berlangsung secara bersamaan. |
Metode pengembangan perangkat lunak scrum fokus pada backlog. | Metode Kanban seluruhnya berfokus pada dasbor proses. |
Setiap anggota tim mempunyai peran tertentu di Scrum master menentukan jadwal, pemilik produk menetapkan tujuan dan sasaran, dan anggota tim melakukan pekerjaan pengembangan. | Tidak ada peran yang ditentukan sebelumnya untuk sebuah tim. Namun, mungkin masih ada Manajer Proyek; tim didorong untuk berkolaborasi dan bekerja sama. |
Terbaik untuk proyek dengan mengubah prioritas. | Ideal untuk tim dengan prioritas yang stabil yang tidak mungkin berubah seiring berjalannya waktu. |
Mengukur produksi menggunakan kecepatan melalui lari cepat. | Mengukur produksi menggunakan waktu siklus atau waktu tepat yang diperlukan untuk menyelesaikan satu bagian penuh dari sebuah proyek. |
Scrum memerlukan a perubahan total dari model tradisional ke model Agile Scrum yang akan mengimplementasikan proyek. | Kanban tidak mengizinkan perubahan drastis dalam proyek. |
Ini adalah metode ideal untuk proyek dengan prioritas yang sangat bervariasi. | Paling cocok untuk tim dengan prioritas stabil. |
Di Scrum, seluruh tSaya fokus untuk berkolaborasi dan menyelesaikan tugas untuk memberikan pekerjaan pembangunan yang berkualitas. | Tim bekerja untuk mencapai tujuan dan mengurangi waktu untuk menyelesaikan seluruh proses. Oleh karena itu, pengurangan siklus waktu merupakan indikator keberhasilan terbesar di sini. |
Banyak orang penekanan pada jadwalnya; item baru tidak dapat ditambahkan ke iterasi yang sedang berlangsung. | Kanban pada dasarnya lebih berulang tidak memiliki jangka waktu tertentu. Sehingga item baru dapat terus ditambahkan setiap kali tersedia tambahan kapasitas. |
Jumlah pekerjaan yang dilakukan dalam kumpulan/Sprints. | Seluruh proyek dilakukan pada pergerakan item kerja berulir tunggal mengalir. |
Scrum master bertindak sebagai pemecah masalah. | Kanban mendorong setiap anggota tim adalah pemimpin dan berbagi tanggung jawab di antara mereka semua. |
Scrum menentukan iterasi yang dibatasi waktu. | Kanban berfokus pada merencanakan durasi yang berbeda untuk iterasi individual. |
Scrum membantu perusahaan untuk melakukan hal tersebut menghemat waktu dan uang. | Metode Kanban fokus pada perbaikan berkelanjutan, produktivitas, dan efisiensi. |
Mencapai komunikasi yang stabil dan konsisten kinerja di semua tingkatan. | Anggota tim lebih mungkin melakukan hal tersebut mencapai tujuan mereka dengan lebih mudah karena sifat visual papan Kanban. |
Proyek adalah dikodekan dan diuji selama sprint ulasan | Anggota tim lebih mungkin melakukan hal tersebut mencapai tujuan mereka dengan lebih mudah karena sifat visual papan Kanban. |
Hal ini lebih mudah untuk beradaptasi dengan perubahan yang konstan karena sprint yang pendek dan umpan balik yang teratur. | Hal ini dirancang untuk keluaran yang teratur dan stabil, perubahan besar pada permintaan pelanggan dapat membuat Kanban gagal. |
Total biaya proyek minimal yang dapat menyebabkan hasilnya lebih cepat dan murah. | Jika suatu tugas tidak diperkirakan dengan benar, maka total biaya proyek tidak akan pernah akuratDalam kasus seperti itu, tugas dapat dibagi ke dalam beberapa sprint. |
Metodologi ini membutuhkan anggota tim yang berpengalaman hanya. Jadi, jika tim terdiri dari orang-orang yang bukan ahli, maka proyek tidak dapat selesai tepat waktu. | Tidak jangka waktu tertentu dialokasikan pada setiap fase, sehingga anggota tim tidak pernah mengetahui berapa banyak waktu yang dapat mereka gunakan dalam setiap fase. |
Dalam metode Agile Scrum ini, memang demikian lebih mudah untuk menghasilkan produk yang berkualitas pada waktu yang dijadwalkan. | Ini dirancang untuk a keluaran teratur dan stabil, perubahan besar dalam permintaan pelanggan dapat membuat Kanban jatuh. |
rencana proyek tidak akan pernah mengganggu bahkan jika seorang anggota tim meninggalkan tim. | Jika salah satu anggota tim keluar selama pengembangan, hal itu bisa terjadi merugikan perkembangan proyek. |
Terkadang pertemuan harian menggagalkan anggota tim. | Papan Kanban ketinggalan jaman dapat menimbulkan permasalahan dalam proses pembangunan. |
Proyek-proyek besar dapat dengan mudah dibagi menjadi sprint yang mudah dikelola. |
Kesimpulan
- Definisi Kanban: Kanban didefinisikan sebagai metodologi pengembangan tangkas untuk mengembangkan perangkat lunak, mobil, barang, obat-obatan, sepatu, atau pekerjaan manufaktur lainnya.
- Kanban menggunakan papan Kanban untuk memvisualisasikan karya. Ini menggunakan kolom sebagai tahapan (tugas, pengembangan, pengujian, dll.) dan kartu sebagai item pekerjaan.
- Metodologi Kanban mendukung papan fisik dan digital untuk visualisasi.
- Kanban adalah sistem berbasis tarikan, dan kartu ditarik dari tahap sebelumnya ke tahap saat ini oleh anggota tim.
- Metode Kanban menggunakan diagram CFD untuk memahami waktu tunggu dan waktu siklus tim. Bagan ini membantu tim untuk memperbaiki kesenjangan antara dua waktu tersebut dan meningkatkan efisiensi.
- Metodologi pengembangan Kanban, WIP membatasi jumlah tugas/kartu yang dapat dikerjakan oleh satu anggota tim atau seluruhnya dalam satu waktu.
- Batasan WIP mengalihkan fokus pada penyelesaian berbagai hal sementara seorang individu berfokus pada satu tugas dalam satu waktu.