Saya memiliki dua masalah dengan Scrum di sistem embedded. Pertama, ada banyak tugas yang harus dilakukan, terutama pada tahap awal, yang tidak dapat dibuktikan. Kami mulai dengan papan pengembangan, tanpa OS, tanpa layar, tanpa komunikasi serial, dll. Kami tidak memiliki layar untuk enam sprint.
Empat sprint pertama adalah:
- Mendapatkan RTOS dan berjalan
- Membuat tugas menulis driver jaringan dan serial
- Menulis interupsi rutin untuk tombol, komunikasi, dll.
- Menulis kelas dan metode basis data primer
- Menulis menu debug serial
Sebagian besar tugas ini tidak cocok untuk cerita pengguna. Bahkan, satu-satunya antarmuka ke seluruh sistem adalah menu debug serial, dibangun di sprint 3, jadi tidak ada yang menunjukkan di akhir sprint. Bahkan menu serial dimaksudkan untuk penggunaan internal dan bukan pengguna akhir. Meskipun demikian, saya masih ingin melacak dan mengelola kegiatan pengembangan ini melalui Scrum.
Kami akhirnya menulis frasa "cerita pengguna" seperti, "Sebagai pengembang ...", yang tidak saya sukai tetapi dalam menggunakan Proses Target (www.targetprocess.com), tidak ada konsep item jaminan simpanan yang tugas atau tugas.
Kedua, bagaimana Anda menangani rilis dan pengujian? Ini sangat menyebalkan bagi kami karena para penguji tidak memiliki perangkat keras pen-debug, jadi kami harus membuat versi flash kode dan membakarnya di papan pengembangan untuk diuji. Penguji secara teknis tidak setajam pengembang dan seringkali membutuhkan banyak dukungan dalam membuat hal-hal bekerja pada tahap awal (mengatur ulang papan, menghubungkan komunikasi serial, dll.), Atau bahkan dalam memahami output.
Akhirnya, mengenai definisi selesai, sprint tidak bisa lengkap sampai semua cerita selesai. Semua cerita tidak lengkap sampai diverifikasi oleh penguji. Tidak ada cara untuk menghindari "merampok" waktu pengembang untuk diberikan kepada penguji. Dengan kata lain, jika tiga cerita pengguna terakhir dalam sprint akan memakan waktu lima hari untuk diuji, mereka harus diberi kode dan unit diuji lima hari sebelum akhir sprint. Apa yang seharusnya dilakukan pengembang? Berhenti bekerja?
Saya sedang bercanda, tetapi ini adalah masalah nyata yang mencoba untuk mematuhi aturan. Sekarang, saya baik-baik saja dengan membengkokkan aturan, tetapi masalah yang saya miliki adalah, itu mengacaukan semua metrik burndown saya jika saya tidak dapat menandai sesuatu dilakukan sampai mereka diuji.
Saya ingin mendengar bagaimana orang lain menangani situasi ini.