Pengembangan perangkat lunak tangkas menjadi kata kunci yang cukup menyenangkan akhir-akhir ini.
Sebagai seorang pengembang, saya memahami nilai pragmatis dari pengembangan berulang, tetapi (paling sering) itu bukan pilihan pengembang untuk merangkul pendekatan Agile untuk pengembangan perangkat lunak. Ini adalah pilihan manajemen top-down! Apakah itu kristal, metode gesit, dsdm, rup, xp, scrum, fdd, tdd, sebut saja. Itu bukan pilihan pengembang.
Untuk semua manajer di luar sana, apa alasan terbesar untuk memilih untuk melakukan pengembangan Agile ketika (dalam pengalaman saya) sebagian besar manajer bahkan belum menyentuh sepotong kode dalam hidup mereka!
project-management
agile
management
project
scrum
Scout tangkas
sumber
sumber
Jawaban:
Persyaratan pengalihan, pengiriman lebih cepat
Agile menarik karena memberikan kemungkinan beradaptasi dengan perubahan kebutuhan lebih cepat (atau sama sekali), dan memberikan perubahan itu kepada pelanggan lebih cepat.
Inilah sebabnya mengapa banyak perusahaan gagal saat menggunakan Agile / Scrum: Manajer tidak memahami bahwa dengan kekuatan besar (menetapkan tanggal rilis lebih cepat dan mengubah persyaratan sering) menjadi tanggung jawab mengandalkan pengembang untuk perkiraan . Agar gesit bekerja, manajer harus bersedia untuk kemudian memotong ruang lingkup.
Mereka menginginkan kekuatan keduanya.
sumber
Mengikuti tren
Kadang-kadang orang melakukan sesuatu, bukan karena pantasnya hal yang mereka lakukan (lincah), tetapi hanya karena itu populer dan orang lain berusaha melakukan hal yang sama.
"Apa? Macrojam melakukan Agile? Kenapa kita tidak? Kita tidak lamban, kita Agile, sial!"
Beberapa orang tidak peduli apa yang sebenarnya diperlukan untuk menjadi lincah. Itu hanya sarana untuk membenarkan keberadaan mereka. Domba, tekanan teman sebaya, dll.
sumber
Pengkodean itu sendiri bukan alasan utama manajer dapat diyakinkan untuk memilih gesit sebagai metode. Fakta bahwa Anda dapat bereaksi lebih cepat terhadap perubahan persyaratan dan prioritas memang menarik. 'Manajer' pada akhirnya perlu memberikan solusi kepada pengguna akhir / pelanggan / manajernya.
Jika fungsionalitas yang tampak penting ketika memulai proyek dapat dihapuskan di tengah-tengah proyek dan diganti dengan persyaratan baru yang lebih relevan, itu adalah keuntungan utama.
Juga penting adalah bahwa sebagian besar (misalnya seperti dalam scrum) setiap pengiriman perantara harus hampir siap untuk dimasukkan ke dalam produksi. Pada saat yang sama, fungsi yang paling mendesak dikembangkan terlebih dahulu. Jadi, jika proyek dibatalkan karena beberapa keputusan perusahaan, manajemen yakin Anda akan berakhir dengan sesuatu yang akan berhasil dan dapat diproduksi.
Semoga ini membantu.
sumber
Manajer biasanya tertarik dengan visibilitas yang lincah dibawa, terutama dengan scrum. Ini adalah salah satu nilai jual yang paling banyak digunakan dalam seminar yang menargetkan manajer.
Produktivitas yang lebih tinggi juga biasa digunakan untuk menarik mereka karena mudah ditunjukkan (berkat visibilitas). Beberapa penginjil yang gesit menjanjikan produktivitas luar biasa dari karyawan mereka yang ada. "Apa? Aku sudah menekan mereka seperti lemon dan kamu bilang aku bisa mendapatkan lebih banyak lagi " ?
Banyak manajer menggunakan gesit untuk menghancurkan karyawan mereka sedikit lebih banyak dan saya telah melihat mereka menggunakan tabel pembakaran sebagai mesin berburu pemalas di satu perusahaan besar.
Hasil? Banyak tim di
distress
. Mereka berpikir lincah akan menyelesaikan semua masalah mereka, tetapi justru sebaliknya. Masalahnya ada di tempat lain.Saya secara aktif berjuang melawan itu. Itu sebabnya kadang-kadang di mana ada probabilitas tinggi daripada metodologi tangkas akan
perverted
oleh manajemen, saya sarankan untuk tidak menyebutkannya di dalam perusahaan.sumber
Jawaban atas pertanyaan itu bisa mengisi buku.
Saya pikir salah satu alasan utama adalah bahwa pengembangan tangkas berfokus pada hasil. Itu selalu berfokus pada memberikan apa yang paling mendesak di sini dan sekarang.
Alasan lain adalah bahwa perencanaan berdasarkan cerita dan praktik estimasi yang diikuti proses tangkas memberikan estimasi yang jauh lebih baik dari apa yang bisa disampaikan dan kapan.
Sebuah contoh yang baik tentang seberapa efektif perencanaan berdasarkan cerita adalah, adalah proyek yang saya kerjakan. Selama beberapa bulan (sebelum kami mengadopsi pengembangan tangkas), pemimpin proyek percaya bahwa kami dapat memenuhi tepat waktu, dan itu sekitar 18 bulan dari tenggat waktu. Semua pengembang merasa bahwa itu mungkin tidak realistis. Setelah memulai perencanaan yang gesit, pemimpin proyek masih memiliki penilaian optimis terhadap situasi tersebut. Tetapi hanya setelah beberapa sprint, pemimpin proyek menyadari bahwa tim sama sekali tidak memiliki kapasitas untuk memenuhi semua persyaratan pada waktu yang diharapkan. Dan itu sekarang masih lebih dari 12 bulan dari tenggat waktu.
Jadi praktik lincah juga membuat kenyataan menjadi jauh lebih cepat.
Dan akhirnya, tim yang gesit cenderung lebih sering mengadopsi praktik yang menciptakan kualitas kode yang lebih baik, misalnya pengembangan yang didorong pengujian, seringnya refactoring, integrasi berkelanjutan, tinjauan kode peer / pemrograman pasangan, dll. Bukannya proyek perangkat lunak tradisional melarang praktik ini, mereka hanya cenderung tidak terlalu fokus.
sumber
Saya adalah seorang pengembang selama 12 tahun dan sekarang menjadi manajer untuk 5. Selama 5 tahun saya beralih secara bertahap dari seorang manajer yang masih berkode menjadi manajer murni (saya masih sesekali memperbaiki bug atau melakukan latihan prototyping).
Kita bisa mencapai ini dengan cara lain, tetapi meningkatkan metodologi dan ide yang lincah telah sangat membantu kita.
Kami juga terus memperbaiki proses kami. Misalnya, keseimbangan antara kerja desain depan dan desain tepat sebelum implementasi. Kami meninjau semua keputusan kami secara berkala untuk menentukan apakah kami dapat menunda keputusan desain sebelumnya. Dan, ketika ada yang salah, berapa banyak pekerjaan di depan akan diperlukan sampai kesalahan akan diidentifikasi. Seringkali, kegagalan adalah kasus sudut yang membutuhkan analisis mendalam. Upaya mendapatkan detail itu sering kali sama dengan biaya untuk memahaminya dan refactoring. Tim tidak dihukum karena kesalahan jenis ini dan didorong untuk menjadi lebih agresif.
sumber
Saya telah melihat sejumlah perusahaan "melakukan" gesit. Sayangnya, sangat sedikit dari mereka mengadopsi tangkas. Yang saya maksud adalah hanya melakukan pengembangan berulang dan standup harian (di mana sebagian besar tim duduk) tidak membuat tim Agile. TDD, Refactoring, Integrasi Berkelanjutan, Kehadiran Pelanggan, praktik SOLID membuat tim Agile. Tanpa itu, Anda hanya berputar-putar.
Ada banyak daya tarik yang dibawa oleh pesan Agile. Kemampuan beradaptasi untuk berubah menjadi yang terbesar. Sayangnya, kode Anda tidak menjadi lebih mudah beradaptasi hanya karena Anda mengubah cara Anda mengelola proyek. Sampai semakin banyak perusahaan menyadarinya, kita hanya akan mendengar tentang semakin banyak proyek tangkas yang gagal.
sumber
Saya tidak tahu tentang bagian kata buzz. Saya benar-benar telah melakukan ini selama ini dalam proses yang tidak terlalu formal atau teridentifikasi. Klien saya benar-benar melihat dari belakang ketika saya membangun situs web mereka. Disimpan sekitar 50 email dan klien mempelajari sesuatu tentang proses ini - itu tidak mudah.
Seluruh gagasan bahwa kita akan membutuhkan waktu yang lama untuk menuliskan semua yang diinginkan pengguna untuk dilakukan oleh perangkat lunak, kemudian mengambil periode waktu yang lebih lama untuk membangun apa yang menurut kita hanya ingin mereka temukan dalam waktu 2 detik mencoba aplikasi yang ini. bukan apa yang mereka harapkan memuakkan. Seberapa sulit untuk memecah proyek atau aplikasi menjadi beberapa bagian yang masuk akal untuk membangun dan mendapatkan umpan balik sebelum Anda membangun bagian lain?
Saya tahu ini penyederhanaan berlebih dan tidak membahas praktik pengembang yang sebenarnya, tetapi tidak sulit untuk menjual bahkan kepada manajer atau pelanggan yang paling non-teknis. Apa pendekatan lain yang lebih menarik? Apakah klien benar-benar menyukai kenyataan bahwa pemrogram keluar dari rambut mereka selama 6-12 bulan sementara mereka berkembang selama beberapa proyek air terjun? Apakah Anda akan mempekerjakan seseorang untuk membangun rumah dengan cara ini?
sumber
Manajemen tidak mendorong hal-hal ini pada pengembang. Pengembang, dan tim harus mengambil inisiatif dan berusaha ke arah mereka untuk melakukan pekerjaan mereka dengan lebih baik. Tugas manajemen adalah memberikan dukungan untuk inisiatif ini.
sumber
Sebagai seorang manajer yang telah menulis banyak kode dalam karier saya, saya mungkin bukan orang yang Anda cari untuk menjawab ini. Dalam hal apa pun, saya pikir pengundian untuk Agile hari ini paling berkaitan dengan menanggapi kebutuhan pelanggan dengan lebih cepat serta memperpendek lingkaran umpan balik antara spesifikasi, pengkodean, pengujian, dan pelanggan. Kami membuat langkah menuju pengembangan Agile lebih karena alasan ini.
sumber
Saya pikir Anda tidak harus mengacaukan proses Agile dan praktik pengkodean / pengembangan. Misalnya, Scrum tidak memberi tahu Anda bagaimana Anda harus mengembangkan kode Anda - ini semua tentang proses yang menerima perubahan.
sumber
Pada akhirnya, ini adalah tentang memberdayakan pengembang; ini tentang mengakui fakta bahwa orang-orang yang berada di bagian paling bawah hierarki adalah satu-satunya yang benar-benar memahami sejauh mana apa yang perlu dilakukan dan bagaimana melakukannya, jadi jika Anda sudah mempekerjakan mereka untuk keahlian mereka - mengapa jangan biarkan mereka mengambil kendali penuh atau lebih tepatnya, mengapa menjauhkan mereka dari pengambilan keputusan yang sebenarnya?
sumber