Apakah ada ukuran tim minimum yang diperlukan untuk melihat manfaat dari Agile?

8

Saya bekerja di sebuah perusahaan yang telah berulang kali memotong ukuran tim pengembangannya, sampai-sampai tim 10 orang sebelumnya sekarang turun ke satu pengembang per produk (dan beberapa penguji berbagi antara 5 produk). Kami dulunya adalah perusahaan yang cukup berat, yang merupakan spin-off dari perusahaan yang lebih besar, dan mewarisi proses air terjun multi-tahap.

Sudah turun dari tim eksekutif bahwa kami tidak merilis perangkat lunak cukup cepat, dan bahwa ini kemungkinan kesalahan proses (yang mungkin menjadi kontributor, meskipun hilangnya 90% tenaga kerja mungkin tidak membantu). Ada dorongan bagi kami untuk beralih ke proses Agile untuk menghindari menghabiskan waktu menulis dokumen desain, dll.

Saya rasa saya hanya ingin tahu apakah beralih ke Agile akan membantu tim satu orang. Adalah pemahaman saya bahwa banyak manfaat berasal dari visibilitas yang lebih tinggi dan lebih banyak komunikasi antara anggota tim, tetapi saya tahu apa yang saya lakukan dan begitu pula manajer saya. Saya sudah melakukan TDD karena kita tidak memiliki siapa pun untuk menguji produk.

TL; Versi DR: Saya kira apa yang sebenarnya saya tanyakan adalah, dapatkah Anda menerapkan Agile dengan 'tim' satu orang, dan apakah Anda melihat manfaat darinya, atau apakah itu biasanya sesuatu yang lebih efektif untuk tim yang lebih besar?

Shawn D.
sumber
Rilis yang sering lebih mudah dengan lebih sedikit orang. Saya benar-benar tidak dapat menjawab pertanyaan untuk proses penuh gesit, tetapi karena Anda sudah memiliki TDD turun, saya menemukan metode Branch per fitur adalah cara terbaik untuk mendapatkan perbaikan bug dengan cepat ketika mengerjakan proyek saya sendiri.
tylermac
Kemungkinan rangkap / terkait: programmers.stackexchange.com/questions/220/…
Adam Lear
Saya tidak berpikir pertanyaan Anda benar-benar tentang lincah untuk pengembang solo, tetapi lebih terkait dengan dokumentasi. Seperti yang saya katakan dalam jawaban saya, pindah ke metode gesit tidak berarti menghindari menghabiskan waktu menulis dokumen, tetapi berfokus pada memastikan bahwa segala sesuatu yang Anda hasilkan menambah nilai pada proyek. (/ cc @Anna)
Thomas Owens
1
ya, ukuran minimum adalah1
Anda mengatakan bahwa QA dibagikan di antara semua produk. Jadi ketika tim satu orang telah menyediakan beberapa pejabat, apa yang terjadi dalam proses setelah itu? Apakah tim QA perlu menguji sebelum kode didorong langsung? Bagaimana pengaruh QA bersama terhadap kecepatan pengiriman?
RibaldEddie

Jawaban:

4

Lihat https://groups.google.com/forum/#!forum/solo-scrum

dan /programming/829497/agile-methods-specifically-taylored-to-working-solo

Pembaruan:
Tautan pertama adalah ke Grup Google Scrum Solo. Manfaat paling jelas yang dibicarakan di sini adalah menggunakan sprint kotak-waktu untuk mengelola ruang lingkup dan menentukan kecepatan proyek - keduanya hal yang sangat baik.

Tautan kedua adalah ke diskusi sebelumnya tentang Stackoverflow, yang mungkin mengindikasikan ini adalah pertanyaan rangkap, tapi saya pikir akan lebih bermanfaat untuk menautkannya. Ini pada gilirannya link ke http://c2.com/xp/ExtremeProgrammingForOne.html yang memiliki banyak tautan dan info tentang melakukan XP solo (tanpa pemrograman pasangan).

Matthew Flynn
sumber
5
Sementara ini secara teoritis dapat menjawab pertanyaan, akan lebih baik untuk memasukkan bagian-bagian penting dari jawaban di sini, dan menyediakan tautan untuk referensi.
Adam Lear
1
membusuk tautan; topik tidak dapat ditemukan di SO. - Bisakah ini tidak diterima?
paul23
@ paul23 Saya telah memperbarui tautan untuk mengarahkan langsung ke diskusi Google Group.
Matthew Flynn
@MatthewFlynn Meskipun tautan dibuat valid lagi, itu tidak membantu dalam jangka panjang jika tautan busuk terjadi di masa depan. Harap sertakan bagian penting dari jawabannya di sini.
lembut
BAIK. Saya meninggalkan tautan ke Google Groups dan c2.com, melihat bahwa keduanya kemungkinan akan hidup untuk beberapa waktu. Saya tidak yakin apakah analisis ulang saya terhadap apa yang saya tulis 7 tahun yang lalu harus dengan semangat yang sama, tetapi saya harap ini adalah jawaban yang berguna dan benar.
Matius Flynn
5

satu

ukuran tim minimum adalah satu

Agile adalah kumpulan prinsip dan praktik, yang Anda pilih untuk menyesuaikan alur kerja. Jika Anda adalah one-man show, Anda memilih yang sesuai untuk Anda.

XP / TDD bekerja dengan baik untuk tim satu orang. Dan Anda bisa melewatkan praktik berpotensi yang menghabiskan waktu dari pertemuan harian dan pemrograman pasangan.

Steven A. Lowe
sumber
2
Agile adalah tentang komunikasi: dua adalah minimum karena pelanggan harus dimasukkan dalam tim.
mouviciel
3

Masalah utama Anda bukan "gesit", tetapi dokumentasi. Artikel ini pada dokumentasi Agile / Lean oleh Scott Ambler mungkin akan menjadi bacaan yang menarik untuk Anda dan rekan kerja Anda.

Agile bukan tentang tidak mendokumentasikan. Anda masih mendokumentasikan, hanya saja Anda memilih apa dan bagaimana Anda akan mendokumentasikan untuk memaksimalkan nilai sambil meminimalkan waktu yang dihabiskan untuk membuatnya. Anda masih menangkap persyaratan, melaksanakan desain, mendokumentasikan keputusan implementasi Anda, dan memiliki keterlacakan penuh sepanjang siklus hidup sesuai kebutuhan, tetapi hanya sejauh yang dibutuhkan proyek. Tidak menangkap informasi dan keputusan utama proyek adalah cara yang pasti untuk membuat proyek gagal.


Untuk bonus kecil yang menyenangkan, inilah pendapat saya tentang individu yang gesit:

Metodologi tangkas dirancang untuk tim. Scrum biasanya membutuhkan sekitar 3-9 pengembang bersama dengan Pemilik Produk dan Master Scrum (dan Pemilik Produk dan Master Scrum tidak boleh orang yang sama). Pemrograman Ekstrim sering memanggil 4-7 orang.

Alasannya adalah bahwa sejumlah praktik yang umum digunakan dalam metodologi lincah arus utama tidak menurun ke pengembang tunggal. Contoh utama dari ini adalah penekanan pada pemrograman pasangan dan ulasan kode di XP - Anda benar-benar tidak dapat melakukan ini dengan pengembang solo.

Seorang pengembang tunggal bisa gesit, tetapi harus merupakan proses yang disesuaikan. Sebagian besar metode gesit membutuhkan beberapa kombinasi dari integrasi berkelanjutan, pengujian unit, pengembangan berbasis tes, refactoring, prinsip KISS dan YAGNI, dan sebagainya. Banyak dari ini telah menjadi "praktik terbaik", bahkan pada metodologi yang lebih didorong oleh rencana. Tidak ada alasan mengapa pengembang solo tidak dapat mengambil keuntungan dari beberapa dari mereka, selama mereka tidak mengganggu produksi dan pengiriman perangkat lunak.

Thomas Owens
sumber
Siapa bilang Anda tidak bisa melakukan review kode sebagai pengembang tunggal? Anda melakukannya sendiri. Mengambil lebih banyak fokus dan disiplin, tetapi itu tidak masalah.
gnasher729
1

Jika Anda ingin membatasi dokumentasi, saya akan fokus pada itu jika ini menghambat Anda. Dokumentasi hanya sepotong gesit dan tidak terdengar seperti ada orang di perusahaan Anda yang akan tahu bagaimana menerapkannya. Ini bisa menunda rilis kode Anda dalam jangka pendek karena pelatihan, pembelian, penyesuaian, dll. Kekuatan yang ada hanya akan membuangnya dan mencari obat mujarab besar berikutnya untuk penundaan produksi setelah PHK 90%.

JeffO
sumber
1

Datang dari tim satu orang (meskipun semoga tidak lama).

Saya berusaha untuk mencapai Agile untuk diri saya sendiri dalam arti bahwa saya bermaksud agar mereka menjadi lebih banyak pengembang daripada hanya saya sendiri untuk proyek-proyek masa depan. Saya menulis WBS tingkat tinggi, saya membuat cerita pengguna, tugas di bawah cerita pengguna, menguji kasus, dan melacak proyek dengan baik sehingga manajer saya dapat melihat dan memahami. Ini bisa menjadi sedikit rumit karena saya "hanya tahu" di kepala saya di mana saya berada tetapi saya meluangkan waktu untuk melakukannya tetap murni untuk tetap rajin untuk tim masa depan mitos yang telah dijanjikan kepada saya tetapi belum terjadi. Saya ingin berpikir bahwa saya mengikuti proses yang baik untuk orang-orang yang akan datang setelah saya.

Dokumentasi yang saya lakukan dalam jumlah kecil dan itu sebagian besar diagram alir dan menggunakan diagram kasus tetapi umumnya tidak ada level rendah kecuali ada sesuatu yang sangat rumit atau penting tentang hal itu yang saya tidak ingin lupa. Saya juga membuat diagram penempatan untuk kepentingan orang-orang masa depan ketika mereka harus memunculkan lingkungan baru untuk "pelatihan" atau sejenisnya.

Saya belajar sendiri TDD perlahan tapi saya belum menyempurnakannya, ini sangat sulit dilakukan dalam arti murni untuk aplikasi lawas tanpa refactoring petak fungsionalitas yang besar dan berisiko. Fungsionalitas baru yang rumit saya masih berjuang dengan tetapi saya masih bertujuan untuk cakupan 100% yang merupakan permainan akhir TDD setelah semua. Saya mungkin tidak mengambil jalan terbaik untuk sampai ke sana.

Pasti bisa dilakukan, tetapi karena kebutuhan sebagian besar.

maple_shaft
sumber
1

Mengapa Agile sebagai tim satu orang, padahal Anda bisa membentuk satu tim yang terdiri dari lima pengembang dengan jaminan produk tunggal untuk lima produk Anda. Cobalah satu atau dua minggu pengulangan dan fokus pada satu produk pada satu waktu dan lihat bagaimana produktivitas Anda meningkat dengan lima insinyur bekerja bersama sebagai tim yang mengatur diri sendiri secara kohesif. Bergantung pada seberapa sering Anda berencana untuk merilis, Anda mungkin perlu menyesuaikan panjang sprint. Saya menduga bisnis mungkin tidak ingin menunggu 10 minggu antara pembaruan untuk suatu produk, dalam hal ini panjang sprint 1 minggu dapat bekerja lebih baik. Anda dapat mengerjakan dua produk dalam satu sprint tetapi saya akan berusaha sebaik mungkin untuk menghindari ini sehingga Anda dapat fokus pada satu tujuan produk dan melakukan itu secara produktif dan berkualitas.

IMO memiliki satu orang yang didedikasikan untuk satu produk mungkin merupakan pendekatan yang tidak bijaksana ketika ada lima pengembang dan lima proyek total, terlepas dari metodologi yang Anda pilih.

Greg Reynolds
sumber
0

Banyak praktik lincah membuahkan hasil untuk tim> 0. Kontrol sumber dan pengembangan tanpa gesekan, misalnya, dan itu akan selalu membuahkan hasil, sekecil apa pun tim.

Wyatt Barnett
sumber
0

Ini benar-benar tergantung pada apakah ada dukungan dari sisi bisnis, atau hanya hal baru bagi manajemen untuk disalahkan pada pengembangan (yang terdengar seperti situasi, berdasarkan pengurangan 90% dalam ukuran tim). Itu higher visibility and more communication between team memberstidak hanya berarti antara pengembang. Penting bagi sisi bisnis untuk melihat ke mana waktu Anda pergi, dan menetapkan prioritas yang benar.

Kami telah melihat peningkatan besar dalam kepercayaan antara sisi bisnis dan TI perusahaan kami, karena setiap tim sekarang memiliki Pemilik Produk yang ikut serta dalam stand-up harian, dan mereka melihat ke mana perginya waktu kami, dan mereka adalah yang membuat keputusan tentang apa yang kita kerjakan selanjutnya. Alih-alih manajer terus-menerus dibombardir dengan permintaan, dan kemudian pengembangan disalahkan ketika hal-hal menyelinap melalui celah-celah atau tidak ada cukup waktu dalam sehari untuk menyelesaikan semuanya, sekarang Pemilik Produk yang bertanggung jawab untuk menetapkan prioritas, dan membuat keputusan tentang apa yang dimasukkan dalam sprint.

Jadi, jika ada komitmen dari Pemilik Produk yang akan terlibat dalam proses, maka ya, proses Agile bisa sangat efektif bahkan untuk tim yang terdiri dari satu orang. Tetapi jika ini hanyalah cara lain untuk membuat pengembang menjadi kambing hitam, maka Agile akan gagal untuk semua orang.

Joel C
sumber