Agile Modeling Principles
Agile Modeling Principles
Oleh : Adam Fahsyah Nurzaman
Agile modeling bukan tentang melakukan lebih sedikit pemodelan, tetapi tentang melakukan pemodelan yang tepat pada tingal detail yang tepat untuk tujuan yang benar. Agile modeling adalah suatu metodologi yang praktis untuk proses dokumentasi dan pemodelan dari system aplikasi perangkat lunak. Agile terdiri dari kumpulan nilai-nilai, prinsip dan praktek-praktek untuk memodelkan perangkat lunak agar dapat diaplikasikan pada proyek pengembangan perangkat lunak secara efektif dan efisien. Agile Modeling memiliki prinsip-prinsip dasar yang dapat mengungkapkan sikap yang seharusnya dimiliki pengembang Ketika mereka mengembangkan perangkat lunak.
Pada gambar diatas menjelaskan terdapat 12 prinsip-prinsip dari pemodelan agile.
- Develop Software as Your Primary Goal
Menghasilkan kualitas yang tinggi dari pengembangan perangkat lunak adalah salah satu tujuan utamanya. Agile modeling selalu menjadi sarana untuk mencapai tujuan, bukan tujuan itu sendiri. Kegiatan apapun yang tidak secara langsung berkontribusi pada tujuan akhir pembuatan perangkat lunak harus di pertanyakan dan dihindari jika tidak dapat dibenarkan.
- Enable the Next Effort as Your Secondary Goal
Pengembang harus mempertimbangkan dua tujuan penting, pertama adalah model requirement mungkin diperlukan untuk mengembangkan model desain. Jadi, jangan berpikir bahwa jika model tidak dapat digunakan untuk menulis kode, itu tidak perlu. Kedua, meskipun perangkat lunak berkualitas tinggi adalah tujuan utama, pengguna jangka Panjang kode itu juga penting. Jadi, beberapa model mungkin di perlukan untuk mendukung pemeliharaan dan peningkatan system. Ya, kode adalah dokumentasi terbaik. tetapi beberapa keputusan desain arsitektur mungkin tidak mudah diidentifikasi dari kode.
- Minimize Your Modeling Activity – Few and Simple
Dalam pengembangan, membuat model yang hanya diperlukan. Model yang anda buat harus jelas, benar, dan lengkap. Tetapi jangan membuat model yang tidak perlu. Juga, jaga setiap mdel sesederhana mungkin. Biasanya, solusi paling sederhana adalah solusi terbaik. Solusi rumit cenderung sulit dipahami dan dipelihara. Namun, kesederhanaan bukan alas an untuk tidak lengkap.
- Embrace Change and Change Incrementally
Karena filosofi yang mendasari pemodelan Agile adalah bahwa pengembang harus fleksibel dan cepat menanggapi perubahan, pengembang Agile yang baik bersedia menerima bahkan merangkul perubahan. Perubahan dipandang sebagai norma, bukan pengecualian. Perhatikan perubahan, dan siapkan prosedur untuk mengintegrasikan perubahan ke dalam model. Cara terbaik untuk menerima perubahan adalah berkembang secara bertahap. Ambil langkah kecil dan atasi masalah dengan gigitan kecil.
- Model with A Purpose
dua alasan untuk membangun model adalah untuk memahami apa yang Anda bangun dan untuk mengkomunikasikan aspek-aspek penting dari sistem solusi. Pastikan upaya pemodelan Anda mendukung alasan tersebut. Kadang-kadang, pengembang mencoba untuk membenarkan model bangunan dengan mengklaim bahwa (1) metodologi pengembangan mengamanatkan pengembangan model, (2) seseorang menginginkan model, meskipun orang tersebut tidak tahu mengapa itu penting, atau (3) a model dapat menggantikan diskusi wajah dengan berbagai masalah. Identifikasi alasan dan audiens untuk setiap model yang Anda kembangkan. Kemudian, kembangkan model dalam detail yang cukup untuk memuaskan alasan dan audiens.
- Build Multiple Models
Seiring dengan metodologi pemodelan lainnya, UML memiliki beberapa model untuk mewakili berbagai aspek masalah yang dihadapi. Agar berhasil — dalam memahami masalah atau mengkomunikasikan solusinya — Anda perlu memodelkan aspek-aspek penting dari domain masalah atau solusi yang diperlukan. Jangan kembangkan semuanya; pastikan untuk meminimalkan pemodelan Anda, tetapi kembangkan model yang cukup untuk memastikan Anda telah mengatasi semua masalah.
- Build High-Quality Models and Get Feedback Rapidly
Tidak ada yang suka kerja ceroboh. Ini didasarkan pada pemikiran yang salah dan memperkenalkan kesalahan. Salah satu cara untuk menghindari kesalahan dalam model adalah untuk mendapatkan umpan balik dengan cepat saat pekerjaan masih segar. Umpan balik datang dari pengguna dan juga dari anggota tim teknis. Orang lain akan memiliki wawasan bermanfaat dan berbagai cara untuk melihat masalah dan mengidentifikasi solusi.
- Focus on Content Rather Than Representation
Tim proyek memiliki akses ke alat pemodelan visual yang canggih. Ini bisa membantu, tetapi kadang-kadang, itu mengganggu karena pengembang menghabiskan waktu membuat diagram cantik. Jadilah bijaksana dalam penggunaan alat. Beberapa model perlu dirancang dengan baik untuk masalah komunikasi atau kontrak. Terkadang, lebih produktif untuk membangun model dengan alat karena diharapkan akan sering berubah, dan menggunakan alat biasanya lebih produktif daripada menggambar ulang dengan tangan.
- Learn from Each Other with Open Communication
Semua pendekatan adaptif menekankan bekerja dalam tim. Jangan bersikap defensif tentang model Anda. Anggota tim lainnya punya saran bagus. Anda tidak pernah dapat benar-benar menguasai setiap aspek dari masalah atau modelnya.
- Know Your Models and How to Use Them
Menjadi seorang model Agile bukan berarti Anda tidak terampil. Jika ada, Anda harus lebih terampil untuk mengetahui kekuatan dan kelemahan model, termasuk bagaimana dan kapan menggunakannya. Pemodel ahli menerapkan prinsip sebelumnya tentang kesederhanaan, kualitas, dan pengembangan beberapa model.
- Adapt to Specific Project Needs
Setiap proyek berbeda karena ada dalam lingkungan yang unik; melibatkan pengguna yang berbeda, pemangku kepentingan, dan anggota tim; dan membutuhkan lingkungan pengembangan dan platform penyebaran yang berbeda. Sesuaikan model dan teknik pemodelan Anda agar sesuai dengan kebutuhan bisnis dan proyek. model dapat bersifat informal dan sederhana. Untuk proyek lain, model yang lebih formal dan rumit mungkin diperlukan. Pemodel Agile mampu beradaptasi dengan setiap proyek.
- Maximize Stakeholders ROI
Para pemangku kepentingan adalah tujuan nyata bahkan ada proyek. Stakeholder mencakup pengguna sistem baru dan mereka yang mendanai pengembangan sistem. Jangan pernah lupa alasan sebenarnya untuk proyek ini. Para pemangku kepentingan berhak memiliki pendapat akhir tentang apa yang dilakukan sistem dan bagaimana sistem itu dikembangkan.