Apa yang harus kita lakukan untuk cerita pengguna untuk utang teknis di Pivotal Tracker? Haruskah kita menganggap ini sebagai fitur (memberi poin) atau sebagai tugas (tidak memberikan poin, sehingga menurunkan kecepatan)?
Saya bingung apa yang harus dianggap sebagai tugas:
Duplikasi Kode - Jelas bahwa jika kita telah menempatkan kode yang sama di banyak tempat, itu praktik kode yang benar-benar buruk dan menunjukkan pengembang dalam tim harus lebih memikirkan untuk membuat perangkat lunak dapat dipelihara, lakukan refactoring dan tim harus meluangkan waktu untuk tinjauan kode. Karena semua ini membutuhkan pengalaman tingkat kedewasaan, waktu, dan kode, lebih baik memberikan lebih sedikit poin sehingga kualitas kode tidak terganggu. Jadi, kesalahan seperti itu harus dihukum dan kecepatan harus diturunkan dengan tidak memberikan poin kepada tugas.
Peningkatan teknologi - Seperti bergerak untuk memodulasi JS, HTTP2, React, MVC atau teknologi baru / lebih baik lainnya. Langkah-langkah ini akan membuat kinerja dan pemeliharaan kode lebih baik. Tetapi haruskah ini menjadi tugas atau fitur? Saya percaya ini adalah bagaimana dunia teknologi, teknologi baru datang sesekali dan Anda harus bermigrasi ke sana. Jadi, saya melihat tidak ada gunanya menghukum kecepatan tim untuk pekerjaan seperti itu. Saran?
Duplikasi / Sub-Standar kode dalam kode warisan - Beberapa kode yang tidak tersentuh sejak lama ATAU ketika tim baru dibentuk tetapi basis kode agak lama, kami menghadapi tantangan ini. Tim mengatakan mereka belum mengkodekan bagian ini jadi mengapa kecepatan mereka harus dihukum dengan memilih hutang teknis seperti itu karena mereka tidak pernah membuat hutang tersebut.
Kode standar karena urgensi bisnis - Terkadang pengembang dipaksa untuk mendorong fitur ASAP secara langsung karena tekanan pesaing / target / bisnis / pengguna. Haruskah membersihkan kode buruk seperti itu dianggap sebagai tugas (tanpa memberikan poin) juga? Tim pengembang waktu ini tidak bersalah, jadi mengapa kecepatan mereka harus diturunkan, padahal sebenarnya mereka lebih banyak menghabiskan waktu ekstra dalam kasus-kasus seperti itu.
Saya percaya semua jenis tugas yang disebutkan di atas, jika dilakukan dengan bijak, akan meningkatkan kecepatan tim di masa depan. Tetapi bagaimana kita harus menjaga keseimbangan dengan mempertahankan kecepatan tim serta menghukum karena kesalahan teknis yang dilakukan tim dengan mengambil keputusan yang buruk?
Pertanyaannya mirip dengan: Haruskah utang teknis dijadwalkan sebagai fitur atau tugas (atau bug)? , tetapi saya tidak menemukan jawaban yang meyakinkan yang mencakup semua 4 poin sehingga saya memposting ulang dengan cara yang berbeda.
sumber
Jawaban:
Jawaban singkat: membayar hutang teknis adalah tugas. Anda tidak memberikan fungsionalitas baru untuk pengguna akhir, jadi itu tidak diarahkan.
Jawaban resmi:
Inilah sebabnya mengapa cerita yang digolongkan sebagai bug dan tugas tidak dapat memiliki perkiraan ditugaskan kepada mereka dengan pengaturan default PT, tapi saya pikir juga menjelaskan mengapa Anda tidak harus menghitung tugas-tugas ini sebagai fitur hanya untuk mendapatkan poin bagi mereka.
Pertama, saya tidak berpikir Anda harus menghitung penurunan kecepatan sebagai penalti: itu hanya informasi. Mungkin itu sesuatu yang alami, seperti orang baru yang bergabung sehingga Anda harus menghabiskan waktu ekstra pelatihan. Mungkin itu adalah sesuatu yang tidak terduga yang mengurangi kapasitas Anda (misalnya penyakit) atau mengkonsumsi lebih banyak (mis. Bug "hentikan dunia"). Mungkin Anda belum memperkirakan fitur dengan baik, untuk alasan apa pun; ini adalah sesuatu yang dapat Anda pelajari. Atau mungkin itu karena Anda memutuskan, sebagai tim, untuk memprioritaskan membayar sebagian utang teknis daripada memberikan fitur baru (dan mungkin menimbulkan lebih banyak utang).
Kedua, itu tidak selalu kesalahan untuk menimbulkan hutang teknis. Tidak ideal untuk mengeluarkannya secara tidak sengaja , tetapi jika Anda memutuskan untuk misalnya membangun benda "cepat dan kotor" sekarang dengan pengetahuan bahwa Anda harus merapikannya nanti, misalnya sehingga Anda bisa mendapatkan lebih banyak umpan balik pengguna atau bertemu dengan orang yang sulit. tenggat waktu, itu adalah pilihan yang sengaja Anda buat sebagai tim dan tidak apa-apa.
Mengenai apakah sesuatu harus menjadi fitur, aturan praktisnya adalah: apakah pengguna akhir peduli? Anda menyebutkan meningkatkan SEO: apakah ini sesuatu yang mereka minati? Performa yang mungkin mereka pedulikan, tetapi di sisi lain mungkin mereka lebih suka memiliki beberapa fitur baru daripada hal yang sama dengan beberapa ratus milidetik dari waktu buka. Lakukan riset: pergi dan tanyakan apa yang mereka inginkan. Biarkan mereka membantu Anda memprioritaskan apa yang terbaik untuk menghabiskan waktu tim.
Anda mungkin memutuskan bahwa pilihan teknologi Anda saat ini menahan Anda dari memberikan fitur-fitur tertentu seefisien yang Anda inginkan, dalam hal ini sangat masuk akal untuk (sekali lagi, dengan sengaja) menghabiskan waktu untuk memigrasi semua atau sebagian aplikasi ke sesuatu yang baru.
Di sini saya sangat setuju dengan Anda, tetapi kemudian tidak mendapatkan poin untuk tugas-tugas penghitungan ganda ini? Jika Anda melakukan pekerjaan sehingga Anda dapat memberikan lebih banyak fitur nanti, maka Anda akan melihat kecepatan yang lebih tinggi setelah Anda melakukannya, bukan saat Anda melakukannya.
Juga, hal-hal seperti ulasan kode dan refactoring dasar dalam proses pengiriman (misalnya bagian "refactor" dari siklus TDD) harus sudah menjadi bagian dari pekerjaan Anda yang sedang berlangsung dan karenanya sudah dimasukkan sebagai bagian dari kecepatan keseluruhan tim.
Pengungkapan : Saya seorang Pivot, bekerja untuk Pivotal Labs di London, tetapi tidak di tim Tracker.
sumber
Untuk menjadi pelawan, kami menangani bug dan utang teknis seperti halnya PBI lainnya. Bahkan, kami bahkan tidak memiliki tipe "bug". Semuanya adalah PBI. Tunggakan kami dipesan berdasarkan nilai bisnis yang ditetapkan ke PBI. Akibatnya, bug yang menghadap ke pengguna yang menonjol yang menyebabkan masalah akan memiliki nilai bisnis tinggi yang ditetapkan padanya, karena Anda berisiko kehilangan uang dengan sesuatu seperti itu, dan itu kemungkinan akan menjadi salah satu hal pertama yang dilakukan. Di sisi lain, bug yang tidak benar-benar memiliki banyak dampak dan tidak mempengaruhi garis bawah akan memiliki nilai bisnis yang relatif rendah dan mungkin tidak diperbaiki untuk sementara waktu. Itu adalah dinding mental penting yang harus dirobohkan: tidak setiap bug harus diperbaiki. Kedengarannya seperti penistaan, saya tahu, tetapi jika upaya yang dilakukan untuk memperbaiki bug lebih dari sekadar memperbaiki nilai bisnis, maka ROI negatif. Memperlakukan segala sesuatu sebagai PBI memberi Anda kebebasan untuk membuat jenis keputusan empiris tanpa terganggu hanya karena itu adalah "bug".
Demikian juga, dengan hutang teknis, masih banyak nilai bisnis yang dimainkan. Beberapa hutang teknis mungkin timbul dengan biaya yang sangat kecil dan mungkin tetap jangka panjang, tetapi beberapa hutang teknis akan membunuh bisnis Anda seiring waktu, dan karenanya memiliki nilai bisnis yang sangat tinggi. Kuncinya lagi adalah menyadari bahwa semuanya hanya PBI. Semuanya masuk ke dalam simpanan dan Anda mengerjakan item di simpanan tersebut berdasarkan nilai yang mereka tambahkan ke bisnis. Apakah itu fitur, bug, atau utang teknis benar-benar tidak penting.
Ini juga memiliki manfaat menghindari pertanyaan Anda sepenuhnya. Karena semuanya adalah PBI, semuanya berkontribusi terhadap kecepatan. Gagasan melakukan pekerjaan yang sebenarnya tidak berukuran dan dihitung dalam kecepatan Anda agak gila bagi saya. Anda pada dasarnya menciptakan lubang hitam besar dalam data empiris Anda. Velocity sudah merupakan metrik yang cukup kasar, ini merupakan estimasi berdasarkan pada estimasi yang didasarkan pada lebih banyak estimasi. Tambahkan banyak variabel pekerjaan yang tidak dilacak, dan sekarang jumlahnya tidak berarti. Semua yang dilakukan tim Anda dalam sprint adalah bagian dari kecepatan Anda.
sumber