Saya bekerja dengan basis kode yang lebih dari 500 ribu baris kode. Sangat perlu refactoring. Telah ada upaya refactoring yang diidentifikasi yang akan memakan waktu lebih lama dari sprint dua minggu normal. Ini tidak dapat dipecah menjadi tugas yang lebih kecil seperti yang saya lihat disarankan dalam jawaban lain di situs ini. Produk perlu bekerja pada akhir iterasi, dan refactoring parsial akan membuat sistem dalam keadaan tidak dapat digunakan karena ketergantungan antar item sangat mengerikan. Jadi apa cara terbaik untuk mendekati rintangan ini? Sekali lagi saya sebutkan, memecahnya menjadi potongan-potongan kecil bukanlah pilihan, yang telah dilakukan.
Pembaruan: Orang-orang tampaknya membutuhkan penjelasan mengapa ini tidak bisa masuk dalam sprint 2 minggu. Ada lebih banyak yang terlibat dalam sprint daripada hanya menulis kode. Kami memiliki kebijakan tanpa kode tanpa tes. Kebijakan itu tidak selalu ada dan sebagian besar basis kode tidak memilikinya. Juga beberapa tes integrasi kami masih berupa tes manual. Masalahnya bukan bahwa refactoring itu sendiri sangat besar. Dengan fakta bahwa perubahan kecil berdampak pada banyak bagian sistem, dan kita perlu memastikan bahwa bagian-bagian itu masih beroperasi dengan benar.
Kami tidak dapat menunda atau memperpanjang sprint karena kami memiliki hotfix bulanan. Jadi, perubahan yang melampaui sprint tidak bisa menghentikan pekerjaan lain yang ditambahkan ke perbaikan terbaru.
Refactoring vs Redesign: Hanya karena proses pengembangan kami tidak cukup efektif untuk menangani refactoring ini dalam siklus dua minggu tidak menjamin pengubahan nama menjadi redesign. Saya ingin percaya bahwa di masa depan kita bisa menyelesaikan tugas yang sama persis dalam siklus dua minggu saat proses kita membaik. Kode yang dimaksud di sini belum harus berubah dalam waktu yang sangat lama, dan cukup stabil. Sekarang, ketika arah perusahaan menjadi lebih mudah beradaptasi terhadap perubahan, kami ingin bagian basis kode ini dapat beradaptasi seperti yang lainnya. Yang membutuhkan refactoring itu. Berdasarkan jawaban di sini, menjadi jelas bahwa ada perancah yang hilang yang diperlukan untuk membuat refactoring ini bekerja dalam kerangka waktu sprint normal.
Menjawab:
Saya akan melakukan pendekatan cabang dan penggabungan yang disarankan Corbin March pertama kali sehingga kami dapat mempelajari lebih lanjut tentang bidang masalah ini dan cara mengidentifikasi tes yang hilang. Saya pikir untuk maju, kita harus mengambil pendekatan yang disarankan Buhb untuk mengidentifikasi area yang tidak lulus tes dan mengimplementasikannya terlebih dahulu, kemudian melakukan refactoring. Ini akan memungkinkan kita untuk mempertahankan siklus sprint dua minggu yang normal, seperti yang dikatakan banyak orang di sini seharusnya selalu menjadi kasus untuk refactoring.