Conway’s Law pada Microservices

Keberhasilan Mikroservices dengan Kekuatan Conway’s Law

D. Husni Fahri Rizal
The Legend
6 min readJul 14, 2023

--

Dalam pengembangan microservices, seringkali fokus utama diberikan pada desain arsitektur yang modular, skalabel, dan adaptif. Pengembang sering kali terpaku pada memecah aplikasi monolit menjadi layanan-layanan terpisah tanpa mempertimbangkan struktur organisasi yang ada di dalamnya. Namun, seringkali terjadi kegagalan dalam implementasi microservices ketika pengembang mengabaikan peran yang dimainkan oleh struktur organisasi dalam kesuksesan proyek.

Conway’s Law, yang dikemukakan oleh Melvin Conway pada tahun 1967, adalah sebuah hukum yang mengungkapkan keterkaitan antara struktur organisasi dengan desain sistem perangkat lunak yang dihasilkan oleh organisasi tersebut. Hukum ini memberikan wawasan penting tentang bagaimana struktur tim dan komunikasi internal dapat mempengaruhi arsitektur dan pengembangan perangkat lunak. Dalam konteks microservices, penerapan Conway’s Law dapat menjadi kunci keberhasilan dalam merancang dan mengimplementasikan arsitektur microservices yang efektif dan adaptif.

Implementasi Conway’s Law dalam pengembangan microservices membawa beberapa manfaat penting. Dengan memperhatikan struktur organisasi dan komunikasi antar tim, organisasi dapat membangun layanan-layanan microservices yang terisolasi dan mandiri sesuai dengan pemisahan fungsional yang ada. Komunikasi yang baik antara tim-tim yang bertanggung jawab atas layanan mereka diperlukan untuk memastikan interoperabilitas dan integrasi yang lancar antara layanan-layanan tersebut. Melalui pemisahan fungsional yang sesuai dengan struktur organisasi, organisasi dapat mengelola batasan domain dengan jelas dan memungkinkan evolusi independen dari setiap layanan.

https://serverlessland.com/event-driven-architecture/visuals/eda-and-conways-law

Dengan memahami pentingnya memperhatikan dan mengintegrasikan struktur organisasi dalam pengembangan microservices, pengembang dapat menghindari tantangan dan mengoptimalkan potensi penuh arsitektur microservices untuk kesuksesan proyek.

Tantangan Perusahaan yang Tidak Peduli terhadap Organisasi dalam Microservices

Dalam pengembangan microservices, seringkali pengembang terlalu fokus pada aspek teknis dan desain arsitektur, tanpa mempertimbangkan struktur organisasi yang ada di dalamnya. Hal ini dapat menyebabkan beberapa tantangan yang dapat menghambat keberhasilan proyek microservices. Berikut adalah beberapa tantangan yang dihadapi oleh pengembang yang tidak peduli terhadap organisasi dalam konteks microservices:

  1. Ketidaksesuaian antara Desain Microservices dan Struktur Organisasi: Ketika pengembang mengabaikan struktur organisasi saat merancang arsitektur microservices, dapat terjadi ketidaksesuaian antara desain sistem dan tata kelola organisasi. Misalnya, jika sistem microservices dirancang untuk membagi tugas yang seharusnya menjadi tanggung jawab satu tim ke beberapa tim yang terpisah, hal ini dapat menyebabkan kesulitan dalam koordinasi dan kolaborasi antara tim-tim tersebut.
  2. Komunikasi dan Sinkronisasi yang Buruk: Ketika pengembang tidak memperhatikan pentingnya komunikasi yang efektif dan sinkronisasi antar tim, kemungkinan terjadi kegagalan dalam integrasi layanan microservices. Jika tidak ada komunikasi yang baik antara tim-tim yang bertanggung jawab atas layanan-layanan tersebut, dapat terjadi kesalahan interpretasi, kebingungan, atau konflik yang dapat menghambat pengembangan dan pengoperasian sistem microservices.
  3. Kesulitan dalam Mengelola Perubahan: Dalam lingkungan microservices, setiap layanan berfungsi secara independen dan dapat mengalami evolusi dan pembaruan secara terpisah. Namun, jika pengembang tidak mempertimbangkan struktur organisasi saat merencanakan perubahan, dapat timbul kesulitan dalam mengelola perubahan tersebut. Misalnya, jika ada perubahan yang melibatkan beberapa layanan, tetapi tim-tim yang bertanggung jawab atas layanan tersebut tidak bekerja secara terkoordinasi, bisa terjadi ketidakselarasan dan kesulitan dalam melacak dampak perubahan tersebut.
  4. Ketidakmampuan Mengoptimalkan Keahlian Tim: Dalam microservices, setiap tim bertanggung jawab atas layanan tertentu. Namun, jika pengembang tidak mempertimbangkan struktur organisasi saat menetapkan tim dan tanggung jawab, mungkin tim yang bertanggung jawab atas suatu layanan tidak memiliki keahlian yang tepat atau tidak dioptimalkan dengan baik. Hal ini dapat mengakibatkan kualitas layanan yang rendah atau kurang efisien dalam pengembangan dan operasional layanan tersebut.

Mengatasi Tantangan dengan Memperhatikan Organisasi dalam Microservices

Untuk mengatasi tantangan-tantangan yang dihadapi oleh pengembang yang tidak peduli terhadap organisasi dalam microservices, penting untuk mengadopsi pendekatan yang berfokus pada integrasi struktur organisasi dan desain sistem. Beberapa langkah yang dapat diambil adalah sebagai berikut:

  1. Komunikasi dan Keterlibatan yang Aktif: Pastikan terdapat komunikasi yang aktif dan terus-menerus antara tim-tim pengembang. Libatkan pemangku kepentingan yang relevan, seperti manajemen dan tim bisnis, dalam pengambilan keputusan dan perencanaan arsitektur microservices. Ini akan membantu memastikan keselarasan antara kebutuhan organisasi dan desain sistem.
  2. Pemetaan Struktur Organisasi ke dalam Desain Microservices: Selaras dengan Conway’s Law, pertimbangkan pemisahan fungsional dalam organisasi saat merancang layanan-layanan microservices. Pemetaan yang jelas antara tim dan layanan akan memudahkan koordinasi, kolaborasi, dan pengelolaan layanan tersebut.
  3. Pengelolaan Batasan Domain yang Efektif: Dalam microservices, pemisahan fungsional yang baik berdasarkan batasan domain yang jelas dapat membantu dalam pengembangan dan pengelolaan layanan. Pertimbangkan tanggung jawab tim dan kepemilikan layanan sesuai dengan domain bisnis yang terkait.
  4. Koordinasi Perubahan dan Evolusi: Pastikan terdapat koordinasi yang baik antara tim-tim yang bertanggung jawab atas layanan-layanan yang saling terkait saat merencanakan perubahan dan evolusi. Tetapkan praktik pengelolaan perubahan yang efektif dan memastikan sinkronisasi yang baik dalam penerapan perubahan tersebut.
  5. Pengembangan Keterampilan Tim yang Optimal: Pertimbangkan keahlian dan kekuatan masing-masing anggota tim saat menetapkan tim yang bertanggung jawab atas layanan. Optimalkan pengembangan keterampilan dan peningkatan kapabilitas tim untuk memastikan kualitas layanan yang tinggi dan efisiensi pengembangan.

Conway’s Law dan Spotify Model Framework dalam Pengembangan Microservices

Dalam pengembangan microservices menggunakan Spotify framework dengan mempertimbangkan struktur organisasi, implementasi Conway’s Law dan The Spotify Model dapat memberikan manfaat yang signifikan. Berikut adalah beberapa langkah konkrit untuk mengintegrasikan kedua konsep ini dalam pengembangan microservices dengan struktur organisasi Spotify:

  1. Pendekatan Squad dan Tribe yang Sesuai dengan Struktur Organisasi: Implementasikan model “squad” dan “tribe” dari The Spotify Model dengan mempertimbangkan struktur organisasi Spotify. Buat tim-tim yang bertanggung jawab atas layanan-layanan microservices sesuai dengan area fungsional dan keahlian yang ada dalam organisasi. Pastikan setiap tim dalam “squad” berfungsi secara mandiri dan memiliki otonomi dalam mengembangkan layanan mereka.
  2. Komunikasi dan Kolaborasi Antar Tim: Terapkan prinsip “chapter” dan “guild” dari The Spotify Model untuk memfasilitasi komunikasi yang efektif antara tim-tim yang bertanggung jawab atas layanan-layanan microservices dalam organisasi Spotify. Buatlah komunitas “guild” yang memungkinkan para pengembang berbagi pengetahuan, pengalaman, dan praktik terbaik dalam pengembangan aplikasi dengan menggunakan Spotify framework.
  3. Pengelolaan Batasan Domain yang Tepat: Terapkan konsep pemisahan fungsional yang relevan dengan struktur organisasi Spotify dalam pembentukan “squad” yang bertanggung jawab atas layanan-layanan microservices. Pastikan bahwa batasan domain yang ditetapkan sesuai dengan fitur-fitur, manajemen pengguna, atau fungsionalitas lain yang relevan dalam konteks Spotify framework.
  4. Evolusi Independen dan Pembaruan Layanan: Dalam konteks Spotify framework, biarkan setiap tim dalam “squad” memiliki otonomi penuh dalam mengelola dan memperbarui layanan mereka. Dengan memastikan implementasi Conway’s Law, memungkinkan evolusi independen dari setiap layanan tanpa mempengaruhi tim lain dalam organisasi Spotify.
  5. Praktik Agile yang Adaptif: Gunakan prinsip-prinsip Agile, seperti iterasi cepat, kolaborasi antara tim yang terlibat, dan feedback berkelanjutan, untuk mengelola pengembangan microservices dengan struktur organisasi Spotify. Terapkan metodologi Agile yang sesuai, seperti Scrum atau Kanban, dengan mempertimbangkan karakteristik dan kebutuhan tim dalam organisasi Spotify.

Kesimpulan

Melalui implementasi Conway’s Law dan The Spotify Model, pengembangan microservices dengan struktur organisasi Spotify dapat menjadi lebih efektif dan adaptif. Dengan memperhatikan struktur organisasi, komunikasi yang baik antara tim, pengelolaan batasan domain yang tepat, evolusi independen dari layanan, dan penerapan praktik Agile yang adaptif, organisasi Spotify dapat memaksimalkan potensi pengembangan microservices dan mencapai kesuksesan dalam menghadapi tantangan pengembangan aplikasi dengan menggunakan Spotify framework.

References

  1. https://alibaba-cloud.medium.com/conways-law-a-theoretical-basis-for-the-microservice-architecture-c666f7fcc66a
  2. http://www.melconway.com/Home/Conways_Law.html

--

--

D. Husni Fahri Rizal
The Legend

Engineering Leader | Start-Up Advisor | Agile Coach | Microservices Expert | Professional Trainer | Investor Pemula