Site icon Freddy Munandar Personal Website

Apa Hubungannya Business Analyst Dengan Clean Architecture?

Beberapa waktu lalu saya membaca buku Business Analyst Body of Knowledge disingkat BABOK versi 3.0. Cukup terkesima dengan isi bukunya yang terstruktur dan masuk akal untuk dipraktikan. Sekalipun memang tidak mudah untuk mempraktikannya.

Saya tidak ingin berbicara kondisi ideal atau tidak ideal, terkadang ini hanya dijadikan alasan saja untuk tidak mau mencoba agar lebih baik. Perubahan perlu pengorbanan apalagi jika ingin memperbaiki atau meningkatkan kualitas. Memang sering kali banyak yang tidak sepaham, karena ujung-ujungnya beda kepentingan. Mari kembalikan ke individu masing-masing.

Ok sekarang mari kita lihat peran Business Analyst menurut BABOK.

Business Analyst berperan dalam menyelaraskan solusi yang sudah didesain dan dibuat oleh tim pengembang dengan kebutuhan atau keingingan pemangku kepentingan (stakeholder). Beberapa aktifitas yang dilakukan oleh Business Analyst adalah sebagai berikut:

Peran Business Analyst dalam suatu lowongan pekerjaan biasanya juga ditulis dengan nama-nama berikut:

Seorang Business Analyst harus memahami bagaimana siklus hidup dari suatu daftar kebutuhan. Agar dapat menghasilkan daftar kebutuhan yang tepat dan terkini. Sehingga dapat meningkatkan kinerja tim pengembang secara efektif dan efisien. Berikut adalah bagan dari siklus manajemen kebutuhan.

Requirements Life Cycle Management

Ada beberapa tugas di dalam siklus tersebut, diantaranya adalah sebagai berikut:

Di artikel kali ini saya akan fokuskan ke Maintain Requirements.

Menjaga agar requirements selalu sesuai adalah pekerjaan yang tidak mudah. Ini salah satu peran utama Business Analyst. Tujuan dari menjaga requirements adalah untuk mempertahankan akurasi dan konsistensi serta validasi requirements di dalam siklus requirements dan juga untuk mendukung penggunaan kembali (reuse) requirements dalam solusi lain.

Ada beberapa teknik yang dapat digunakan untuk menjaga requirements, diantaranya adalah sebagai berikut:

Teman-teman, perhatikan kata “penggunaan kembali / digunakan kembali / menggunakan kembali” pada tulisan diatas yang ditebalkan. Perhatikan baik-baik, seorang Business Analyst secara tidak langsung dapat meng-identifikasi komponen / fitur / modul yang dapat direuse / digunakan kembali dalam suatu solusi untuk proyek / divisi / aplikasi / modul lainnya. Tentunya ini akan sangat memudahkan programmer dalam menyusun struktur kode ke dalam folder-folder, file-file, dan class-class.

Pekerjaan Software engineer atau programmer akan lebih indah 🙂 tinggal bagaimana menghadapi masalah teknikal. Dan dapat mengurangi perdebatan tentang “ini kode nya mau di taruh di mana ya? nama kelasnya apa? nama variabelnya apa?” dan lain sebagainya. Karena penyusunan struktur kode cenderung akan mengikuti bentuk organisasi sesuai dengan Conway’s Law yang mana ini bisa teridentifikasi secara sengaja ataupun tidak sengaja oleh seorang Business Analyst.

Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization’s communication structure.

— Melvin E. Conway

Di dalam buku BABOK ada 50 teknik yang bisa digunakan oleh seorang Business Analyst untuk mencapai tujuannya serta memaksimalkan peranannya sebagai Business Analyst. Seorang individu yang baik tentunya ingin memberikan kontribusi yang terbaik bagi organisasinya termasuk bagi dirinya sendiri dan rekan kerjanya.

Pentingnya Peran Business Analyst

Jika teman-teman perhatikan dengan seksama, bahwa dengan adanya seorang Business Analyst yang handal maka Project Manager, Software Engineer, dan Programmer akan sangat terbantu sekali, dan bisa lebih fokus kepada peran masing-masing. Alasanya adalah:

Lalu apa hubungannya peran Business Analyst dengan Clean Architecture?

Jika dalam tim kita memiliki Business Analyst yang handal tersebut. Maka sebagai seorang Software Engineer atau Software Architect dapat lebih natural untuk membuat arsitektur. Yang dimaksud dengan lebih natural adalah, sejalan dengan Conway’s Law dan bersinergi dengan istilah-istilah bisnis. Sehingga dekomposisi sistem tidak over engineering. Bahkan istilah bisnis digunakan untuk nama folder, nama namespace, nama class, nama method, nama fungsi dan nama variable. Sehingga ketika harus menelusuri kode, kita bisa melihat keterkaitan diagram proses yang sudah dibuat oleh Business Analyst dengan lebih mudah. Hal tersebut akan mengurangi banyak sekali gesekan / friction. Kalau di dalam konsep DDD (Domain-Driven Design) istilahnya adalah ubiquitous language, keseragaman bahasa atau istilah, yang dibawa sampai ke low-level atau koding.

Clean Architecture dipopulerkan oleh Robert C. Martin

Disini saya tidak akan membahas teknis dari Clean Architecture, teman-teman bisa membacanya di buku Clean Architecture atau melalui blog Uncle Bob. Saya akan menjelaskan teori yang saya miliki yaitu hubungan peran Business Analyst dan Clean Architecture.

Sebelumnya saya sudah bahas tentang peran Business Analyst dan juga sudah menuliskan alasan-alasanya tentang pentingnya peran Business Analyst. Dari alasan-alasan tersebut saya akan coba hubungkan dengan konsep Clean Architecture.

Use case adalah salah satu inti dari konsep Clean Architecture. Pengembangan perangkat lunak bisa dimulai dari Use case. Dengan berbekal dokumentasi dari Business Analyst, tanpa ragu kita bisa langsung membuat class dengan nama yang tertera pada dokumentasi use case. Misalnya dalam dokumentasi terdapat Use Case diagram sebagai berikut:

[inprogress]

Lalu kita membuat class dengan nama file AddToCart.js yang disimpan didalam folder UseCases.

Stuktur Dasar Clean Architecture
Satu Use Case = Satu Class

Kemudian di dalam dokumentasi pun sudah tersedia Data Modeling menggunakan ERD:

[inprogress]

Lalu kita membuat class entity dengan nama sesuai dengan nama tabelnya dan attribute di dalam ERD menjadi property pada class.

[inprogress]

Dalam melengkapi fungsionalitas kode disarankan menggunakan Test-Driven Development untuk memastikan bahwa class yang dibuat sesuai dengan requirements, mudah di test, dan tidak over engineering.

Pengelompokan Use case sebetulnya sudah teridentifikasi oleh Business Analyst. … dimana pengelompokan ini biasanya dilakukan oleh Software Architect untuk memastikan Software Architecture align dengan requirements….

To be continue… 🙂

Photo by Mathew Schwartz on Unsplash