Agile - Spike dan Garis Waktu Keseluruhan

9

Team memulai proyek Agile dengan modal pertama mereka, dan proyek itu sepertinya akan sejalan dengan metodologi (yaitu kita mungkin bisa mengambil buku yang gesit dan mengikutinya seperti resep), dengan sedikit kebingungan:

Proyek ini melibatkan tiga hal yang tidak dimiliki oleh siapa pun di tim: Mengintegrasikan dengan Sistem Pembayaran Foo, dapat menangani jenis file XYZ89 (di mana "XYZ89" = beberapa jenis file yang belum pernah Anda dengar), dan mengonversi beberapa file lain sehingga mereka dapat ditangani oleh Frobnobdicator.

Seperti yang saya pahami, praktik Agile standar adalah menjadwalkan lonjakan untuk masing-masing, setelah itu kita dapat menentukan berapa lama waktu yang dibutuhkan (Saya tidak yakin ada banyak kemungkinan bahwa klien akan memutuskan untuk tidak melakukan mereka, karena mereka persyaratan proyek yang cukup solid)

Jadi pertanyaan saya adalah:

  1. Apakah kita melakukan semua paku di depan dalam iterasi pertama untuk mendapatkan perkiraan yang lebih baik dari waktu yang dibutuhkan untuk melakukannya dan / atau membuat "kerangka berjalan" berjalan dan berlari?

  2. Jika tidak, bukankah total jadwal proyek berada di tangan salah satu paku ini kembali dengan data bahwa cerita khusus ini akan memakan waktu lebih lama daripada yang kita duga?

Apa cara praktik terbaik untuk menangani beberapa lonjakan ketika mereka pada dasarnya persyaratan yang tidak dapat dinegosiasikan dari suatu proyek?


sumber

Jawaban:

4

Cara saya menangani hal-hal yang tidak diketahui ini dalam rencana proyek saya sebelumnya adalah dengan mencoba dan mengatur waktu untuk tim pengembangan untuk melakukan prototipe dari fungsi yang tidak diketahui sebelumnya. Ini memberi manfaat dengan menjelaskan secara jelas apa yang akan diperlukan untuk melakukan tugas-tugas khusus, membuktikan bahwa ini layak secara teknis, dan mendidik anggota tim lainnya tentang kemungkinan perangkap untuk dihindari ketika pengembangan aktif dimulai.

Inilah sebabnya mengapa banyak proyek Agile biasanya dimulai dengan, apa yang saya suka sebut, Sprint 0 .

Anggap itu mengikat tali sepatu lari Anda, peregangan, dan meletakkan bandaid di puting Anda tepat sebelum Anda memulai maraton. Waktu ini dapat digunakan untuk melakukan perencanaan proyek awal dan pembuatan cerita pengguna, peluncuran desain dan arsitektur, pembuatan kerangka kerja perangkat lunak dan pengembang dapat mengerjakan prototipe dan bukti konsep untuk setiap teknologi baru atau tantangan teknis yang tidak diketahui yang akan membuat titik cerita pengguna estimasi jauh lebih mudah.

maple_shaft
sumber
1
Baid pada ujungnya adalah suatu keharusan mutlak! Dan begitu juga Sprint 0 untuk semua kecuali proyek risiko paling sepele dan terendah!
Michael
3

Anda harus melakukan hal-hal sesuai dengan urutan prioritas yang ditetapkan oleh pemilik produk (atau pelanggan). Tidak ada gunanya bunuh diri karena sesuatu yang benar-benar bagus untuk dimiliki. Idenya adalah bahwa jika Anda kehabisan waktu dan sesuatu tidak dilakukan, itu harus menjadi item prioritas terendah.

Jika mereka tidak memprioritaskan apa yang mereka inginkan, Anda akan berjuang.

Jika semuanya relatif sama, jangan mulai dengan barang yang paling sulit - mulailah dengan kemenangan mudah, yang akan memberi tim kesempatan untuk terbiasa bekerja bersama menggunakan metodologi baru dan pelanggan sedikit percaya diri mereka dapat mengirimkan barang dengan cara ini. Setelah itu ditetapkan, atasi sesuatu yang sulit. Ukur kerumitan item yang sulit terhadap kompleksitas hal-hal yang lebih mudah yang baru saja Anda lakukan, dan Anda akan mulai mendapatkan gagasan tentang berapa lama waktu yang dibutuhkan untuk melewatinya.

Item kompleks sebenarnya bukan "paku". Mereka hanyalah hal-hal yang membutuhkan lebih banyak upaya untuk mencari tahu. Bagi mereka menjadi tugas-tugas sederhana sebanyak yang Anda bisa.

Matthew Flynn
sumber
1
Saya pikir dalam kasus ini mereka harus paku, karena tidak ada seorang pun di tim yang pernah bekerja dengan sistem Foo Payroll, file XYZ89, atau Frobnobdicator sebelumnya. Kami tidak tahu berapa lama integrasi dengan sistem itu akan berlangsung.
@Jordan - Saya mengerti, tetapi jika Anda mendasarkan perkiraan Anda di sekitar model kompleksitas, dan bukan model jam, Anda bisa memahami apa yang harus dilakukan. Ya, Anda memiliki kurva pembelajaran pada format file dan API - sedikit lebih rumit. Ya, Anda harus bekerja dengan orang-orang Payroll - sedikit lebih rumit. Itu mungkin berarti bahwa Anda hanya dapat mengerjakan salah satu item tersebut dan tidak ada yang lain dalam iterasi.
Matthew Flynn
1
Saya sangat merekomendasikan melihat Kisah Pengguna Mike Cohn Diterapkan ( amazon.com/User-Stories-Applied-Software-Development/dp/… )
Matthew Flynn
1
Oh tentu, saya mengerti nilai estimasi dalam hal kompleksitas relatif dibandingkan dengan jam. Bagian yang saya bingung adalah jika pendekatan ini benar untuk situasi yang saya jelaskan, sepertinya paku tidak akan pernah digunakan pada proyek apa pun (para devs hanya akan mengatakan "eh, itu sepertinya 3, ini sepertinya 5 ", meskipun tidak ada yang tahu apa-apa tentang integrasi dengan Sistem Fizzbot)
Yah, harapan saya adalah bahwa jika tidak ada yang tahu tentang Fizzbot, mereka akan mengatakan sepertinya lebih seperti 13 atau 21, dan kemudian memecah tugas - 1. pelajari sesuatu tentang Fizzbot. 2. Bangun akses Fizzbot dasar. 3. Model case untuk penggunaan Fizzbot nyata. 4. Bangun tes integrasi. 5. Bangun integrasi Fizzbot sungguhan ... Anda tahu, memecah potongan menjadi hal-hal yang dapat dimengerti dan mudah-mudahan ukuran gigitan.
Matius Flynn
0

Solusi yang mungkin adalah mainan membuat tugas untuk melakukan pembuktian konsep untuk mencari cara menyelesaikan masalah dan mengatur waktu, kemudian menambahkan cerita itu ke dalam sprint dengan cerita lain.

Anda masih memberikan nilai dan produk di akhir sprint, meskipun itu aplikasi konsol hack. Idenya adalah Anda tidak mengurangi produktivitas seluruh tim, jika Anda kehabisan waktu, Anda menambahkan tugas serupa lainnya ke sprint berikutnya.

Bob The Janitor
sumber