Tidak yakin apakah Anda akan menganggapnya elegan, tetapi Watts Humphrey menulis seluruh buku yang disebut Proses Perangkat Lunak Pribadi yang semuanya tentang mengukur produktivitas Anda sendiri. Dia menguraikan metrik untuk input seperti waktu di meja Anda vs interupsi, waktu yang dihabiskan bekerja pada berbagai jenis kegiatan siklus hidup perangkat lunak, cacat per jumlah kode. Ada laporan teknis yang memberikan versi singkatnya di:
http://www.sei.cmu.edu/library/abstracts/reports/00tr022.cfm
Jika Anda ingin melihat sesuatu seperti kualitas kode pengembang, Chidamber & Kemerer mengusulkan beberapa metrik untuk kode berorientasi objek.
Metrik untuk kode berorientasi objek
- kedalaman pohon warisan,
- sejumlah metode tertimbang,
- jumlah fungsi anggota,
- jumlah anak, dan
- kopling antar objek.
Menggunakan basis kode, mereka mencoba menghubungkan metrik-metrik ini dengan kepadatan cacat dan upaya pemeliharaan menggunakan analisis kovarian. Studi selanjutnya melakukan analisis serupa pada ratusan proyek Source Forge Java untuk menentukan karakteristik mereka relatif terhadap Metrik CK dan beberapa metrik tambahan yang diusulkan kemudian.
Metrik yang muncul dalam konteks Tinjauan Kode
Cacat dapat dikategorikan berdasarkan banyak kriteria:
- keparahan: (utama, minor, kosmetik, selidiki / tidak diketahui),
- ketik (logika, kesalahan ketik, pengejaan, penyandian pelanggaran standar, dll.),
- asal / fase kontainmen (persyaratan, desain, kode, dll).
Ada juga tingkat persiapan dan inspeksi (waktu per pengulas, waktu per baris kode) dan kepadatan cacat (per KLOC (ribuan baris kode), per menit waktu inspektur / pengulas).
Merencanakan nilai-nilai ini terhadap diagram kontrol dapat menunjukkan kepada kita apakah kita berada dalam batas untuk proses (misalnya, tim yang memeriksa 200 baris kode yang tidak menemukan cacat dalam grup yang rata-rata dua puluh lima cacat per KLOC mungkin tidak berfungsi).
Metrik lainnya
Metrik lain yang dapat membantu termasuk untuk
Keterbatasan Analisis
Ada batas luar biasa pada nilai metrik. Bug yang diperbaiki per pengembang dapat berarti hampir apa saja, dan ketika Anda mulai menghukum atau memberi penghargaan pada pengukuran itu, saya yakin bug akan semakin banyak dan terperinci, dan campuran bug yang sulit dan mudah yang diperbaiki juga akan berubah ketika tim cherry memilih di untuk berlomba untuk mendapatkan yang terbaik.
Ada juga gangguan tertentu dan berpotensi kehilangan fokus dan kenikmatan yang bisa datang dengan pengukuran yang mengganggu. Anda tidak bisa menjadi lebih elegan (dan terbebani secara emosional) daripada penyair danau seperti Wordsworth yang berkata,
Sweet is the lore which Nature brings;
Our meddling intellect
Mis-shapes the beauteous forms of things:--
We murder to dissect.
Meskipun perangkat lunak tidak persis Nature, beri saya beberapa kebebasan karena saya pikir saya tidak akan pernah bisa menggunakan apa pun dari kelas Sastra Inggris SMA.
Agile mungkin dianggap sebagai reaksi terhadap proses besar yang terpusat. Kadang-kadang cara kerja itu membutuhkan begitu banyak upaya analitis sehingga kemampuan untuk mencapai aliran sementara membuat perangkat lunak semuanya menghilang.