Tolong jangan lakukan itu! 1 Story Point bukanlah 1 Engineering Hour!

Tolong jangan lakukan itu! 1 Story Point bukanlah 1 Engineering Hour!

Artikel ini adalah hasil terjemahan dengan bantuan mesin. Karenanya akan ada pergeseran nuansa dari artikel aslinya. Untuk mendapatkan pesan dan nuansa asli dari artikel ini, silakan kunjungi artikel yang asli di: Please don’t do it! 1 Story Point is not 1 Engineering Hour!

بِسْــــــــــــــــــمِ اللهِ الرَّحْمَنِ الرَّحِيْمِ

Dengan nama Allah Yang Maha Pengasih, Maha Penyayang.

14 Juli 2023

Dalam pengembangan perangkat lunak Agile, Scrum telah menjadi salah satu kerangka kerja paling populer untuk mengelola proyek. Salah satu konsep kunci dalam Scrum adalah menggunakan poin cerita untuk memperkirakan usaha yang diperlukan untuk menyelesaikan cerita pengguna. Namun, penting untuk memahami bahwa poin cerita berbeda dari jam rekayasa. Meskipun artikel ini menggunakan contoh Scrum, konsep ini berlaku untuk teknik estimasi Agile lainnya. Artikel ini akan menjelaskan mengapa menyamakan 1 poin cerita dengan 1 jam rekayasa adalah salah dan bagaimana prinsip ini berlaku untuk metode estimasi Agile lainnya.

Pengantar Poin Cerita

Dalam pemrograman komputer, ketika sebuah tim sedang bekerja pada sebuah proyek, mereka perlu tahu berapa banyak waktu dan usaha yang dibutuhkan untuk menyelesaikan tugas-tugas yang berbeda. Daripada mencoba menebak berapa lama setiap tugas akan memakan waktu, mereka menggunakan sistem yang disebut “poin cerita”.

Poin cerita membantu tim mengetahui seberapa sulit setiap tugas, berdasarkan seberapa rumit tugas itu, seberapa banyak yang mereka tidak tahu tentangnya, berapa banyak tugas lain yang bergantung padanya, dan seberapa banyak keterampilan yang mereka butuhkan untuk menyelesaikannya. Mereka menggunakan angka-angka tertentu, seperti 1, 2, 3, 5, 8, dan 13, untuk menilai tingkat kesulitan setiap tugas. Dengan cara ini, mereka dapat lebih baik merencanakan berapa banyak pekerjaan yang dapat mereka lakukan dalam jangka waktu tertentu.

Poin cerita berbeda dengan menghitung berapa jam yang dibutuhkan untuk setiap tugas karena setiap orang bekerja dengan kecepatan yang berbeda, dan beberapa tugas lebih kompleks daripada yang lain. Dengan poin cerita, tim dapat memastikan bahwa setiap orang melakukan yang terbaiknya tanpa harus khawatir tentang berapa banyak jam yang dibutuhkan.

Faktor-faktor yang Mempengaruhi Upaya

Tidak peduli teknik estimasi Agile apa yang digunakan, beberapa faktor memengaruhi upaya yang dibutuhkan untuk menyelesaikan sebuah cerita pengguna. Faktor-faktor ini termasuk:

Kompleksitas

Kompleksitas mengukur seberapa sulit atau rumit tugas yang harus diselesaikan. Hal ini dapat dipengaruhi oleh berbagai faktor dalam sebuah cerita pengguna, seperti jumlah fitur atau fungsionalitas yang terlibat, tingkat keahlian teknis yang dibutuhkan, atau kebutuhan integrasi dengan sistem atau komponen lain. Penelitian yang tepat, analisis, atau koordinasi dengan anggota tim lain dapat diperlukan untuk mengevaluasi kompleksitas cerita pengguna. Hal ini dapat melibatkan meninjau dokumentasi, berkonsultasi dengan ahli subjek, atau melakukan pengujian pengguna.

Tingkat kompleksitas dapat berdampak signifikan pada jumlah poin cerita yang diberikan untuk sebuah cerita pengguna. Cerita yang lebih kompleks umumnya akan membutuhkan lebih banyak poin untuk diselesaikan, mencerminkan upaya dan sumber daya yang diperlukan untuk memberikan fungsionalitas dengan sukses. Sangat penting untuk dengan hati-hati mengevaluasi kompleksitas sebuah cerita pengguna untuk memastikan bahwa lingkup dan perencanaannya akurat. Tidak memperhitungkan kompleksitas dengan benar dapat menyebabkan penundaan atau hambatan yang tidak terduga nanti dalam pengembangan.

Ketidakpastian dalam Cerita Pengguna

Ketidakpastian dalam cerita pengguna mengacu pada hal-hal yang tidak diketahui atau risiko yang terkait dengan tugas atau fitur tertentu. Ketika sebuah tugas melibatkan ketidakpastian yang tinggi, lebih banyak poin cerita mungkin diberikan untuk memperhitungkan upaya tambahan yang diperlukan untuk mengatasi tantangan atau hambatan yang mungkin terjadi.

Beberapa faktor dapat menyebabkan ketidakpastian dalam cerita pengguna. Salah satu faktor umum adalah persyaratan yang tidak jelas; ketika persyaratan tidak terdefinisi dengan baik, memperkirakan upaya yang dibutuhkan untuk menyelesaikan tugas dapat menjadi sulit. Faktor lain yang berkontribusi adalah pengetahuan domain yang terbatas; ketika anggota tim tidak terbiasa dengan domain atau teknologi yang terlibat dalam tugas, dapat sulit untuk memperkirakan hambatan yang mungkin terjadi. Ketergantungan pada sistem atau tim eksternal juga dapat meningkatkan ketidakpastian, karena masalah yang tidak terduga dengan ketergantungan ini dapat memengaruhi penyelesaian cerita pengguna.

Perlu dicatat bahwa ketidakpastian tidak selalu merupakan faktor negatif dalam cerita pengguna. Dalam beberapa kasus, ketidakpastian dapat mengarah pada inovasi dan pemecahan masalah secara kreatif. Namun, mengelola ketidakpastian secara proaktif sangat penting untuk menghindari penundaan atau hambatan yang tidak terduga. Semakin tinggi tingkat ketidakpastian, semakin penting untuk melibatkan pemangku kepentingan dan ahli subjek yang relevan dalam perencanaan dan pelaksanaan cerita pengguna.

Ketergantungan

Ketergantungan merupakan aspek penting yang harus dipertimbangkan saat bekerja pada sebuah cerita pengguna. Tugas-tugas atau aktivitas-aktivitas ini harus diselesaikan sebelum cerita pengguna bisa dikerjakan. Penting untuk dicatat bahwa jumlah ketergantungan dapat memengaruhi usaha yang diperlukan untuk menyelesaikan cerita pengguna. Sebagai contoh, jika sebuah cerita pengguna memiliki banyak ketergantungan atau memerlukan koordinasi dengan tim atau departemen lain, lebih banyak poin cerita mungkin akan diberikan untuk mencerminkan usaha tambahan yang diperlukan untuk koordinasi dan kolaborasi.

Selain itu, sangat penting untuk memahami bahwa ketergantungan dapat memengaruhi usaha yang diperlukan untuk menyelesaikan sebuah cerita pengguna dalam beberapa cara. Misalnya, jika sebuah cerita pengguna bergantung pada penyelesaian tugas oleh tim lain, setiap keterlambatan atau masalah dalam pekerjaan mereka dapat mempengaruhi usaha keseluruhan yang diperlukan. Begitu juga, usaha tambahan mungkin diperlukan untuk memastikan integrasi dan kolaborasi yang lancar jika sebuah cerita pengguna memerlukan koordinasi dengan pemangku kepentingan eksternal atau sistem pihak ketiga. Mempertimbangkan semua faktor ini saat bekerja pada sebuah cerita pengguna sangat penting untuk memastikan penyelesaiannya.

Tingkat Keahlian

Ketika menyangkut cerita pengguna, tingkat keahlian anggota tim dapat berdampak signifikan pada waktu dan usaha yang diperlukan. Mungkin akan memakan waktu lebih lama untuk menyelesaikan tugas jika memerlukan pengetahuan atau keahlian khusus yang terbatas hanya pada beberapa anggota tim. Hal ini terutama berlaku jika diperlukan pelatihan atau penelitian tambahan untuk menangani tugas tersebut.

Penting untuk diingat bahwa tingkat keahlian anggota tim dapat bervariasi secara signifikan. Beberapa anggota tim mungkin lebih berpengalaman daripada yang lain, memengaruhi waktu tugas. Sebagai contoh, tugas yang memerlukan keterampilan pemrograman tingkat lanjut atau pengetahuan domain yang mendalam mungkin lebih mudah untuk ditangani oleh anggota tim yang berpengalaman daripada yang kurang berpengalaman.

Itulah mengapa sangat penting untuk mempertimbangkan tingkat keahlian anggota tim secara keseluruhan saat menetapkan poin cerita. Dengan melakukannya, Anda dapat memastikan bahwa tugas diberikan kepada anggota tim dengan keahlian dan pengetahuan yang tepat untuk menyelesaikannya secara efisien dan efektif. Hal ini membantu mengurangi waktu dan usaha keseluruhan yang diperlukan untuk menyelesaikan proyek sambil memastikan bahwa produk akhir memiliki kualitas tertinggi.

Mengapa 1 Poin Cerita Bukan 1 Jam Kerja

Meskipun poin cerita mengukur usaha, mereka tidak setara dengan jam kerja rekayasa. Berikut adalah beberapa alasan mengapa:

Perbedaan Individu

Penting untuk diakui bahwa anggota tim dapat memiliki tingkat produktivitas dan efisiensi yang berbeda-beda. Beberapa anggota tim mungkin lebih berpengalaman atau memiliki gaya kerja yang berbeda yang mempengaruhi kemampuan mereka untuk menyelesaikan tugas. Keadaan pribadi seperti kewajiban keluarga atau masalah kesehatan juga dapat mempengaruhi kemampuan individu untuk menyelesaikan pekerjaan dengan kecepatan yang sama dengan rekan-rekan mereka.

Tim dapat menggunakan poin cerita untuk mengatasi perbedaan ini daripada hanya fokus pada perkiraan berbasis waktu. Poin cerita mempertimbangkan usaha relatif yang diperlukan untuk suatu tugas daripada hanya jumlah waktu yang dibutuhkan. Hal ini memungkinkan estimasi usaha yang lebih akurat yang mempertimbangkan kekuatan dan tantangan unik masing-masing anggota tim.

Selain itu, perbedaan individu juga dapat muncul dari perbedaan dalam keahlian atau pengetahuan. Misalnya, satu anggota tim mungkin lebih familiar dengan bahasa pemrograman atau alat tertentu, sementara yang lain mungkin memiliki pengalaman lebih dalam manajemen proyek. Dengan menggunakan poin cerita, tim dapat memperhitungkan perbedaan ini dalam keahlian dan memastikan bahwa setiap anggota tim ditugaskan tugas yang menantang dan dapat dicapai.

Menyeimbangkan Pengiriman Tim

Jika 1 poin cerita setara dengan 1 jam rekayasa, maka akan menyiratkan bahwa semua anggota tim memiliki tingkat produktivitas dan efisiensi yang sama. Hal ini akan membuat sulit untuk membedakan antara anggota tim dalam hal kontribusi dan dampak pada proyek. Dengan menggunakan poin cerita, fokus beralih dari jam kerja individu ke usaha kolektif yang diperlukan untuk menyelesaikan sebuah cerita pengguna. Hal ini memungkinkan representasi kapasitas tim yang lebih akurat dan membantu merencanakan dan memprioritaskan pekerjaan secara tepat.

Poin cerita menyediakan pendekatan yang adil dan seimbang untuk memperkirakan usaha, mempertimbangkan usaha kolektif tim daripada kontribusi individu. Pendekatan ini membantu membentuk lingkungan tim yang berkolaborasi dan mendukung yang berfokus pada pencapaian tujuan proyek secara kolektif.

Contoh dari Pengalaman

Untuk menggambarkan perbedaan antara poin cerita dan jam rekayasa, mari pertimbangkan contoh dari pengalaman pribadi. Di salah satu perusahaan tempat saya bekerja, tim menggunakan tingkat konversi 3 poin cerita setara dengan 1 hari. Namun, terdapat perbedaan produktivitas yang signifikan antara insinyur senior dan insinyur junior.

Insinyur senior dapat membuat lebih dari 1000 baris kode setiap hari saat bekerja pada fitur “CRUD”, sedangkan insinyur junior hanya dapat memberikan sekitar jauh lebih sedikit daripada itu. Jika kita mempertimbangkan poin cerita setara dengan jam rekayasa dan menetapkan mereka kepada semua orang, itu akan menyiratkan bahwa produktivitas insinyur senior sama dengan insinyur junior, yang jelas salah.

Namun, dengan menggunakan poin cerita, kita dapat memperhitungkan perbedaan produktivitas individu ini. Pekerjaan insinyur senior mungkin diberi lebih banyak poin cerita karena kompleksitas dan usaha yang terlibat. Pekerjaan insinyur junior mungkin diberi lebih sedikit poin cerita. Pendekatan ini memungkinkan estimasi usaha yang adil dan akurat, mempertimbangkan keahlian dan kemampuan masing-masing anggota tim. Ini juga membantu menghindari perbandingan yang tidak adil dan mempromosikan fokus pada usaha kolektif yang diperlukan untuk menyelesaikan cerita pengguna.

Bagaimana Melakukannya Dengan Benar?

Mari kita sepakat untuk melakukan estimasi agile menggunakan angka Fibonacci. Ikuti langkah-langkah ini:

  1. Definisikan urutan Fibonacci: Urutan Fibonacci adalah serangkaian angka di mana setiap angka adalah jumlah dari dua angka sebelumnya. Urutan ini biasanya dimulai dengan 0 dan 1, menghasilkan 0, 1, 1, 2, 3, 5, 8, 13, dan seterusnya. Angka-angka ini akan digunakan untuk menugaskan poin cerita ke cerita pengguna.
  2. Buat cerita referensi: Mulailah dengan memilih cerita pengguna yang mewakili tingkat usaha rata-rata tim Anda. Cerita ini akan menjadi titik referensi untuk menugaskan poin cerita ke cerita pengguna lainnya. Tugaskan nilai poin cerita untuk cerita referensi ini, seperti 5 atau 8.
  3. Estimasi cerita pengguna lainnya: Bandingkan setiap cerita pengguna dengan cerita referensi dan tugaskan nilai poin cerita berdasarkan kompleksitas dan usaha relatif yang diperlukan. Gunakan urutan Fibonacci untuk menugaskan poin cerita, seperti 1, 2, 3, 5, 8, 13, dll. Berikut adalah beberapa panduan untuk menugaskan poin cerita:
    • Poin cerita 1: Bayangkan tugas sehari-hari yang paling sederhana, seperti mengubah nilai string pada aplikasi.
    • Poin cerita 2: Dua kali lebih kompleks daripada poin cerita 1.
    • Poin cerita 3: Tiga kali lipat kompleksitas poin cerita 1.
    • Poin cerita 5: Setara dengan gabungan kompleksitas poin cerita 2 dan 3.
    • Dan seterusnya, mengikuti urutan Fibonacci.
  4. Hati-hati dengan tugas perbaikan bug: Saat menugaskan poin cerita ke tugas perbaikan bug, penting untuk mempertimbangkan sifat bug. Memperbaiki bug produksi mungkin dianggap sebagai tugas produktif dan diberi nilai poin cerita yang lebih besar dari 0, karena berkontribusi pada stabilitas dan keandalan perangkat lunak. Namun, memperbaiki bug pengembangan, yang merupakan bug yang ditemukan selama proses pengembangan, tidak dianggap sebagai tugas produktif. Menugaskan poin cerita ke tugas perbaikan bug pengembangan tidak disarankan, karena dapat menyebabkan metrik produktivitas yang menyesatkan.
  5. Diskusikan dan capai konsensus: Estimasi harus menjadi proses kolaboratif yang melibatkan seluruh tim Agile. Bahas kompleksitas setiap cerita pengguna, mempertimbangkan tantangan teknis, ketergantungan, dan risiko. Capai konsensus pada nilai poin cerita untuk setiap cerita pengguna melalui komunikasi terbuka dan transparan. Cara konvensional untuk mencapai konsensus ini adalah dengan menggunakan planning poker, tetapi estimasi ajaib juga berfungsi dengan baik jika Anda membutuhkan iterasi yang lebih cepat (dapat menjadi 4-5 kali atau bahkan lebih cepat).
  6. Mengunjungi dan menyempurnakan estimasi: Saat tim mendapatkan lebih banyak pengalaman dan pengetahuan selama proyek, mengunjungi dan menyempurnakan estimasi sangat penting. Ini dapat dilakukan selama upacara Agile seperti perencanaan sprint atau sesi penyempurnaan backlog. Sesuaikan nilai poin cerita berdasarkan wawasan dan pembelajaran baru.
  7. Menangani kompleksitas yang tidak diketahui: Untuk estimasi yang lebih baik, disarankan untuk menandai poin cerita 13 sebagai tidak diketahui. Poin cerita 13 harus dipecah menjadi tugas yang lebih kecil dengan poin cerita yang lebih kecil untuk memahami kompleksitasnya dengan lebih baik.

Dengan mengikuti langkah-langkah ini dan mempertimbangkan nuansa tugas perbaikan bug, tim Agile Anda dapat dengan efektif memperkirakan cerita pengguna menggunakan poin cerita dan urutan Fibonacci, memungkinkan perencanaan dan alokasi sumber daya yang lebih baik.

Memperkirakan Waktu Penyelesaian Proyek

Meskipun poin cerita tidak secara langsung setara dengan jam teknik, mereka masih dapat digunakan untuk memperkirakan waktu yang dibutuhkan untuk menyelesaikan proyek. Dengan menganalisis data historis dan mengamati kecepatan tim, yang merupakan jumlah poin cerita yang diselesaikan dalam periode tertentu, adalah mungkin untuk membuat prediksi tentang jadwal proyek di masa depan.

Implementasi Agile yang tepat menekankan pengumpulan dan analisis data sepanjang siklus proyek. Data ini mencakup jumlah poin cerita yang diselesaikan dalam setiap sprint, kecepatan tim, dan faktor-faktor apa pun yang mungkin telah memengaruhi kinerja tim. Dengan melacak data ini dari waktu ke waktu, tim dapat memperoleh wawasan tentang kapasitas dan produktivitas mereka.

Dengan menggunakan data historis ini, tim dapat menghitung kecepatan rata-rata mereka dan memperkirakan sprint yang diperlukan untuk menyelesaikan pekerjaan yang tersisa. Misalnya, jika kecepatan rata-rata tim adalah 20 poin cerita per sprint dan 100 poin cerita tersisa, dapat diperkirakan bahwa proyek akan memakan waktu sekitar 5 sprint untuk diselesaikan. Dengan demikian, bila panjang sprint adalah 2 minggu, kita dapat memberikan perkiraan waktu yang tersisa sekitar 10 minggu kepada para pemangku kepentingan.

Namun, penting untuk dicatat bahwa perkiraan ini didasarkan pada data historis dan asumsi tentang kinerja di masa depan. Proyek Agile secara inheren adaptif, dan faktor-faktor yang tidak terduga dapat mempengaruhi kecepatan tim. Oleh karena itu, perkiraan ini harus diperlakukan sebagai pedoman daripada batas waktu yang tetap. Implementasi Agile yang akurat mendorong tim untuk terus memantau dan memperbarui perkiraan mereka saat informasi baru tersedia. Dengan secara teratur meninjau dan menyesuaikan perkiraan berdasarkan kemajuan aktual, tim dapat membuat prediksi yang lebih akurat tentang waktu penyelesaian proyek.

Kesimpulan

Dalam tim yang disebut agile, memahami perbedaan antara poin cerita dan jam teknik sangat penting untuk manajemen proyek yang efektif di lingkungan Agile. Poin cerita menyediakan pendekatan yang lebih fleksibel dan kolaboratif untuk memperkirakan usaha, mengingat kompleksitas, ketidakpastian, ketergantungan, dan tingkat keterampilan. Dengan menggunakan poin cerita, Anda dapat memastikan kapasitas dan kemampuan tim Anda secara akurat direpresentasikan, memungkinkan perencanaan, prioritisasi, dan pengiriman nilai yang lebih baik dalam proyek pengembangan perangkat lunak Agile. Prinsip ini berlaku untuk Scrum dan teknik estimasi Agile lainnya, menekankan pentingnya estimasi usaha relatif daripada perkiraan waktu tetap.

Menggunakan tingkat konversi tetap 1 poin cerita sama dengan 1 jam teknik dapat memperkenalkan ketidakpastian yang tidak perlu ke dalam proyek, terutama mengingat tingkat keterampilan dan pengalaman anggota tim. Dengan menggunakan poin cerita, tim dapat memperhitungkan perbedaan individu dan menyesuaikan perkiraan secara tepat. Pendekatan ini memastikan estimasi usaha yang lebih akurat dan membantu mengelola harapan dan jadwal proyek.

Untuk benar-benar memeluk metodologi Agile, sangat penting untuk memiliki pemahaman mendalam tentang Manifesto dan prinsip-prinsip Agile. Agile bukan hanya tentang menggunakan jargon atau mengikuti serangkaian praktik; ini adalah pola pikir dan cara bekerja yang menghargai individu dan interaksi, perangkat lunak yang berfungsi, kolaborasi pelanggan, dan merespons perubahan. Dengan memahami dan menerapkan prinsip-prinsip Agile dengan benar, tim dapat menciptakan budaya transparansi, kolaborasi, dan pembelajaran yang terus-menerus, mengarah pada proyek yang lebih sukses dan hasil yang lebih baik, termasuk memeluk proses estimasi Agile yang tepat dengan mengalokasikan poin cerita.

Jadi, lain kali pelatih agile yang dikatakan jargon mengatakan bahwa 1 poin cerita sama dengan 1 jam teknik, Anda dapat mengatakan tidak dan menjelaskan alasannya kepada mereka.

Last updated on