Berapa banyak kode yang harus saya pertanggungjawabkan?


13

Melalui kolega dan keluar dari wawancara, saya telah mendengar bahwa di perusahaan kecil saya, saya "bertanggung jawab" untuk kode 3-10 kali lebih banyak daripada di pekerjaan lain. Saya mencoba mencari semacam metrik fuzzy yang dapat saya gunakan untuk membandingkan beban kerja saya dengan yang lain di bidang saya.

Dengan "tanggung jawab kode", saya tidak bermaksud "Saya satu-satunya yang tahu area X dari basis kode" (walaupun sayangnya, sering kali benar dalam lingkungan startup), tetapi merujuk pada nomor seperti "code_base_size / number_of_developers ".

Apakah ada sumber daya yang dapat saya gunakan untuk membantu saya mengukur beban pekerjaan dengan lebih akurat daripada hanya menghitung baris kode?


8
Baris kode belum tentu merupakan pengukuran kompleksitas atau beban kerja yang akurat.

3
Oleh karena itu kalimat terakhir saya :)
Michael

2
@ ThorbjørnRavnAndersen: "Akurat"? Saya pikir Anda mungkin bermaksud sesuatu yang lain. Ini tentang satu-satunya ukuran yang benar-benar akurat (dan tepat). Barry Boehm (Ekonomi Rekayasa Perangkat Lunak) menunjukkan bahwa itu adalah satu-satunya ukuran yang masuk akal. Itu membuatnya tidak berguna untuk memperkirakan proyek. Tetapi sebagai ukuran retrospektif yang memprediksi upaya dan durasi, itu jauh lebih baik daripada yang lain.
S.Lott

Jawaban:


12

Satu-satunya ukuran nyata bagi pengembang yang dipekerjakan adalah jumlah jam yang dihabiskan untuk pengkodean dan perbaikan bug, dan uang yang Anda terima untuk itu. Jika Anda menginap larut malam 6 hari seminggu untuk 50K US $ setahun, maka Anda memiliki masalah. Tidak peduli berapa banyak baris kode yang diinginkan oleh atasan Anda, Anda tidak akan menangani lebih dari yang dapat Anda lakukan, tentu saja dengan mempertimbangkan kualitas kode tertentu. Mengembangkan kode berkualitas buruk tanpa uji unit adalah cara yang baik untuk menangani lebih banyak kode, tetapi perusahaan harus membayar harga hutang teknis yang besar .

Di perusahaan kecil pengembang cenderung bertanggung jawab untuk kode lebih banyak daripada di perusahaan besar . Faktor 3 hingga 10 yang Anda maksudkan tampak realistis bagi saya.


6

Saya sudah tahu tim tiga orang yang mengelola basis kode 1,5 juta baris dan tidak tenggelam di dalamnya. Pengukuran yang penting bukanlah seberapa banyak kode yang menjadi tanggung jawab Anda, melainkan seberapa banyak kode yang perlu Anda ubah dalam waktu tertentu.

Ada juga sudut penilaian risiko. Jika Anda adalah satu-satunya orang yang tahu sepotong kode, berapa biaya peluang yang akan hilang jika Anda berjalan di bawah bus? Perusahaan kecil biasanya tidak melakukan penilaian risiko seperti itu, tetapi ini berarti bahwa kesuksesan bisnis yang berkelanjutan dibiarkan begitu saja.


3

kode ukuran dasar / jumlah pengembang tidak terkait dengan beban kerja. Jika Anda memiliki basis kode stabil besar, metrik akan tinggi. Jika Anda memiliki basis kode kecil yang masih dalam pengembangan, metrik itu akan rendah. perubahan baris per unit waktu per pengembang lebih terkait dengan beban kerja. Tetapi bahkan kemudian, saya telah menghabiskan waktu berhari-hari untuk melacak bug halus yang perbaikannya hanya satu baris ...


2

Kode harus menjadi tanggung jawab grup, bukan dari satu pengembang. Dukungan harus didelegasikan secara adil setiap minggu, tampaknya bodoh untuk mengalokasikannya dengan cara lain. Jika bukan itu masalahnya, saya sarankan Anda berbicara dengan manajemen Anda.

Dalam situasi yang menggambarkan seorang pengembang Anda mungkin berjuang untuk memenuhi tenggat waktu karena sejumlah besar dukungan dari satu bidang di mana pengembang lain sedang dikerjakan. Struktur manajemennya sangat tidak efisien.

Saya juga menyarankan Anda menjauh dari mengukur beban kerja dalam baris kode. Jam kerja adalah satu-satunya metrik yang masuk akal yang dapat saya pikirkan

Mengukur progres pemrograman dengan baris kode seperti mengukur progres pembangunan pesawat terbang - Bill Gates

NB. Saya tidak mengatakan sama saya katakan adil. Perlu dicatat bahwa tidak masalah untuk mengkhususkan pada aspek-aspek tertentu dari basis kode, yang terjadi secara alami. Ini hanya masalah jika tidak ada orang lain yang bekerja pada kode itu.


Seharusnya saya lebih jelas - saya mencoba menemukan cara untuk mengukur beban kerja saya dengan MENGHINDARI mengatakan "kode ini adalah tanggung jawab saya - dan saya sendiri yang memeliharanya." Misalnya, jika Facebook memiliki 2 programmer, mereka jelas akan bekerja terlalu keras - tetapi BAGAIMANA Anda akan mencapai kesimpulan itu? Itulah jenis pertanyaan yang saya tuju.
Michael

2

Misalnya, jika Facebook memiliki 2 programmer, mereka jelas akan bekerja terlalu keras - tetapi BAGAIMANA Anda akan mencapai kesimpulan itu? Itulah jenis pertanyaan yang saya tuju.

Ini bukan pertanyaan pemrograman, ini pertanyaan manajemen.
Ada beberapa pertanyaan mudah untuk menjawab ini dan tidak ada hubungannya dengan perangkat lunak.

  1. Berapa jam Anda bekerja?
  2. Berapa jam Anda harus bekerja?
  3. Apakah tenggat waktu dipenuhi?

Kemudian ikuti logika ini:

  • Jika 1> 2, Anda membutuhkan lebih banyak orang atau tenggat waktu yang kurang agresif.
  • Jika 1 <2, Anda membutuhkan lebih sedikit orang atau lebih banyak inisiatif.
  • Jika tenggat waktu tidak dipenuhi dan 1> = 2, Anda membutuhkan lebih banyak orang.
  • Jika tenggat waktu tidak terpenuhi dan 1 <2, Anda harus memecat seseorang.

Ini adalah penyederhanaan berlebihan yang memiliki dua kelemahan mencolok.

  • Orang tidak diciptakan sama.
  • Ada cara untuk membuat orang lebih banyak berproduksi (memutakhirkan komputer mereka atau sesuatu).

Tetapi Anda mendapatkan idenya.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.