Apa yang dimaksud dengan Agile?
Agile adalah istilah yang digunakan untuk menggambarkan pendekatan pengembangan perangkat lunak, menekankan pengiriman bertahap, kolaborasi tim, perencanaan berkelanjutan, dan pembelajaran. Agile bukanlah proses melainkan filosofi atau pola pikir untuk merencanakan pekerjaan yang akan dilakukan tim. Konsep ini didasarkan pada pengembangan berulang dan membantu tim merencanakan dan bereaksi dengan lebih baik terhadap perubahan tak terhindarkan yang terjadi dalam pengembangan perangkat lunak. Yuk simak pembahasan Mara bersama Andy setelah rilis terbarunya.
Mara merasa dia telah membuat beberapa langkah kecil untuk menarik tim di DevOps, tetapi kemajuannya terhenti. Tim terlalu sibuk memperbaiki bug di rilis terakhir untuk memikirkan hal lain.
Ingatlah bahwa Irwin, manajer produk, memberi tim umpan balik pelanggan yang agak kritis tentang situs web game balap. Menyelesaikan masalah ini tidaklah menyenangkan. Andy dan Mara akan menulis kode dan lalu menyerahkannya ke Amita, penguji. Amita sepertinya selalu menemukan bug baru dan harus mengembalikan kodenya. Server pembuatan gagal. Tim tidak dapat membuat situs web game berfungsi dalam produksi, bahkan setelah berhasil dalam pengembangan dan pengujian. Semua orang bekerja berjam-jam dan kehilangan beberapa akhir pekan.
Setelah mereka mengirimkan rilis, Mara dan Andy duduk untuk minum kopi. Mereka berdua sangatlah lelah. Mara tidak disarankan, tetapi Andy memiliki sikap yang berbeda.
Andy: Saya tidak tahu mengapa Anda terkejut. Menyelesaikan perangkat lunak sangatlah sulit. Itu selalu sebuah kerja keras. Pernahkah kamu menyelesaikannya dengan mudah?
Mara: Saya pernah, dan saya kira kita juga bisa membuat segalanya lebih mudah di sini. Saya sungguh percaya DevOps dapat membantu kita.
Andy: Saya ingat kami melakukan latihan pemetaan aliran nilai, tapi sekarang apa? Kita harus memulai rilis baru. Saya pikir kita sudah selesai dengan DevOps.
Mara: Masih banyak yang bisa kita lakukan. Saya pikir kita harus mengambil langkah pertama dan melakukan perencanaan Agile. Kita dapat menggunakan Azure Board utuk membantu kita.
Amita: Apa yang Anda maksud dengan Agile?
Mara: Agile adalah pendekatan untuk pengembangan perangkat lunak. Istilah "Agile" diciptakan pada tahun 2001 di Agile Manifesto. Manifesto tersebut menetapkan beberapa prinsip panduan untuk pendekatan yang lebih baik untuk pengembangan perangkat lunak. Manifesto tersebut berkata:
Kami menghargai:
- Individu dan interaksi melalui proses dan alat.
- Perangkat lunak yang berfungsi melalui dokumentasi yang komprehensif.
- Kolaborasi pelanggan melalui negosiasi kontrak.
- Menanggapi perubahan mengikuti rencana.
Andy: Dengar, jika Anda tahu cara ajaib untuk membuat hidup lebih mudah, saya setuju. Anak-anak saya selalu tidur pada saat saya pulang. Tapi ini terdengar sangat sensitif tanpa solusi konkret.
Ini bukan sihir, tapi kita bisa melakukannya sedikit demi sedikit. Azure DevOps memberi kita alat yang kita butuhkan untuk menerapkan praktik Agile. Untuk saat ini, ketika kami ingin membuat rencana, kami dapat menggunakan Azure Boards. Pertama, Dapatkah Anda menjelaskan proses build kepada saya dan membantu saya untuk mengidentifikasi masalah besarnya?
Setelah menghabiskan banyak gelas kopi, Mara dan Andy mengidentifikasi masalah besar dalam proses build. Semua masalahnya berasal dari rilis akhirnya. Setelah Andy pergi, Mara melihat catatan kasarnya dan memutuskan untuk menjalankan sedikit perencanaan Agile sendiri. Sendiri, dia menggunakan proses Dasar di Azure Boards untuk menyelesaikan semua masalah di satu tempat.
Langkah selanjutnya adalah menunjukkan papan kepada tim dan melibatkan mereka.
Rekomendasi untuk mengadopsi Agile
Tim sedang bersiap-siap untuk mengambil langkah pertama mereka untuk mengadopsi Agile. Berikut adalah beberapa rekomendasi umum yang dapat digunakan tim mana pun untuk memasukkan Agile ke dalam organisasi mereka.
Buat struktur organisasi yang mendukung praktik Agile
Untuk sebagian besar organisai, mengadopsi Agile bisa menjadi sangat sulit. Ini membutuhkan pergeseran pikiran dan pergeseran budaya yang menantang banyak kebijakan dan proses yang ada dalam organisasi. Secara tradisional, sebagian besar perusahaan menggunakan struktur tim horizontal. Dalam praktiknya, hal ini berarti tim harus menyesuaikan dengan arsitektur perangkat lunak. Misalnya, ada tim yang bertanggung jawab untuk aplikasi antarmuka pengguna, tim lainnya bertanggung jawab dengan data, dan tim lainnya bertanggung jawab terhadap arsitektur berorientasi-layanan.
Namun, tim vertikal menyediakan hasil yang lebih baik untuk proyek Agile. Tim vertikal menjangkau arsitektur dan diselaraskan dengan hasil produk. Misalnya, mungkin ada tim yang bertanggung jawab atas bagian email aplikasi, dan anggota tim berasal dari ketiga disiplin ilmu yang disebutkan sebelumnya. Keuntungan lain dari struktur tim vertikal adalah bahwa penskalaan dapat terjadi dengan menambahkan tim.
Bimbing anggota tim tentang teknik dan praktik Agile
Saat mereka pertama kali mengadopsi teknik dan praktik Agile, beberapa tim memutuskan untuk merekrut pelatih dari luar. Pelatih bahkan mungkin bekerja dengan banyak tim untuk membantu menghilangkan hambatan dan silo organisasi, sehingga mereka sering kali memiliki keterampilan mengajar dan manajerial. Mereka juga dapat melatih anggota tim dalam teknik Agile, seperti cara menjalankan stand-up dan meninjau rapat. Namun, seiring waktu, penting bagi anggota tim untuk mengembangkan kemampuan untuk mentor satu sama lain. Ini berarti bahwa sebagian besar pekerjaan harus dilakukan secara kolaboratif dan bukan oleh individu yang menghabiskan sebagian besar waktunya untuk bekerja sendiri.
Mengaktifkan kolaborasi dalam tim dan lintas tim
Jika kolaborasi adalah kunci untuk menjadi sukses di Agile, apa saja cara Anda dapat mendorongnya? Berikut adalah beberapa idenya.
Perubahan budaya
Saat mengubah kebiasaan, ingat beberapa hal. Penting untuk anggota tim mempunyai tempat kerja yang tenang dan nyaman. Mereka memerlukan ruang di mana mereka bisa fokus, tanpa banyak distraksi dan kebisingan.
Pertemuan adalah fakta kehidupan, dan mereka dapat merasa seperti mereka mengambil alih kehidupan kerja seseorang. Untuk memberi anggota time lebih banyak kontrol, rapat memerlukan agenda dan rentang waktu yang ketat.
Komunikasi asinkron, seperti email dan pesan, dapat terasa berlebihan orang sering merasa bahwa mereka harus segera dijawab. Jelaskan bahwa tidak semua komunikasi ini membutuhkan tanggapan segera.
Anggota tim jarak jauh sekarang merupakan sebuah norma di beberapa perusahaan. Semua orang perlu merasa nyaman dengan anggota time mereka dan perlu memperlakukan mereka dengan setara, baik mereka di kantor atau berada di luar kantor. Kolaborasi melalui komunikasi harus menjadi bagian dari DNA organisasi.
Kita tidak dapat menegaskan pentingnya komunikasi yang baik, bahkan ketika ada ketidaksepakatan. Penyelesaian konflik adalah keterampilan yang baik untuk dimiliki oleh tim Agile mana pun.
Tim lintas fungsi
Sama pentingnya bagi anggota tim untuk bekerja secara kolaboratif, penting juga bagi tim untuk berkolaborasi satu sama lain. Tim lintas fungsi menambahkan keterampilan dan perspektif baru yang dapat memperluas kemampuan setiap orang untuk memecahkan tantangan secara kreatif. Tim lintas fungsi juga membuat seluruh organisasi lebih kohesif. Mereka mengurangi perang wilayah dan meningkatkan perasaan bahwa setiap orang bekerja menuju tujuan bersama.
Alat untuk kolaborasi
Alat yang baik dapat membantu anggota tim Agile Anda berkolaborasi lebih efektif, baik di dalam tim maupun dengan tim lain. Berikut adalah beberapa saran untuk membantu Anda memulai:
- Microsoft Teams: Teams adalah aplikasi yang menyediakan tempat kerja untuk obrolan, rapat, catatan, dan penyimpanan file.
- Skype: Skype mudah digunakan dan alat tujuan umum yang baik. Banyak orang sudah menginstalnya.
- Slack: Slack menyediakan banyak saluran komunikasi terpisah, semuanya dari satu antarmuka. Anda dapat mengatur saluran ini dalam banyak cara, seperti berdasarkan proyek, tim, atau topik. Percakapan disimpan dan dapat ditelusuri. Sangat mudah untuk menambahkan anggota tim internal dan eksternal. Slack secara langsung terintegrasi dengan banyak alat pihak ketiga, seperti GitHub untuk kode sumber.
Alat umum lainnya termasuk Google Hangouts, Asana, Trello, GoToMeeting, dan monday.com. Cobalah untuk membiasakan diri Anda dengan opsi untuk melihat mana yang sesuai dengan kebutuhan tim dan perusahaan Anda.