Apa yang Anda butuhkan untuk berhasil dengan Agile?

11

Adopsi tangkas dapat gagal di beberapa organisasi, saya bahkan bekerja untuk sebuah perusahaan di mana air terjun adalah satu-satunya cara (yang sebenarnya) tetapi hanya karena mereka mencoba Agile pada suatu proyek dan gagal.

Ketika saya bertanya kepada orang-orang yang masih ingat bahwa (saya adalah seorang junior) saya tertutup rapat, seperti saya mengingatkan mereka akan mimpi buruk yang benar-benar terjadi.

Saya tidak tahu mengapa proyek ini gagal. Ada sumber daya yang ditemukan di web mengapa Agile gagal adalah beberapa perusahaan tetapi alasannya sebagian besar ekonomi. Jadi saya pikir saya meminta umpan balik terlebih dahulu.

Apa alasan adopsi Agile gagal di beberapa organisasi? Atau, cara lain untuk menggambarkannya .. Apa yang Anda butuhkan untuk berhasil dengan Agile?

curiousAboutIt
sumber
1
Baca semua pertanyaan ini: stackoverflow.com/search?q=agile+failure . Kemudian perbaiki pertanyaan Anda menjadi lebih spesifik. Ini sudah dibahas. Sepenuhnya. Di Stack Overflow.
S.Lott
Saya tidak punya jawaban untuk ditambahkan selain fakta bahwa jawaban di bawah ini SEMUA begitu penuh dengan kemenangan .
maple_shaft
Yang Anda butuhkan adalah menunjukkan nilai aktual untuk Agile, bukan Agile karena Agile. Kalau tidak, Anda terlihat konyol seperti CIO dalam video ini .
1
Anda membutuhkan fanatisme agama yang tak tergoyahkan dan keberanian untuk mengakui bahwa setiap kegagalan bisa dicegah dengan lebih gesit .
Aaronaught
Agile cocok untuk proyek-proyek di mana persyaratannya sangat sering berubah dan di mana pengembangan eksplorasi adalah solusi yang layak: biaya kesalahan karena implementasi yang buruk dapat diabaikan dibandingkan dengan keuntungan dari umpan balik pelanggan awal. Misalnya, Anda dapat menggunakan gesit untuk mengembangkan katalog online untuk supermarket. Di sisi lain, Anda tidak boleh menggunakan gesit untuk mengembangkan beberapa perangkat lunak kontrol untuk pembangkit nuklir: karena kegagalan bukanlah pilihan Anda tidak dapat menggunakan pendekatan coba-coba: Anda harus mendesainnya di muka. Banyak proyek terletak di antara kedua ekstrem ini.
Giorgio

Jawaban:

11

Anda memerlukan manajemen, klien, dan pengembang masing-masing untuk memahami dan mendukung cara berpikir Agile dan metode Agile. Lebih detail:

  • Manajemen harus merasa nyaman dengan mendengarkan kebenaran, sebagai lawan dari apa yang secara tradisional mereka harapkan untuk dengar (yaitu "ya, proyek berada di jalur" selama 11 bulan ... lalu tiba-tiba "oops, kita perlu menunda tenggat waktu beberapa minggu) ... erm, bulan ... erm ... "pada akhirnya). Mereka juga harus merasa nyaman dengan membiarkan masing-masing pihak melakukan (dan bertanggung jawab atas) pekerjaan mereka. Yang paling menonjol, bahwa pengembang harus membuat keputusan dan perkiraan teknis. Jadi tidak ada pengawasan ketat dan manajemen mikro.
  • Klien harus memahami bahwa Agile membutuhkan keterlibatan mereka yang dalam dan berkelanjutan dalam proses pengembangan, bukan hanya "membuat pesanan", kemudian mengambil pengiriman beberapa bulan kemudian. Mereka juga harus merasa nyaman dengan kurangnya Spesifikasi Kebutuhan Tetap Besar dan kurangnya komitmen dari tim pengembangan untuk memenuhi apa yang semula mereka minta.
  • Pengembang harus merasa nyaman dengan mengambil tanggung jawab, membuat keputusan, berkomunikasi secara terbuka dan bekerja sebagai sebuah tim. Yaitu tidak ada "kepemilikan kode", tidak ada "koboi kesepian" dan tidak ada menyalahkan orang lain atas masalah yang dapat diselesaikan oleh tim itu sendiri.

Dalam pengalaman saya, ini adalah poin pertama yang paling sering berada di balik proyek Agile yang gagal, tetapi dua lainnya juga dapat menyebabkan masalah.

Memperbarui

Yang saya maksud dengan "manajemen" bukan hanya manajer proyek langsung, tetapi juga level yang lebih tinggi. Seperti @Michael sangat tepat catat, beberapa pihak eksternal lebih atau kurang (misalnya QA atau pemberi tugas eksternal) juga dapat mempengaruhi keberhasilan / kegagalan proyek Agile, tapi saya kira itu hanya mungkin jika pemimpin masing-masing membiarkannya, dan / atau jika tanggung jawab dan jalur komando tidak jelas dalam organisasi.

Péter Török
sumber
2
+1: Manajemen adalah lawan tunggal terbesar dari metode Agile. Lebih khusus lagi, ini akuntansi. Manajemen "bertanggung jawab" berarti harus ada jadwal dan anggaran yang direncanakan ke masa depan yang tidak terduga. Selalu tidak mungkin.
S.Lott
7

Anda membutuhkan:

  • Orang yang mau bersikap sangat terbuka dan jujur . Visibilitas adalah segalanya karena Anda membutuhkan kepercayaan di semua jenis batas-lapisan.
  • Pelanggan dan manajer yang benar - benar ingin mendengar kebenaran.
  • Orang yang bersedia dan mampu mendefinisikan kembali peran mereka agar sesuai dengan apa yang dibutuhkan saat ini .
  • Kebebasan untuk mengubah proses yang tidak berfungsi saat ini .
  • Orang yang mau mengakui kesalahan dan membalikkannya .
  • Kemampuan untuk bersama-sama membangun dan menguji lingkungan sesuka hati . (Ini lebih penting dan lebih mahal daripada orang yang memberikan kredit.)
  • Sebanyak mungkin papan tulis yang Anda isi.

Kelihatannya sangat sederhana, tetapi banyak dari ini adalah permintaan besar di industri ini.

pdr
sumber
+10391399 jika saya bisa di "Pelanggan dan manajer yang benar - benar ingin mendengar kebenaran"!
maple_shaft
... lagi-lagi komentar yang sangat baik tentang kemampuan untuk memunculkan lingkungan sesuka hati dan pentingnya papan tulis. Jika anggaran perusahaan untuk spidol penghapus kering per tahun tidak mencapai ratusan, maka Anda tidak cukup
menulis
1
Baru saja menyelesaikan kantor rumah saya. Satu dinding ditutupi dengan cat papan putih. Itu benar-benar mengikat ruangan bersama.
JeffO
3

Sebuah proyek lincah akan paling sering gagal ketika pemain kunci menolak untuk menjadi gesit, atau (lebih buruk) ketika seseorang tidak jujur ​​tertarik pada keberhasilan proyek atau langsung menyabotnya. Yang terakhir dapat membunuh proyek apa pun (seperti sejumlah hal lainnya), tetapi proses yang gesit memberi orang lebih banyak fleksibilitas, dan itu termasuk fleksibilitas untuk bermain politik yang destruktif.

Contoh:

  • QA menegaskan bahwa pelanggan tidak dapat melihat perangkat lunak kecuali telah melewati siklus uji manual selama sebulan
  • Manajemen memaksakan tenggat waktu yang tidak realistis
  • Pelanggan menolak untuk memprioritaskan persyaratan ("mereka semua memiliki prioritas tertinggi!")
  • Seseorang yang bukan pemangku kepentingan langsung tetapi memiliki pengaruh politik terus menugaskan tugas-tugas yang panjang dan tidak terkait dengan anggota tim utama, dan manajer proyek tidak dapat mencegah hal ini.
Michael Borgwardt
sumber
3

Saya hanya bisa memberikan saran dari pengalaman pribadi saya sendiri.

Satu majikan saya benar-benar gagal di Agile. Pekerjaan dilakukan berdasarkan ad-hoc, pengujian tidak ada, dan persyaratan didokumentasikan dalam email dan notulen rapat. Satu-satunya metode pengembangan yang digunakan adalah anarki, atau 'kode api-dan-lupakan'. Menerapkan beberapa jenis metode rekayasa perangkat lunak akan mustahil karena pengembang terlalu banyak bekerja keras untuk membuat semacam perangkat lunak manajemen proyek pelacakan cerita.

Di perusahaan lain, tim kami memiliki anggota heroik yang mati-matian mencoba membuat beberapa praktik terbaik Agile - kami memiliki dewan Kanban, pelacakan masalah, kami menggunakan TDD dan BDD (sementara tidak Agile dalam diri mereka sendiri, mereka cenderung hadir dalam kelompok Agile) . Sayangnya, kami tidak memiliki hal-hal seperti titik cerita, sesi estimasi, perencanaan kapasitas, grafik burn-down, grafik kecepatan - jenis hal manajemen proyek Agile yang berguna yang memungkinkan pekerjaan mengalir dengan lancar. Sebagai gejala klasik Agile yang salah, ketika papan Kanban kami menjadi terlalu penuh, kami membeli papan yang lebih besar: /

Tempat saya saat ini menggunakan poin cerita sebagai cara perencanaan kapasitas dengan iterasi dua minggu, TDD, standup harian, iterasi-demi-itasi retrospektif timeboxed dan pemrograman pasangan pada kebanyakan hal. Ini adalah hasil dari total manajemen dukungan dan pendidikan klien.

Diperkirakan agar Agile berhasil di sebuah perusahaan, Anda memerlukan hal-hal berikut:

  • Manajer proyek yang memahami Agile dan siapa yang akan menggunakan alat dengan tepat.
  • Pengembang yang memahami Agile, yang terbuka dan jujur, dengan disiplin yang dibutuhkan Agile
  • Beli dari klien. Mereka perlu mengenali manfaat Agile dan bersedia mendengarkan saran dari pengembang terkait dengan apa yang dapat dikembangkan dalam kerangka waktu tertentu.

EDIT: Ini juga penting untuk memastikan Anda memiliki pemahaman yang baik tentang - mengapa - hal-hal seperti stand-up harian dan iterasi pendek berguna.


sumber
2

Pengalaman saya dengan Agile failure tidak ada hubungannya dengan ekonomi tetapi dengan politik perusahaan / departemen / pribadi.

Pada tingkat pribadi, hanya ada beberapa orang yang kepribadiannya akan berbenturan. Memaksa mereka menjadi tim Agile, atau lebih buruk lagi tim pemrograman berpasangan, akan meningkatkan ketidaksukaan mereka satu sama lain ke titik didih. Ini bisa menjadi sangat buruk, sangat cepat dan menghasilkan hal-hal seperti tindakan sabotase yang layak untuk sebuah reality show, mengubah rapat scrum menjadi regu penembak melingkar yang menyalahkan atau bahkan lebih buruk.

Di atas itu, ada manajemen pengembangan. Saya telah melihat ini salah dalam dua cara berbeda.

Pertama adalah 'Kultus Kultus Kargo' di mana manajer bersikeras mengikuti manifesto dan kelas / buku / situs web apa pun yang mereka baca dengan tepat tanpa memahami alasan mengapa dan kapan menggunakannya dan kapan harus berimprovisasi. Sepertinya manajer Agile sedang menunggu keajaiban terjadi karena mereka benar-benar mengikuti mantera. Implementasi Agile dari Procrustean ini dapat menghasilkan sejumlah masalah yang akan menyebabkan kegagalan proyek.

Yang lainnya adalah 'Agile In Name Only' di mana terminologi seperti sprint dan scrum digunakan tetapi benar-benar hanya label atas praktik lama seperti manajemen mikro, ketidakjujuran naik turun rantai komando, pertemuan status lama yang tidak berguna dan hal-hal lain seperti itu . Proyek gagal seperti dulu, tetapi sekarang Agile dapat disalahkan untuk itu daripada manajemen yang buruk.

Di atas itu adalah kurangnya dukungan oleh klien / pelanggan proyek. Orang-orang ini akan memiliki prioritas departemen mereka sendiri dan dapat tahan untuk bekerja dengan tim pengembangan kecuali jika itu menjadi jelas bahwa itu adalah bagian penting dari pekerjaan mereka oleh manajemen mereka. Ini dapat diperburuk oleh politik departemen atau kebijakan perusahaan. Misalnya, kedua operasi dan pemasaran memiliki input ke dalam proyek dan tim Anda akhirnya memutar roda mereka karena kedua belah pihak tidak dapat menyetujui apa pun. Contoh lain adalah ketika kebijakan perusahaan tentang manajemen waktu dan penagihan menyebabkan konflik. Saya sebenarnya menemukan bahwa pelanggan eksternal lebih mudah untuk berurusan daripada pelanggan internal. Mereka menyukai perhatian yang mereka dapatkan dari proses dan tahu bahwa mereka mendapatkan nilai uang mereka.

jfrankcarr
sumber
0

IMO "Agile" gagal ketika tidak ada pembelian grosir dalam praktik. Yang saya maksud adalah bahwa Agile bergantung pada "pelanggan" (biasanya departemen atau manajer lain) memahami bahwa:

  1. Mereka tidak tahu 100% apa yang mereka ingin perangkat lunak lakukan, bahkan jika mereka pikir mereka melakukannya
  2. Mereka tidak tahu berapa lama waktu yang dibutuhkan untuk menyelesaikannya, bahkan jika mereka pikir mereka melakukannya
  3. Mereka akan diberi tahu berapa lama waktu yang diperlukan dan harus menerimanya atau mengurangi fitur untuk memenuhi tenggat waktu
  4. Mereka harus memilih fitur setiap iterasi dan tidak akan mendapatkan aplikasi lengkap, 100% lengkap dalam satu kesempatan.

Semua itu adalah hal yang sangat sulit untuk ditelan oleh sebagian besar manajer, dan IMO alasan # 1 mengapa sulit dilakukan Agile - manajer terbiasa mengatakan "Ini akan dilakukan oleh x date" dan meminta "Magis" dilakukan pada tanggal itu (setelah pengembang meluangkan 80 jam minggu) dan itu adalah 180 untuk menyadari bahwa tim pengembangan akan memberi tahu Anda bahwa proyek ini akan selesai dalam 3 bulan, dan satu-satunya pilihan yang Anda miliki adalah menerimanya atau mengurangi persyaratan untuk mendapatkan itu dilakukan lebih cepat.

Kedua, harus ada kepercayaan pada tim pengembangan. Seiring dengan # 1 di atas, sangat sedikit manajer yang tampaknya mempercayai pendapat orang yang direkrut sebagai ahli; jika seorang pengembang mengatakan suatu proyek akan memakan waktu x, dan x lebih dari yang menurut manajemen dibutuhkan, itu bukan masalah "Saya tidak tahu bagaimana menulis perangkat lunak, jadi pengembang mungkin benar" itu lebih " Pengembang yang tidak berguna itu ingin melakukan kesalahan di tempat kerja sehingga mereka mengatakan itu akan memakan waktu 3 bulan ".

Ketiga, tim pengembangan Anda harus berada di belakang Agile; itu berarti tidak mengambil jalan pintas dan tidak mengabaikan umpan balik dan pertanyaan konstan "Apakah ini benar? Ketika x terjadi, apa yang harus Anda lakukan?". Bahkan jika Anda tidak mengikuti TDD atau Pair Programming, tim pengembangan Anda harus cukup kompeten untuk mengikuti proses tangkas (misalnya sprint, iterasi). Ini melibatkan memiliki seorang pemimpin / manajer yang dapat memperkirakan tugas dengan baik dan memahami bahwa Anda tidak perlu menjadikan setiap fitur sebagai prioritas, tidak apa-apa untuk memiliki tumpukan pekerjaan, dan Anda tidak boleh terlalu banyak mempekerjakan orang.

Wayne Molina
sumber