Bagaimana saya dapat melacak bahwa saya sedang mengembangkan perangkat lunak yang lebih atau kurang produktif daripada hari-hari sebelumnya?
productivity
metrics
Tamara Wijsman
sumber
sumber
Jawaban:
Ada jawaban sederhana: Anda tidak bisa. Dan terlebih lagi, Anda seharusnya tidak.
Anda ingin mengukur produktivitas Anda sendiri, tetapi Anda dapat menggeneralisasi: bagaimana Anda bisa mengukur produktivitas pemrogram? Pertama-tama Anda harus mendefinisikan apa yang Anda maksud untuk "produktivitas": jumlah kode yang dihasilkan? Jumlah desain (atau spesifikasi) yang diterapkan? Jumlah masalah sudah diperbaiki? Kualitas kode yang dihasilkan? (Ya, kualitas adalah penghitung produktivitas, Anda dapat menghasilkan banyak kode buruk atau beberapa kode bagus, apa yang lebih produktif?). Semua nilai ini hampir tidak dapat dipetakan ke basis harian, dan segala upaya untuk melacak produktivitas harian berbahaya bagi proyek, bagi perusahaan, dan bagi programmer.
Saran saya adalah dengan jelas mendefinisikan apa yang Anda maksud sebagai "produktivitas", kemudian mendefinisikan satuan ukuran, dan menerapkannya pada basis mingguan dan bulanan.
sumber
Saya akan mengatakan cara terbaik untuk mengukur produktivitas Anda adalah dengan menetapkan tujuan setiap hari untuk apa yang ingin Anda lakukan hari itu, dan jika Anda menyelesaikannya, anggap itu produktif. Ini ukuran yang cukup subyektif, tetapi kemungkinan besar Anda akan menganggapnya lebih bermanfaat daripada yang objektif.
sumber
Kedua saran di bawah ini dapat secara kasar diadopsi untuk kebutuhan Anda, tetapi dalam kedua kasus Anda perlu melakukan perkiraan sebelumnya dan kemudian menganalisisnya ad hoc (dan jujur, saya tidak yakin apakah ada cara efektif lain bagaimana mengukur ini, saya setuju dengan TheLQ bahwa baris kode per periode waktu tidak dapat digunakan sama sekali).
Metodologi pengembangan Agile
Meskipun saya tidak yakin seberapa efektif itu dapat diterapkan pada skenario pengembang tunggal, beberapa prinsip yang digunakan dalam Agile terbukti bermanfaat dalam apa yang ingin Anda capai. Agile bekerja dalam siklus di mana pengembang bertujuan untuk mengimplementasikan cerita (tugas) yang diberi skor (dalam poin) berdasarkan kompleksitas implementasi pada awal siklus pengembangan, dan kemudian dianalisis pada akhir setiap siklus. Hal ini memungkinkan untuk menentukan kecepatan, yaitu jumlah poin yang dapat diselesaikan oleh pengembang atau tim dalam satu siklus pengembangan.
Jika cara Anda bekerja memungkinkan Anda untuk mengadopsi beberapa prinsip dan mengatur pekerjaan Anda dalam siklus, Anda dapat menggunakan kecepatan per metrik siklus pengembangan untuk melacak efisiensi Anda. Perhatikan bahwa siklus biasanya berlangsung 2-3 minggu, namun Anda harus dapat mempersingkatnya saat menggunakan ini untuk diri sendiri. Semuanya bermuara jika Anda dapat mengadopsi metodologi seperti itu di lingkungan Anda.
Penjadwalan Berbasis Bukti
Meskipun ini terutama dimaksudkan untuk meningkatkan perkiraan, Anda harus dapat menggunakannya secara efektif untuk melacak tren penurunan produktivitas.
sumber
Setuju dengan Lorenzo, tentukan produktivitasnya.
Saya juga melakukan ini: 1. Hancurkan semua tugas (level tinggi atau level rendah mogok). 2. Perkirakan jam kerja untuk setiap tugas (jangan lupa untuk mengatur buffer delay untuk setiap tugas). 3. Selesaikan tugas. 4. Tinjau kembali setiap tugas dan lihat apakah Anda cukup produktif atau tidak.
sumber
Berikut adalah ukuran produktivitas yang bermakna dan akurat yang melibatkan pengambilan beberapa snapshot penjadwalan berbasis Bukti :
Setelah Anda mengumpulkan statistik beberapa hari, jalankan simulasi Monte Carlo Anda, dan amati grafiknya, yang akan terlihat seperti ini:
Kemudian lakukan pekerjaan satu hari lagi, dan jalankan simulasi lagi. Jika Anda produktif hari itu, grafik harus berubah seperti ini:
Yang paling penting, jika Anda produk pada hari itu, probabilitas tanggal pengiriman pada tanggal tertentu akan meningkat sejak saat Anda terakhir menjalankan simulasi sebelum hari kerja. Jika berkurang, maka Anda kurang produktif pada hari itu.
Tentu saja, keakuratan EBS meningkat seiring waktu dan pengalaman, sehingga dapat menjadi alasan lain untuk perubahan nilai probabilitas tanggal kapal. Itu sebabnya Anda ingin mulai melakukan ini setidaknya setelah beberapa hari kerja sampel. Meskipun tanpa itu, jika Anda secara signifikan lebih produktif pada satu hari atau yang lain, kemungkinannya akan meningkat secara nyata.
sumber
Menghitung garis kode adalah pengukuran yang tidak sempurna karena tidak memberikan wawasan tentang kualitas kode tetapi dapat digunakan untuk menentukan produktivitas umum. Bergantung pada bahasa apa yang Anda gunakan ada alat yang berbeda yang akan menghitung baris kode untuk Anda, tetapi saya telah meminta agar BitBucket, sebuah Repositori Git, menambahkan statistik terkait produktivitas.
https://bitbucket.org/site/master/issue/4307/feature-request-contributor-statistics
sumber
Ukur waktu yang diperlukan dari Anda duduk di depan komputer di pagi hari hingga Anda melakukan aktivitas yang tidak berhubungan dengan pekerjaan, seperti 9gag, facebook, reddit, dll. Produktivitas Anda pada hari itu sebanding dengan angka itu.
sumber
Asumsikan sejenak bahwa menjadi produktif adalah mengatur waktu Anda sedemikian rupa sehingga Anda menggunakan seluruh waktu kerja Anda untuk bekerja menuju penyelesaian tugas-tugas Anda, dan bahwa segala sesuatu yang berkontribusi pada waktu yang terbuang - Yaitu: waktu yang dihabiskan tidak menyelesaikan tugas Anda - tidak produktif.
Satu-satunya hal yang benar-benar dapat Anda lakukan adalah mencatat waktu Anda ketika terlibat dalam berbagai kegiatan sepanjang hari. Time boxing adalah teknik yang digunakan untuk berbagai keperluan, tetapi akan sesuai dengan upaya ini untuk mencatat aktivitas Anda selama sehari. Luangkan waktu selama 15 menit hanya dengan melakukan beberapa tugas. Jika tugas itu adalah sesuatu yang seharusnya Anda kerjakan, waktu Anda produktif. Jika Anda menemukan diri Anda mengedit blog Anda, membaca koran berita, atau melamun tentang gadis yang baik itu di bidang akuntansi, maka waktu Anda mungkin tidak produktif. Tambahkan menit Anda di akhir hari dan Anda akan merasakan betapa produktifnya Anda ...
Tapi ada tangkapan! Apa yang Anda lakukan tentang menit-menit lainnya ... Anda tahu, mengambil istirahat 5 menit, pergi makan siang, meminta atasan Anda mengganggu Anda untuk memberi tahu Anda tentang ikan besar yang tidak ia tangkap dalam perjalanan memancing terakhirnya? Catat semua itu juga. Waktu yang dihabiskan untuk istirahat tidak sia-sia jika berkontribusi pada kesehatan mental dan kesejahteraan Anda ... selama Anda tidak mengambil istirahat 5 menit setiap 10-15 menit !! Adapun sisanya, gangguan, berurusan dengan masalah terkait pekerjaan lainnya .. semua ini dapat dilacak.
Anda tentu saja dapat menemukan diri Anda terobsesi dengan hal-hal semacam ini, dan tuhan membantu Anda jika bos adalah salah satu dari orang-orang yang melihat Anda bertinju waktu dan menggunakannya untuk membenarkan alasan untuk menumpuk lebih banyak pekerjaan, atau mengkritik upaya Anda. Soalnya, masalah dengan obsesi pada jam-jam produktif adalah Anda bisa bekerja sepanjang hari, dan akhirnya tidak mendapatkan relevansi yang sebenarnya dilakukan. Beberapa hari Anda dapat menulis kode seperti mentega yang meleleh keluar dari otak Anda, dan ke sandwich yang Anda sebut layar Anda ... sementara hari-hari lain Anda dapat memiliki blok mental yang serius ketika Anda mencoba 357 cara berbeda untuk melakukan hal yang sama hal, hanya untuk menontonnya gagal. Banyak yang akan mengatakan "kegagalan" terus-menerus bisa tidak produktif, dan itu sendiri tidak akan terbantu, tidak peduli berapa banyak Anda mengatur waktu dan mencatat jam Anda di siang hari.
Cara lain untuk melihatnya adalah dengan menetapkan sendiri sejumlah tujuan, untuk diselesaikan selama sehari dan seminggu, dan kemudian bekerja untuk menyelesaikannya. Jika Anda benar-benar mencapai tujuan Anda, Anda dapat berargumen bahwa Anda sudah produktif, dan jika Anda tidak mencapai tujuan Anda, Anda mungkin perlu memahami mengapa Anda tidak mencapainya, dan memutuskan apakah Anda produktif atau tidak. berdasarkan alasan aktual untuk kehilangan tujuan Anda. Pada akhirnya, jika Anda memberikan kode kerja saat dibutuhkan, dan jika Anda bisa menyelesaikan tes Anda, dan tugas selesai, maka Anda sudah produktif. Pengukuran hanya akan bernilai jika ada alasan yang sah untuk menganalisisnya nanti secara statistik.
sumber