Back to IF3250 Proyek Perangkat Lunak

Principles and Coordination in Large-Scale Development

Questions/Cues

  • Apa prinsip-prinsip dasar pengembangan large-scale software?
  • Mengapa “process” dan “automation” ditekankan?
  • Apa akar penyebab kesulitan koordinasi pada tim besar?
  • Apa tiga faktor utama koordinasi kerja?
  • Apa yang dimaksud Very Large-Scale Software Engineering (VLSSE)?

Reference Points

  • Large Scale Software Development (Halaman 6-7)
  • Large Scale Software Development (Halaman 16-17)

Prinsip Pengembangan Large-Scale Software

Lima prinsip operasional yang menjadi fondasi:

  1. Reproducibility — proses dan hasil build harus dapat direproduksi secara konsisten.
  2. Policy Enforcement versus Policy Auditing — perlu keseimbangan antara menegakkan kebijakan secara otomatis dan mengaudit kepatuhan kebijakan.
  3. Process, Process, Process“A process must be defined to be improved.” Sebuah proses harus terdefinisi dulu agar bisa diperbaiki.
  4. Automation“A process must be automated to be repeatable.” Proses harus diotomasi agar dapat diulang secara andal.
  5. Continuous Functional Integration and Test — integrasi dan pengujian fungsional berkelanjutan.

Rantai logikanya: define → improve, lalu automate → repeatable. Tanpa proses yang terdefinisi, tidak ada yang bisa diperbaiki; tanpa otomasi, proses tidak dapat diulang dengan andal pada skala besar.

Akar Masalah: Koordinasi Kerja

“The root cause is work coordination between team developers.”

Kesulitan utama large-scale development adalah koordinasi kerja antar developer, baik intra-team (dalam satu tim) maupun inter-team (antar tim). Inilah yang membuat sistem besar sulit, bukan kerumitan algoritma per-modul.

Tiga Faktor Utama Koordinasi (3C)

  • Communication — kemampuan bertukar informasi yang relevan secara tepat waktu antar individu dan antar tim.
  • Capacity — kapasitas sumber daya (orang, waktu, infrastruktur) untuk menyerap pekerjaan.
  • Cooperation — kemauan dan mekanisme untuk saling bekerja sama menuju tujuan bersama.
flowchart TD
    RC["Akar Masalah:<br/>Koordinasi kerja antar developer"]
    RC --> Intra["Intra-team coordination"]
    RC --> Inter["Inter-team coordination"]
    subgraph Faktor["Major Factors (3C)"]
        Comm["Communication"]
        Cap["Capacity"]
        Coop["Cooperation"]
    end
    Intra --> Faktor
    Inter --> Faktor

Very Large-Scale Software Engineering (VLSSE)

VLSSE menyoroti elemen-elemen rekayasa pada skala sangat besar (dikaitkan dengan riset Walt Scacchi tentang Open Source & Very Large-Scale Software Engineering):

  • Architectural specification — sistem, services (data, protocols, processes), serta struktur tim/organisasi.
  • Configuration management and version control.
  • Process automation — builds, regression tests, dll.
  • Reliance on informalisms untuk pengembangan (banyak pengetahuan tersimpan informal, bukan dokumen formal).

VLSSE — The Process menambahkan dimensi:

  • Configuration management and version control
  • Architectural specification and maintenance
  • Collaboration, leadership, control, and conflict management
  • Community development and support
  • Software source code and artifact data mining

Summary

Pengembangan skala besar berdiri di atas lima prinsip: reproducibility, policy enforcement vs auditing, process, automation, dan continuous integration & test — dengan rantai kunci define→improve dan automate→repeatable. Akar kesulitannya adalah koordinasi kerja antar developer (intra- & inter-team), yang bertumpu pada tiga faktor: Communication, Capacity, Cooperation (3C). Pada skala sangat besar, VLSSE menekankan spesifikasi arsitektur, configuration management, otomasi proses, serta pengandalan informalisms, kolaborasi, dan data mining artefak perangkat lunak.