Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya?

Beberapa waktu yang lalu, terjadi percakapan antara saya dan seorang teman baik saya yang terdengar kalimat berikut:

β€” Jumlah pemrogram akan terus bertambah - karena jumlah kode bertambah, dan semakin banyak pengembang yang terus-menerus dibutuhkan untuk mendukungnya.
β€” Namun kodenya semakin tua, beberapa di antaranya tidak lagi didukung. Bahkan mungkin saja ada semacam keseimbangan.

Mengingatnya beberapa hari kemudian, saya bertanya-tanya apakah memelihara kode, yang membutuhkan lebih banyak sumber daya dari waktu ke waktu, pada akhirnya dapat melumpuhkan pengembangan fungsi baru, atau akankah memerlukan peningkatan jumlah pemrogram yang tidak terbatas? Analisis matematis dan persamaan diferensial membantu menilai secara kualitatif ketergantungan jumlah dukungan terhadap pembangunan dan menemukan jawaban atas pertanyaan.

Pertanyaan pertama. Dapatkah dukungan β€œmemakan” semua sumber daya pembangunan?

Misalkan sebuah tim pemrogram yang jumlah pesertanya konstan. Pembagian waktu kerja mereka Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya? (Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya?) dihabiskan untuk mengembangkan kode baru, dan sisa waktunya Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya? pergi untuk mendukung. Dalam asumsi model, kami berasumsi bahwa jenis aktivitas pertama ditujukan untuk meningkatkan volume kode, dan aktivitas kedua ditujukan untuk mengubahnya (mengoreksi kesalahan) dan tidak berdampak signifikan terhadap volume kode.

Mari kita tunjukkan Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya? seluruh jumlah kode yang ditulis hingga saat itu Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya?. Dengan asumsi kecepatan penulisan kode proporsional Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya?, kita mendapatkan:

Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya?

Wajar untuk berasumsi bahwa biaya tenaga kerja untuk memelihara kode tersebut sebanding dengan volumenya:

Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya?

ΠΈΠ»ΠΈ

Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya?

Mana

Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya?

Kami memperoleh persamaan diferensial yang dapat dengan mudah diintegrasikan. Jika pada saat awal jumlah kodenya nol, maka

Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya?

Di Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya? fungsi Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya?Dan Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya?. Dan ini berarti pengurangan bertahap dari waktu ke waktu dalam pengembangan fungsi baru menjadi nol dan pengalihan semua sumber daya ke dukungan.

Namun, jika selama ini Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya? kode menjadi usang dan tidak lagi didukung, maka jumlah kode yang memerlukan dukungan pada suatu waktu Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya? sudah setara Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya? Lalu

Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya?

Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya?

Π° Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya? adalah solusi persamaan diferensial dengan argumen terbelakang [1]:

Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya?

Solusi persamaan tersebut ditentukan secara unik dengan menentukan nilainya Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya? "sebelum permulaan waktu" Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya?. Karena kode belum ditulis sebelum momen awal, dalam kasus kami Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya? di Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya?.

Mari kita lihat beberapa contoh. Kami akan mengukur waktu dalam beberapa tahun, dan jumlah kode dalam ribuan baris. Lalu untuk Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya? nilai orde puluhan dapat diterima, kita ambil 50 dan 100. Artinya, dalam setahun tim pengembangan akan menulis masing-masing lima puluh dan seratus ribu baris kode. Untuk Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya? nilai yang dapat diterima mungkin: Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya?, Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya?, Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya?. Artinya, tim pengembangan dapat mendukung jumlah kode yang ditulisnya dalam satu tahun, baik seperempat, setengah, atau penuh waktu. Sebagai rata-rata umur kode, kami akan menetapkan nilai berikut: 1, 2, dan 4 tahun. Memecahkan persamaan secara numerik, kita memperoleh contoh perilaku fungsi Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya? untuk beberapa kombinasi parameter Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya?.
Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya?
Perilaku fungsi Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya? seiring bertambahnya usia kode, kode itu telah berubah. Fungsinya tidak lagi monoton, namun fluktuasinya β€œmenenang” seiring berjalannya waktu, dan ada kecenderungannya Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya? ke beberapa nilai konstan. Grafik menunjukkan: semakin banyak Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya?, Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya? ΠΈ Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya?Artinya, semakin lambat umur kode, semakin cepat pengembangan kode baru dan semakin rendah kualitas kode, semakin sedikit sumber daya yang tersisa untuk pengembangan fungsi baru. Ada keinginan untuk memberikan setidaknya satu contoh Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya? "meringkuk" mendekati nol. Namun hal ini memerlukan pemilihan indikator dan kode kualitas pembangunan yang sangat buruk dan tidak bertahan lama. Bahkan di grafik kiri bawah, masih ada sejumlah besar sumber daya yang tersisa untuk fungsi baru. Oleh karena itu, jawaban yang benar untuk pertanyaan pertama adalah sebagai berikut: secara teoritis - ya, itu mungkin; praktis - hampir tidak.

Pertanyaan yang tidak dapat dijawab:

  1. Benarkah itu Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya? cenderung pada batas tertentu Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya? untuk semua Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya?? Jika tidak untuk semua orang, lalu untuk yang mana?
  2. Jika suatu batas ada, bergantung pada bagaimana nilainya Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya??

Pertanyaan kedua. Bisakah pemeliharaan kode menyebabkan pertumbuhan jumlah pemrogram yang tidak terbatas?

Mari kita tunjukkan Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya? jumlah pemrogram yang terlibat dalam pengembangan kode baru. Seperti di atas, Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya? β€” jumlah kode yang ditulis hingga suatu titik waktu Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya?. Lalu

Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya?

Jaga agar dukungan kode tetap sibuk Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya? pemrogram. Dengan mempertimbangkan kode penuaan,

Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya?

Mana

Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya?

Jika Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya?, Kemudian

Berapa banyak programmer yang diperlukan untuk memelihara kode yang ditulis sebelumnya?

Jadi, jawaban atas pertanyaan kedua adalah negatif: jika jumlah pengembang kode baru terbatas, maka dalam kondisi kode yang menua, dukungan tidak dapat menyebabkan peningkatan jumlah pemrogram yang tidak terbatas.

Kesimpulan

Model yang dipertimbangkan adalah model matematika β€œlunak” [2]. Itu sangat sederhana. Namun demikian, ketergantungan hasil simulasi pada nilai parameter sesuai dengan apa yang diharapkan untuk sistem nyata, hal ini mendukung kecukupan model dan akurasi yang cukup untuk memperoleh estimasi berkualitas tinggi.

Referensi

1. Elsgolts L.E., Norkin S.B. Pengantar teori persamaan diferensial dengan argumen menyimpang. Moskow. Penerbitan rumah "Ilmu". 1971.
2. Arnold V.I. Model matematika β€œkeras” dan β€œlunak”. Moskow. Penerbitan MCNMO. 2004.

Sumber: www.habr.com

Tambah komentar