Di sini saya sedang dalam proses pelingkupan dan memperkirakan proyek pengembangan perangkat lunak baru yang relatif kecil. Saya telah melalui cerita pengguna yang disarankan oleh pelanggan dan menempatkan tugas terhadap masing-masing, dengan perkiraan dan beberapa catatan singkat tentang bagaimana tugas akan diselesaikan. Ada kriteria penerimaan. Semua harus baik dengan dunia.
Ketika melihat pekerjaan yang telah saya rencanakan, saya menyadari ada sesuatu yang hilang. Akan ada pengeluaran awal hanya dengan mengatur hal-hal yang dapat kita gunakan fungsi. Hal-hal yang menjadi milik semua cerita pengguna, bukan satu cerita pengguna tertentu.
Misalnya, bagian dari aplikasi ini adalah layanan yang mem-parsing XML. Dari sudut pandang pengguna ada cerita khusus di mana hal-hal yang berbeda perlu dilakukan tergantung pada konten XML. Sebenarnya menulis parser XML - bit yang mencari file, membacanya, dan mengeluarkan data yang relevan sebelum memutuskan apa yang harus dilakukan dengan konten - adalah bagian dari semua cerita itu. Seperti membungkusnya dalam layanan windows dengan installer dll. Ini adalah tugas pengembang-sentris tanpa relevansi langsung kepada pengguna.
Contoh lain yang relevan dari aplikasi khusus ini adalah mengambil dan menulis ulang blok kode warisan yang buruk yang berguna untuk fungsi aplikasi ini. Sekali lagi, ini tidak memiliki hasil langsung bagi pengguna tetapi itu perlu dilakukan. Di mana perencanaan dan pelaksanaan pekerjaan ini "hidup" dalam rencana proyek yang berfokus pada cerita pengguna?
Saya telah melihat orang memecahkan ini dengan menulis cerita pengguna "Sebagai pengembang, saya ingin ..." tetapi seperti yang telah dibahas di tempat lain ini bukan cerita pengguna . Ini adalah pengembang.
Saya mencari jawaban nyata untuk ini, untuk membantu saya (dan lainnya) merencanakan proyek menggunakan kerangka kerja manajemen yang ketat seperti TFS online. Ini cenderung tidak memiliki fungsi untuk membuat "cerita pemangku kepentingan" atau solusi meta-samar lainnya yang disebutkan dalam jawaban untuk Bagaimana tim Scrum bertanggung jawab atas tugas-tugas infrastruktur dalam pertemuan perencanaan?
sumber
Jawaban:
Saya suka jawaban lain yang mengatakan untuk memasukkan sebanyak mungkin kode "tooling" ke Iteration 0. Namun, kadang-kadang, jenis alat ini muncul setelah proyek sudah dimulai. Mungkin dalam Iteration 3 Anda menyadari bahwa Anda memerlukan widget parser XML umum untuk digunakan pada berbagai cerita ke depan.
Dalam hal itu, Kisah Pengguna pertama yang bergantung pada potongan arsitektur internal ini adalah milik mereka . Jika Anda akan mengerjakan Story # 345, dan itu akan tergantung pada parser XML Anda sebelum dapat dihitung sebagai 'selesai', maka parser yang dapat digunakan kembali akan dilampirkan sebagai pekerjaan agar cerita tersebut selesai.
Tim saya telah menggunakan pendekatan di atas dan tampaknya berhasil bagi kami.
sumber
Jika infrastrukturnya biasanya dimasukkan ke Iteration Zero. Apa Iterasi Nol? Ini biasanya waktu antara kickoff dan perencanaan sebelum iterasi yang sebenarnya dimulai.
Sebagai contoh, katakanlah kita membutuhkan layanan web baru. Jadi, saya perlu membuat proyek, mengatur integrasi terus-menerus, mengatur repositori kontrol sumber, mengatur skrip build dan penyebaran otomatis, dll. Pengguna tidak terlalu peduli tentang ini, tetapi kami membutuhkannya terlepas dari apa.
Jadi, pekerjaan itu akan dilakukan dalam iterasi 0. Pada saat iterasi 1 dimulai, sudah akan ada shell proyek baru yang akan dikompilasi, memiliki skrip build otomatis, dan akan digunakan. Sekarang, tidak ada fungsi pengguna yang ada di sana, tetapi siap digunakan.
Saya masih akan melacak dan merencanakan pekerjaan ini sebagai bagian dari pekerjaan iterasi 0.
Refactoring ini terdengar seperti kisah teknis yang bisa diulang setiap iterasi.
sumber
Tergantung infrastrukturnya.
Jika infrastruktur sangat signifikan, atau harus mematuhi peraturan kepatuhan yang rumit, maka Anda mungkin memiliki tim infrastruktur terpisah, yang mungkin memiliki jadwal sendiri. Mungkin Agile, mungkin air terjun. Dalam hal ini, pembangunan infrastruktur akan dikelola dalam proyek Anda sebagai ketergantungan eksternal .
Jika infrastruktur akan dikelola oleh tim Anda, dan mengatur hanya sekali, Anda dapat menggunakan teknik iterasi 0 yang dijelaskan Jon.
Jika pengaturan infrastruktur akan membutuhkan beberapa iterasi (mis. Mungkin Anda mengatur server build Anda sekarang tetapi server QA dan preprod akan dibangun sedikit kemudian) maka buildout mereka dapat dikelola sebagai PBI yang tidak berfungsi. PBI fungsional mungkin memiliki dependensi tertentu pada ini, yang dapat Anda kodifikasi dalam TFS menggunakan tautan "pendahulu".
Dan tentu saja Anda dapat mencampur dan mencocokkan semua hal di atas. Misalnya, Anda tidak dapat melakukan banyak hal tanpa membangun server terus-menerus, sehingga Anda dapat memasukkannya dalam iterasi 0. Sementara itu server prabayar Anda mungkin didefinisikan sebagai tugas untuk iterasi 2 dan 3, dan mereka mungkin memiliki dependensi eksternal pada tim DBA Anda ( yang bukan Agile) yang akan mengalokasikan instance DB Anda di pusat data Anda. Atau mungkin Anda harus menunggu sertifikat SSL dikeluarkan untuk fitur tertentu; mereka dapat masuk dalam iterasi 4, dan setiap item fungsional yang bergantung pada sertifikat tersebut harus dikaitkan dengan mereka dengan hubungan pendahulu / penerus.
Dalam semua kasus, ingat:
sumber