Apakah pendekatan gesit terlalu banyak alasan yang nyaman untuk koboi


73

Saya percaya bahwa pendekatan gesit adalah yang terbaik untuk proyek-proyek di mana persyaratannya tidak jelas dan banyak interaksi diperlukan untuk membantu membentuk ide-ide pengguna akhir.

Namun ... Dalam pekerjaan profesional saya, saya terus berada di perusahaan tempat pendekatan "gesit" digunakan sebagai alasan mengapa tidak ada upaya yang dilakukan dalam desain di muka; ketika persyaratan dipahami dengan baik.

Mau tidak mau saya berpikir bahwa jika pendekatan tangkas tidak ada, saya akan duduk di sini dengan spesifikasi tingkat tinggi yang bagus dan tidak harus mengunjungi kembali layar dan fungsionalitas yang sama setiap hari kedua ketika sesuatu yang lain muncul atau lebih dan jadi tidak memikirkan itu.

Apakah manfaat dari metodologi lincah benar-benar cukup untuk melebihi alasan untuk menjadi lumpuh karena petunjuk teknis koboi?

Pembaruan: Ironisnya saya sekarang adalah Scrum Master bersertifikat. Salah satu makalah yang dipresentasikan pada kursus Scrum mengamati bahwa proses pengembangan terbaik adalah di mana ada seorang ahli atau guru tunggal membuat keputusan desain, namun itu memiliki kelemahan yang jelas. Scrum mengalihkan tanggung jawab untuk memproduksi perangkat lunak berkualitas ke "Tim" yang berarti tim di bawah standar dapat melepaskan spageti yang menurut saya tidak ada bedanya dengan proses pengembangan Agile dan non-Agile lainnya.


6
Downvotes eh ... Saya menemukan beberapa mualaf lincah menjadi sedikit defensif terutama ketika mereka melihat lincah dan koboi dalam kalimat yang sama. Dan aku bahkan tidak mengantongi tangkas itu adalah koboi yang membuatku jengkel.
sipwiz

2
Ini mungkin ada hubungannya dengan mengapa banyak penandatangan asli Agile Manifesto mengekspresikan ketidaksukaan terhadap istilah "lincah" seperti yang digunakan di sebagian besar perusahaan. Sebaliknya, mereka sekarang berbicara tentang hal-hal seperti "pengerjaan perangkat lunak."
Darcy Casselman

1
Pertama, izinkan saya mengatakan bahwa saya BUKAN penggemar gesit. Kedua, saya akan mengatakan bahwa dalam pengalaman saya, "modal A Agile" hanya memperlambat semua orang (termasuk koboi). Saya belum pernah bekerja dalam situasi di mana saya merasa gesit memungkinkan apa yang disebut "koboi koder".
TM.

1
Saya tidak berpikir itu akurat untuk menyebut apa yang Anda gambarkan "pengkodean koboi". Ini bukan masalah individu - ini masalah kelompok. Ini adalah manajemen produk dan tim yang buruk.
matt b

3
Saya menemukan berpikir di depan hampir tidak ada gunanya. Berhubungan dengan solusi mengikuti insting pertama bisa sangat efektif, jika Anda menerapkan praktik pemrograman yang masuk akal. Pengalaman saya menunjukkan bahwa mereka yang meletakkan rencana besar di muka tidak dapat bereaksi terhadap kenyataan begitu mereka memulai pemrograman.
dash-tom-bang

Jawaban:


87

Saya senang itu memiliki nama

Saya percaya jika Anda menggunakan pengembangan Agile sebagai alasan untuk pemrograman gaya koboi, maka Anda tidak benar-benar mengikuti pengembangan Agile. Koboi akan selalu menjadi koboi, tidak peduli proses apa pun yang Anda berikan kepada mereka.


17
Dilbert (selalu) berbatu ..
TheVillageIdiot

20

Agile tidak bisa disalahkan atas praktik pembangunan yang buruk selain BDUF. Masalahnya terletak pada disiplin, atau ketiadaannya, dalam menerapkan praktik. Tujuan praktik BDUF adalah untuk mengidentifikasi arah proyek dan menentukan risiko sebelumnya. Tujuan dari praktik lincah adalah untuk menjaga kondisi perkembangan cukup fleksibel untuk dengan cepat mengubah arah. Sebuah proyek gesit dapat menyiapkan cerita pengguna yang sangat rinci sehingga tim menyadari arah masa depan dan masih hanya memilih 2 atau 3 per iterasi untuk sepenuhnya diterapkan. Masalahnya tetap sama, metodologi mana pun yang digunakan: manajemen membiarkan koboi berlari.

[BDUF: Desain Besar Di Depan]


3
Tidak akan pernah mungkin untuk menggagalkan para koboi tidak peduli apa pun pendekatannya. Namun setidaknya dengan air terjun mereka harus setidaknya menghasilkan dokumen persyaratan, dokumen pemisahan, dll. Dengan gesit mereka pada dasarnya dapat lolos hanya dengan membenturkan langsung ke kode.
sipwiz

3
Sekali lagi, ini adalah kegagalan untuk mengelola proses dengan benar. Pelanggan harus mendidik pengembang tentang nilai bisnis dalam cerita pengguna, dan tes harus memverifikasi bahwa mereka terintegrasi ke dalam basis kode. Catat area tempat pengembang harus menelusuri kembali langkah mereka. Apakah mereka tidak berpengalaman dalam proses bisnis pelanggan? Apakah mereka tidak pasti mengenai lingkungan penyebaran? Jika proyek ini mengeluarkan biaya pengembangan tambahan karena "pengerjaan ulang komponen", manajemen harus ingin memperbaikinya untuk mengurangi kemungkinan terjadi kelebihan anggaran atau jadwal.
Huperniket

4
Jika Anda baru saja mulai menggedor kode Anda tidak tangkas bahkan jika Anda menyebutnya begitu. Apa yang menghentikan saya hanya memukul kode dan menyebutnya air terjun jika saya menghabiskan 5 menit memikirkan persyaratan di awal.
Craig

1
Huperniketes benar, masalahnya bukan pada metodologi; masalahnya adalah dengan tim manajemen membiarkan para koboi menjalankan departemen.
Jeff Siver

7
@sipwiz: Bahkan di air terjun, koboi akan langsung masuk ke kode. Akhirnya mereka akan mendokumentasikan apa pun yang mereka tulis sebagai spesifikasi desain.
TMN

13

Agile, seperti apa pun , dapat digunakan untuk menutupi perilaku buruk atau mencoba memecahkan masalah yang menurut tim mereka tidak bertanggung jawab.

Namun, keajaiban dalam beberapa metodologi Agile seperti Scrum adalah bahwa mereka akan memberikan banyak visibilitas pada masalah dalam organisasi. Termasuk masalah dalam tim!

Anda akan diberi kesempatan untuk menyelesaikannya saat masalah itu muncul.

Jika masalahnya ada pada koboi, ini akan sangat terlihat setelah iterasi pertama. Jika masalahnya ada di tempat lain, Anda juga akan segera melihatnya.


12

Anehnya, dari proyek "lincah" yang pernah saya ikuti, sepertinya lebih seperti alasan manajemen untuk melewati fase pengumpulan-persyaratan daripada keinginan koboi untuk hanya memulai pengkodean. Proyek saya sangat mengecewakan karena kami tidak memiliki pengguna akhir untuk berinteraksi. Alih-alih, kami memiliki direktur yang berbicara kepada penjualan untuk mengetahui apa yang mereka inginkan pelanggan, kemudian memanggil rapat dan menjelaskannya kepada manajer, yang kemudian mulai menugaskan tugas kepada pengembang. Pada proyek "baik" kita mungkin memiliki presentasi PP untuk merujuk, tetapi biasanya kita akhirnya menghabiskan rapat scrum harian kami bertanya bagaimana beberapa fitur seharusnya bekerja, dan manajer menuliskan pertanyaan dan bertanya kepada direktur. Buang-buang waktu - tapi "gesit"!


Kami tidak menyebutnya apa-apa, tapi pada dasarnya begini situasinya. Kami benar-benar memiliki beberapa dokumen desain besar, tetapi sudah usang dan tidak ada yang melihatnya. Alih-alih, setiap fitur atau perbaikan baru didikte semata-mata oleh apa yang menurut VP panas atau apa yang dikatakan pelanggan inginkan, disingkirkan dengan cepat dalam rapat, dan dilempar ke bawah tenggat waktu yang berat.
CodexArcanum

+1: @TMN, @CodexArcanum: Saya juga punya pengalaman yang sama. Tidak ada juara pengguna. Penjualan mendikte fitur baru untuk manajemen produk, yang kemudian meneruskannya ke pengembangan.
Jim G.

7

Saya tidak akan mengatakan bahwa saya adalah penggemar Waterfall, karena saya juga berurusan dengan creep scope yang selalu membuat frustasi, tetapi saya selalu melihat Agile sebagai konsesi untuk masalah, bukan cara yang efektif untuk memeranginya. Desain yang bagus, dengan pengujian iteratif awal dan banyak prototipe kertas tampaknya jauh lebih efektif.


4
Masalahnya adalah desain yang bagus hampir tidak mungkin untuk apa pun selain proyek sepele. Masalah dengan desain hanya menjadi jelas saat proyek berlangsung. Pengguna tidak tahu apa yang mereka inginkan, tidak peduli seberapa ahli mereka.
Craig

@Craig. Sementara saya setuju dengan Anda bahwa spesifikasi hampir tidak mungkin untuk dipecahkan, bahkan sistem non-sepele harus dapat dibuat prototipe di atas kertas dan ini jauh lebih murah untuk dilakukan daripada benar-benar menulis seluruh sistem hanya untuk menemukan bahwa itu perlu ditulis ulang. Jika tidak dapat dibuat prototipe kertas (setidaknya untuk fungsionalitas dasar), sulit untuk membayangkan bahwa sistem tertentu akan bekerja dengan baik atau masuk akal untuk diterapkan pada akhirnya. Jika Anda dan pengguna tidak dapat duduk dan berjalan melalui skenario pengujian di atas kertas sebelum Anda mulai bekerja, maka akan ada masalah serius.
Morgan Herlocker

2
@Craig Saya tidak setuju bahwa desain yang bagus tidak mungkin. Mengetahui setiap kerumitan sistem di depan mungkin hampir mustahil, tetapi itu tidak berarti desain terhadap apa yang diketahui tidak dapat diproduksi. Maksud saya, bahkan satu kalimat di sepanjang baris "Aplikasi ini akan ditulis sebagai aplikasi MVC menggunakan kerangka kerja entitas untuk DAL" akan menjadi sesuatu. Terlepas dari itu saya telah melihat tender di mana terdapat 180+ halaman persyaratan dan Anda tidak dapat mengatakan kepada saya bahwa itu tidak cukup detail untuk menghasilkan desain yang cukup bagus.
sipwiz

sipwiz, pengalaman saya adalah bahwa jumlah halaman tidak berkorelasi dengan kegunaan spec. Apa yang ditulis lebih penting, bukan seberapa banyak. Itu benar-benar tergantung pada sistem apakah 180 halaman baik atau tidak, jika saya membangun Windows saya akan berpikir itu agak menyala.
Craig

3
Juga saya pikir Anda perlu ingat, gesit bukan berarti tidak ada spec.
Craig

6

Saya melihat pertahanan Agile Development mengatakan bahwa itu tidak bertanggung jawab atas kegagalan yang disebabkan oleh koboi. Sukses dengan Agile membutuhkan ketekunan dan kecerdasan.

Ini sepertinya posisi yang masuk akal, selama Anda menerapkan konsesi yang sama untuk metodologi lain. Jika Anda tidak bisa menyalahkan Agile atas kegagalan proyek yang disebabkan oleh koboi, Anda tidak bisa menyalahkan metodologi non-Agile untuk kegagalan proyek yang disebabkan oleh koboi.

Kita kemudian dapat berdebat apakah ada korelasi (bukan sebab-akibat!) Antara Agile dan koboi. Dengan hanya bukti anekdotal, saya yakin ada. Apakah ini dianggap sebagai cara yang baik untuk bertahan dengan praktik koboi tanpa terdeteksi oleh manajemen?

Tentu saja, jika kita menerima bahwa koboi mungkin tidak tersebar secara merata di seluruh metodologi, dan kita menerima bahwa koboi merusak keberhasilan penggunaan suatu proses, kita telah membuatnya sangat sulit untuk menguji apakah suatu proses berhasil. Klaim bahwa satu proses lebih baik (dalam konteks) menjadi hampir tidak dapat diverifikasi. Ini adalah salah satu masalah yang membuat saya malu karena profesi saya - kurangnya dasar ilmiah dari banyak klaim.

(Ngomong-ngomong, aku benci menyebut alternatif untuk Agile sebagai "air terjun", karena proses air terjun tampaknya menjadi jerami yang diserang semua orang, tetapi sangat sedikit orang yang pernah benar-benar digunakan tanpa iterasi.)


4
Kegagalan pembangunan bukanlah hasil dari kehadiran koboi. Kegagalan pembangunan adalah hasil dari manajemen yang tidak hadir.
Huperniket

@Huperniketes, itu adalah berita FANTASTIS. Programmer tidak pernah bisa disalahkan! Suatu profesi ideal yang telah kami pilih!
Oddthinking

@Ohdthinking, berhentilah membatasi diri Anda pada pemikiran biner. Pemrogram tentu dapat disalahkan karena gagal berkinerja ke tingkat profesi mereka, tetapi pemrogram tidak pernah bisa disalahkan atas kegagalan proyek. Itulah tanggung jawab manajer proyek.
Huperniketes

@Huperniketes, mungkin Anda bisa mengklarifikasi lebih lanjut, tolong? Anda awalnya mengatakan "kegagalan pengembangan", tetapi kemudian pindah ke "kegagalan proyek". Saya setuju bahwa manajer proyek mungkin harus "membawa kaleng" jika salah satu pengembang mereka melakukan di bawah harapan, tetapi sulit untuk melihat bagaimana koboi gagal memberikan tidak pernah bisa menjadi penyebab kegagalan proyek.
Oddthinking

@Ohdthinking, maksud saya tidak ada perbedaan antara "kegagalan pengembangan" dan "kegagalan proyek". Mereka digunakan secara sinonim di sini. Tentu, sebuah proyek mungkin tidak berhasil karena upaya pemrograman itu di bawah standar, tetapi tugas manajer proyek adalah mengidentifikasi kasus-kasus itu dan memperbaiki mereka dengan perubahan ke tim ketika dibutuhkan. Adalah tugasnya untuk memastikan bahwa proyek tersebut berhasil. Dia perlu dipecat jika dia tidak bisa melakukan itu. Jadi dia perlu memastikan anggota tim, bahkan coder koboi dan programmer bintang rock, memenuhi kewajiban mereka untuk proyek atau memecat mereka.
Huperniketes

5

Agile baik-baik saja asalkan bekerja untuk tim Anda.

Terlalu banyak yang menjualnya sebagai cara untuk mengubah tim yang buruk menjadi tim yang baik, dan itu tidak berfungsi seperti itu. Anda tidak dapat mengambil orang jahat dan menerapkan proses untuk tiba-tiba membuat mereka berguna.

Saya menyukai banyak ide di balik gesit, tetapi kegagalan yang saya lihat berulang kali adalah bahwa para manajer mendorong serangkaian "proses tangkas" yang ketat, yang terbang di hadapan seluruh konsep tangkas, bahwa tim harus mandiri mengorganisir.

Sejauh "koboi", saya menemukan bahwa untuk semua tim lincah yang saya ikuti, proses berfungsi untuk memperlambat mereka lebih dari membiarkan mereka menjadi liar. Saya tidak pernah mengalami situasi di mana gesit berfungsi untuk mengaktifkan "koboi koder".

Untuk tim yang bagus, tampaknya bekerja dengan baik (sekali lagi, sebagian besar proses tampaknya bekerja dengan baik ketika Anda memiliki tim yang bagus, lucu bagaimana cara kerjanya bukan?).

Untuk tim lain, dalam pengalaman saya, tidak pernah membantu orang jahat melakukan lebih baik, tetapi kadang - kadang berfungsi untuk meruntuhkan orang-orang produktif.

Secara keseluruhan, saya pikir yang penting adalah membangun tim yang baik, memberi tahu mereka apa yang Anda butuhkan, dan kemudian menyingkir. Saya tidak berpikir menerapkan string kata kunci apa pun cenderung untuk memecahkan masalah memiliki tim yang buruk.

(Jika Anda belum menemukan dari atas, saya bukan penggemar "Capitol-A Agile" setidaknya. Di sisi lain, saya tidak berpikir itu mendorong koboi juga.)


3

Agile ketika dilakukan dengan benar harus memiliki efek mengekang dalam lead teknis "koboi" dan "pahlawan" programmer. Jika Anda tidak mengamati efek ini, itu mungkin pertanda bahwa ada sesuatu yang penting yang hilang dari implementasi tangkas Anda.

Saya ingin menambahkan bahwa "Agile" benar-benar sebuah antarmuka (saya menggunakan metafora berorientasi objek di sini) dan Anda tidak dapat membuat instance. Jika implementasi konkret Anda adalah XP , maka Anda harus mengikuti banyak praktik teknis dengan banyak disiplin, yang menyisakan sedikit ruang untuk pemrograman koboi. Kemungkinan lain adalah bahwa kerja tim dari tim Scrum yang terorganisir dengan baik akan menjaganya.


3

Cowboy coders juga cenderung menulis kode yang tidak terlalu bisa diuji, dan mereka cenderung tidak suka menulis tes. Saya pikir memiliki semua orang yang melakukan TDD dapat membantu memerintah dalam sikap koboi dan membuat pengembang berpikir tentang arsitektur sedikit lebih. Tidak ada metodologi yang sempurna, tentu saja.


1
Jangan lupa tanda paranoid "jika (var! = Null)" tersebar di seluruh kode ...
Jörgen Sigvardsson

3

Saya saat ini bekerja di sebuah toko di mana ini terjadi, kecuali itu lebih berkaitan dengan budaya organisasi daripada dengan koboi individu.

Organisasi selalu beroperasi pada pendekatan "Agile informal" yang relatif longgar. Saya tidak akan mengatakan itu benar-benar Agile, ini lebih "Agile dalam nama", tetapi hanya metodologi yang tidak ada dalam praktiknya. Tim yang berbeda beroperasi secara berbeda, tetapi karena budaya organisasi secara keseluruhan tidak memiliki metodologi di tempat selain dari proses "Agile in name only" yang sangat longgar - ini secara keseluruhan bersifat koboi dan kacau-balau - terutama dalam integrasi (dan ada banyak yang ).

Moral dari cerita ini adalah - Ya, ini memang terjadi. Jika saya mencari pekerjaan saat ini, saya akan sangat berhati-hati dengan ini. Jika sebuah toko mengklaim sebagai Agile - Saya akan mengajukan beberapa pertanyaan yang cukup sulit dalam wawancara untuk memastikan bahwa lebih dari sekedar keliru dari Agile benar-benar diikuti.


1
Kedengarannya sangat mirip dengan situasiku juga. Dan sampai pada inti dari seluruh pertanyaan ini adalah bahwa jika "Agile" tidak ada di sekitar organisasi mungkin akan bertahan pada air terjun dan apa pun kekurangannya itu jauh lebih baik daripada tidak memiliki proses.
sipwiz

2

Saya menemukan bahwa pengguna hanya dapat memberi kami umpan balik begitu mereka memiliki aplikasi yang dapat mereka gunakan, layar tempat mereka dapat memasukkan data. Hanya kemudian, mereka benar-benar memahami apa yang kami coba katakan dalam dokumen persyaratan (bahwa klien menandatangani tetapi semua orang memiliki versi sendiri artinya). Jika itu bukan pengembangan tangkas, itu akan menjadi proyek air terjun melebihi anggaran tetapi aplikasi akan berubah setelah Anda mengirimkannya. Versi pertama Anda tidak lebih dari prototipe bagi pengguna untuk mendiskusikan apa yang seharusnya menjadi persyaratan. Jadi saya lebih suka menyebutnya gesit daripada melebihi anggaran.


Saya telah melihat ini juga (pelanggan yang melihat versi awal dan terlalu terjebak dalam bug / fitur yang Anda tahu belum siap), dan kadang-kadang Anda bisa berjuang untuk mendapatkan umpan balik yang bermanfaat. Saya pikir ini adalah masalah mendidik pelanggan Anda.
Dean Harding

Prototyping ....
sipwiz

2

Saya pikir itu benar, di beberapa lingkungan Agile digunakan sebagai alasan untuk tidak disiplin. Masalah sebenarnya adalah kita tidak tahu mengapa kita memiliki metodologi. Secara pribadi, saya merasa metodologi adalah masalah arsitektur dalam arti bahwa arsitektur sistem seharusnya menangani non-fungsional, atribut kualitas, metodologi harus mengatasi beberapa atribut yang sama (rawatan, pengembangan produktivitas, transfer pengetahuan, et al.)

Melihat metodologi sebagai kontrol untuk atribut proses menyiratkan beberapa hal: 1) tanpa metrik kita tidak dapat membandingkan efektivitas satu metodologi dengan yang lain, 2) keputusan aktif perlu dibuat tentang atribut apa yang penting (waktu pengiriman vs kode transfer kualitas vs pengetahuan).

Tanpa memiliki metrik dan tujuan nyata, kami hanya memilih metodologi sebagai "bulu ajaib" kami yang jika kami pegang teguh, kami akan dapat memberikan perangkat lunak.

Sekarang nay-sayers dari Agile, XP, Scrum, dll berbicara tentang kerapuhan dari kategori metodologi tertentu. Argumennya adalah: mengapa menggunakan metodologi yang dapat disabotase oleh satu orang yang kurang disiplin untuk mengikuti semua aturan? Pertanyaannya adalah yang valid; Namun, itu adalah gejalanya, bukan penyebabnya. Jika set metrik proses yang akurat dan bermakna (itulah bagian yang sulit) didefinisikan, diuji, dan umpan balik tepat waktu diberikan, saya pikir kita akan menemukan metodologi tertentu tidak ada hubungannya dengan kesuksesan. (Berbicara secara anekdot, saya telah melihat proyek yang sukses menggunakan banyak metodologi dan dua kali lebih banyak gagal menggunakan metodologi yang sama)

Jadi apa metriknya? Mereka berbeda dari proyek ke proyek, tim ke tim, dan waktu ke waktu. Berguna untuk ketika jadwal pengiriman penting, yang saya pribadi gunakan adalah keterampilan estimasi dan kualitas. Sebagian besar pengembang dapat secara akurat memperkirakan tugas yang panjang satu minggu atau kurang. Jadi satu pendekatan adalah untuk membagi proyek menjadi tugas satu minggu pengembang dan melacak siapa yang membuat estimasi. Seiring berjalannya proyek, mereka dapat mengubah estimasi mereka. Setelah tugas selesai, jika dimatikan lebih dari 10% (1/2 hari) kami memperlakukan ini sama seperti bug - kami mengidentifikasi mengapa perkiraannya tidak aktif (yaitu tabel basis data tidak dipertimbangkan), identifikasi tindakan korektif (yaitu melibatkan DBA dalam estimasi), dan kemudian melanjutkan. Dengan menggunakan informasi ini, kami dapat membuat metrik seperti # bug estimasi per minggu, # bug per pengembang,

Terus? Saat itulah metodologi muncul - jika Anda memiliki model prediktif yang gagal memenuhi kualitas proses, Anda dapat memilih untuk menambah atau menghapus beberapa aspek metodologi dan melihat bagaimana itu mempengaruhi model Anda. Memang, tidak ada yang mau bermain dengan proses pengembangan karena takut gagal, tapi kami sudah gagal pada tingkat yang tinggi dan dapat diprediksi secara konsisten. Dengan membuat perubahan individu dan mengukur hasilnya, Anda mungkin menemukan bahwa Agile adalah metodologi yang sempurna untuk tim Anda, tetapi Anda bisa dengan mudah menemukan RUP, air terjun, atau sekadar kumpulan praktik terbaik untuk menjadi ideal.

Jadi saran saya mari kita berhenti khawatir tentang apa yang kita sebut proses, melakukan pemeriksaan yang relevan dengan tujuan proses pengembangan kami, dan bereksperimen dengan berbagai teknik untuk meningkatkan proses itu.


Poin bagus. Frustrasi saya berasal dari hasil dalam pendekatan Agile yang jauh lebih lancar dan yang memungkinkan memimpin teknologi tidak kompeten untuk lolos dengan apa pun yang mereka inginkan dan yang dalam pengalaman saya berakhir karena tidak ada proses sama sekali == koboi pengkodean.
sipwiz

1

Saya akan duduk di sini dengan spesifikasi tingkat tinggi yang bagus dan tidak harus mengunjungi kembali layar dan fungsionalitas yang sama setiap hari sebagai sesuatu yang baru muncul atau lebih dan karena itu tidak memikirkan hal itu.

Itu tampaknya cocok dengan pengalaman rekan saya tentang proyek "lincah" di mana dia (saya sendiri belum pernah): dia diminta untuk menulis sepotong kode untuk beberapa spesifikasi, kemudian sama seperti dia selesai mengujinya dan siap untuk pindah pada persyaratan baru muncul yang mengharuskan dia untuk mengubahnya dan mengujinya kembali. Dia merasa frustasi.

Saya tidak memukul tangkas, saya curiga tim tidak melakukan tangkas dengan benar - tetapi seperti yang Anda katakan, istilah "gesit" kadang-kadang dapat digunakan oleh koboi untuk meyakinkan manajemen yang runcing bahwa desain setengah matang lebih positif daripada negatif .


gesit tanpa tes otomatis meminta sakit kepala
Steven A. Lowe

1

Ini lucu bagaimana tidak ada yang menganggap diri mereka sebagai coder koboi. Saya bertaruh banyak dari poster itu atau telah menjadi satu;)


1
Saya menduga sebagian besar dari kita mulai sebagai koboi.
David Thornley

Anda mungkin benar, dan saya belum lama memprogram, tetapi ketika saya berada di sebuah toko tanpa metodologi, kami memiliki koboi. Saya di sebuah perusahaan konsultan lincah sekarang, dan apa yang Anda lakukan adalah besar dan terlihat, dan sebenarnya sulit bagi saya untuk membayangkan seorang koboi sedang menikmati lingkungan ini.
Eric Wilson

1

Cowboy coders bagus karena mereka suka menyelesaikan sesuatu dengan cepat. Mereka sering tidak peduli tentang masalah gambaran besar atau kualitas kode, itulah sebabnya "koboi pembuat kode" sering merupakan julukan. Metode mereka mengurangi risiko biaya peluang dari pengiriman proyek yang terlambat.

Coders non-koboi suka melakukan pekerjaan mereka dengan cara yang aman, disiplin, dan teratur. Mereka suka membangunnya dengan benar dan membangunnya sekali. Mereka dikenal untuk selamanya mengumpulkan informasi, mempertimbangkan bagaimana, menghasilkan dokumen besar yang tidak dibaca oleh siapa pun, dan memberikan sistem terlambat atau sangat terlambat. Metode mereka mencoba mengurangi risiko perangkat lunak berkualitas buruk.

Kecemerlangan metodologi Agile adalah bahwa mereka memanfaatkan kekuatan kedua jenis coders dengan memaksa iterasi kerja yang dibatasi waktu singkat yang meminta coder untuk menghasilkan karya kecil berkualitas tinggi dengan cepat. Dan setiap iterasi mengurangi risiko biaya peluang dari keterlambatan pengiriman dan risiko kualitas perangkat lunak yang buruk.


0

Alasan sementara lincah adalah sangat sedikit menekankan pada desain / spesifikasi di muka bukan hanya karena persyaratan dapat berubah. Alasan yang lebih dalam adalah bahwa bahkan ketika persyaratan stabil, spesifikasi cenderung:

  • salah - gagal menangkap persyaratan.

  • tidak konsisten - penuh dengan kontradiksi karena mengandung cukup banyak informasi sehingga mustahil bagi penulis / pembaca untuk menangkapnya.

  • terlepas - mereka tidak memasukkan umpan balik yang berharga dari sistem yang berjalan (meskipun mengalami kemunduran).

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.