Mengapa Sebagian Besar Perangkat Lunak Dibangun Terbalik

Sebagian besar perangkat lunak dibangun secara terbalik.

Hal ini terjadi karena orang-orang memberikan apresiasi pada hal yang salah.

Fitur mendapatkan perhatian. Arsitektur tidak. Pengumuman mendapatkan perhatian. Dokumentasi tidak. Kemampuan baru mendapatkan perhatian. Pemeliharaan tidak.

Tim memulai dengan bagian-bagian yang terlihat. Mereka mengabaikan fondasinya.

Pertanyaan umum tentang perangkat lunak berfokus pada tahap yang salah:

  • Fitur apa yang harus kita bangun?
  • Seperti apa tampilan dasbornya?
  • Integrasi apa yang harus kita dukung?
  • Apa yang bisa kita umumkan selanjutnya?

Pertanyaan-pertanyaan ini muncul terlalu dini. Anda harus memahami sistem sebelum membangun fitur.

Bayangkan membangun sebuah rumah. Anda tidak memulainya dengan warna cat. Anda memulainya dengan:

  • Fondasi
  • Struktur
  • Sistem pipa
  • Sistem kelistrikan

Detail yang terlihat bergantung pada sistem yang tidak terlihat. Perangkat lunak bekerja dengan cara yang sama.

Antarmuka pengguna terlihat. Arsitekturnya tidak. Fitur-fiturnya terlihat. Sistem yang mendukungnya tidak.

Sistem menentukan apakah perangkat lunak tersebut berhasil.

Fitur menyelesaikan masalah individual. Sistem menyelesaikan kategori masalah. Fitur menciptakan fungsionalitas. Sistem menciptakan konsistensi.

Fokus pada fitur dan kompleksitas akan bertambah. Fokus pada sistem dan kompleksitas akan terorganisir.

Dokumentasi mengungkap kebenaran. Sistem yang dirancang dengan baik memiliki dokumentasi yang jelas. Sistem yang dirancang dengan buruk membutuhkan penjelasan yang panjang dan rumit. Jika sebuah alur kerja membutuhkan berlembar-lembar instruksi, kemungkinan besar alur kerja itulah masalahnya.

Pengguna tidak merasakan fitur secara individual. Mereka merasakan sistem.

Pengguna tidak melihat:

  • Autentikasi
  • API
  • Kueri basis data
  • Pipeline deployment

Pengguna merasakan:

  • Keandalan
  • Kecepatan
  • Kesederhanaan
  • Kepercayaan

Perasaan-perasaan ini berasal dari keseluruhan sistem.

Membangun secara terbalik mudah untuk dipahami. Fitur dapat ditampilkan dalam sebuah tangkapan layar. Anda dapat mengumumkan sebuah fitur. Anda tidak dapat dengan mudah mengumumkan sebuah sistem.

Pekerjaan yang tidak terlihat menciptakan nilai yang paling besar.

Saya mengubah pendekatan saya. Saya berhenti bertanya fitur apa yang dibutuhkan sebuah proyek. Saya mulai bertanya sistem apa yang sedang saya bangun.

Sebuah sistem menciptakan batasan. Sebuah sistem menciptakan prioritas. Sebuah sistem menciptakan arah.

Fitur menjadi lebih mudah ketika fondasinya sudah ada.

Produk yang sukses tidak hanya memiliki banyak fitur. Mereka memiliki sistem yang dipikirkan dengan matang. Alur kerjanya terasa alami. Pengalamannya terasa terencana.

Berhentilah memulai dari bagian-bagian yang terlihat. Bangun sistemnya terlebih dahulu. Biarkan fitur-fitur muncul darinya.

Sumber: https://dev.to/stinklewinks/why-most-software-is-built-backwards-46i