Apa yang membuat pengembangan perangkat lunak Agile begitu menarik?

17

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!

Scout tangkas
sumber
2
Sebagian darinya harus sedemikian sehingga mereka dapat dilihat (oleh lebih banyak manajer senior dan / atau pelanggan) untuk "mengikuti" teknologi terbaru dan praktik pengembangan.
ChrisF
2
Dalam pengalaman saya, ketika manajer non-teknis mendorong untuk "gesit", biasanya didorong oleh kepatuhan pada kata kunci, daripada manfaat apa pun yang diharapkan diberikan oleh pengembangan tangkas.
Carson63000
3
Apa yang membuatnya menarik bagi manajemen mungkin adalah bahwa ia memiliki nama seksi dan "gesit" dalam kosa kata mereka biasanya berarti "dengan lebih sedikit orang" (Lihat "Kami ingin menjadi perusahaan yang lebih gesit." Sebagai sinonim untuk "Kami ingin memecat setengah dari tenaga kerja. ")
biziclop
Seberapa jauh ke belakang "hari ini" seperti yang saya pikir saya pernah mendengar tentang Agile setidaknya beberapa tahun sekarang, yang merupakan waktu yang lama di kalangan teknologi?
JB King
Alasan utama adalah bahwa manajer dapat menampilkan creep dan mengatakan "itu bagian dari menjadi lincah"
Steven Evers

Jawaban:

26

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.

Nicole
sumber
2
@Pete, Anda akan menggunakan suara Anda dengan cepat ... :)
Nicole
Cara lain untuk mengatakan ini adalah: Kemampuan untuk benar-benar menembak dan mengenai target yang bergerak.
Bjarke Freund-Hansen
9

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.

Mark Canlas
sumber
Ya, seribu kali ini. "Tidak ada peluru perak" ... kecuali Agile / Scrum, tampaknya, menurut terlalu banyak manajer.
Kyralessa
"Agile akan menyelesaikan semua masalah kita." Jadi mengapa kita masih mengalami masalah ??
Mark Canlas
8

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.

Frans Vanhaelewijck
sumber
6

Tingkatkan visibilitas apa yang sedang terjadi, dan tingkatkan produktivitas

  1. 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.

  2. 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 pervertedoleh manajemen, saya sarankan untuk tidak menyebutkannya di dalam perusahaan.

back2dos
sumber
4

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.

Pete
sumber
4

sebagian besar manajer bahkan belum menyentuh sepotong kode dalam hidup mereka!

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).

apa alasan terbesar untuk memilih untuk melakukan pengembangan Agile

  • Visibilitas atau Sukses cepat / Gagal cepat - Kami adalah toko pengembangan produk dengan siklus 6 bulan hingga 24 bulan. Pengembangan berulang dengan fitur yang berfungsi dan diuji melakukan pekerjaan yang lebih baik untuk mencerminkan status proyek.
  • Ubah - Di lingkungan kita, persyaratan dan waktu cenderung diperbaiki. Tapi, bisnis yang terlalu teratur berjalan cepat, perubahan yang menggelegar di arah. Perkembangan yang berulang dan terlihat membuat proyek lebih mudah untuk mengubah arah.
  • Persyaratan berdasarkan cerita dengan pengembangan berulang membuatnya lebih mudah untuk bekerja dengan bisnis yang tidak selalu memahami aspek teknis dari persyaratan atau sepenuhnya memahami driver bisnis dari beberapa detail. Dalam upaya kami di masa lalu, spesifikasi tingkat tinggi atau dokumen persyaratan pemasaran tidak selalu memadai. Sekarang, seiring perkembangan proyek, mungkin ada beberapa pasar paralel dan riset pelanggan.
  • Perubahan proses datang dengan banyak atribut pengembangan lainnya seperti TDD, pengujian otomatis versus manual, siklus pengujian yang lebih ketat (Kami tidak lagi memiliki grup QC, hanya grup QA), dan penghargaan yang lebih tinggi dan upaya yang berkaitan dengan kualitas (kami menggunakan lebih banyak alat dan metrik).

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.

Jim Rush
sumber
3

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.

Michael Brown
sumber
3

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?

JeffO
sumber
1

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.

CaffGeek
sumber
4
Dalam dunia manajemen yang sempurna tidak melakukan ini; pada kenyataannya manajemen dapat dan memang tergantung pada tempat kerja Anda. Topik-topik hangat di konferensi terakhir sering kali menemukan diri mereka didorong oleh tim pengembangan hanya karena mereka telah digambarkan sebagai penyelamat siklus hidup. Perlu diingat pengembang juga melakukan ini kecuali mereka menggembar-gemborkan bahasa besar dan kerangka kerja berikutnya yang harus menyediakan kode scalable atau sesuatu darinya. Kita semua menyukai hal-hal baru ... itu sifat manusia.
Aaron McIver
1

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.

Dave Kincaid
sumber
0

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.

Sergii Pozharov
sumber
-1

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?

Filip Dupanović
sumber
1
Karena programmer tidak membayar tagihan, klien melakukannya dan itulah sebabnya mereka memegang kendali.
JeffO