Agile Manifesto: 12 principles
Keempat nilai (values) pada Agile Manifestor , dijabarkan ke dalam 12 prinsip sebagai
Agile Principles, yaitu:
- Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
Prioritas utama adalah memuaskan klien dengan menghasilkan perangkat lunak yang bernilai secara cepat dan rutin.
Prioritas tertinggi dalam Agile software development adalah memuaskan pelanggan melalui delivery produk perangkat lunak yang bernilai di tahap awal namun tetap berkelanjutan. Pada metode pengembangan software tradisional, umumnya pelanggan harus menunggu proses yang lama dan panjang untuk bisa melihat produk atau hasil akhir. Hal tersebut tidak jarang membuat pelanggan merasa kecewa karena harus menunggu dalam waktu yang lama. Kondisi tersebut tentu bertolak belakang dengan prinsip Agile yang mengutamakan kepuasan pelanggan.
Oleh karena itu, proses pengembangan dilakukan dengan urutan kerja inkremental (berkembang sedikit demi sedikit secara teratur) dan iteratif (berulang). Dengan metode tersebut, maka produk atau perangkat lunak dapat di-delivery ke tangan pelanggan dengan proses yang lebih cepat. Selain itu, metode ini juga memungkinkan pelanggan untuk bisa memberikan feedback di awal sehingga perbaikan dapat dilakukan pada tahap-tahap selanjutnya.
- Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
Siap terhadap perubahan kebutuhan. Proses Agile memanfaatkan perubahan untuk keuntungan klien.
Seperti yang kita ketahui, teknologi dan tren pasar akan terus mengalami perubahan dan perkembangan. Para pemilik bisnis tentu tidak ingin menghabiskan biaya yang tinggi untuk mengembangkan sebuah perangkat lunak dengan teknologi yang sudah usang.
Oleh karena itu, dengan memegang prinsip Agile software development maka tim pengembang harus selalu siap dengan perubahan tersebut. Dengan demikian, produk perangkat lunak yang dikembangkan dapat terus relevan dengan kondisi terkini.
- Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
Menghasilkan perangkat lunak yang bekerja secara rutin, dari jangka waktu beberapa minggu sampai beberapa bulan, dengan mengutamakan jangka waktu yang pendek.
Dalam metode Agile, proses atau siklus pengembangan perangkat lunak akan dipecah dalam beberapa bagian yang lebih kecil. Kemudian, hasil pengembangan tersebut akan dirilis secara berkala.
Pada umumnya, proses pengembangan akan dilakukan dengan jangka waktu beberapa minggu sampai beberapa bulan. Dengan memegang prinsip ini, tim pengembangan dapat mengurangi lebih banyak waktu dalam mengerjakan proyek sehingga proses pengembangan dapat dilakukan dengan lebih gesit.
Scrum merupakan salah satu contoh kerangka kerja yang mengadopsi prinsip ini. Di dalam Scrum, tim akan beroperasi di dalam Sprint yaitu periode singkat yang dibatasi oleh waktu untuk menyelesaikan sejumlah pekerjaan. Dengan mematuhi Sprint tersebut proses delivery atau rilis perangkat lunak pada dilakukan secara secara lebih teratur.
- Business people and developers must work together daily throughout the project.
Rekan bisnis dan pengembang perangkat lunak harus bekerjasama sepanjang proyek.
Prinsip Agile software development yang selanjutnya mengatakan bahwa tim developer dan klien harus saling bekerjasama dalam pengerjaan proyek.
Untuk mengembangkan sebuah produk yang sukses, Anda membutuhkan insight dari sisi bisnis dan teknis. Oleh karena itu, tim developer dan klien harus terus melakukan komunikasi dan kolaborasi yang efektif untuk keberhasilan proyek.
Komunikasi yang dilakukan secara rutin juga akan memberikan transparansi tentang kemajuan proyek dari semua aspek. Dengan demikian, keselarasan dan kepercayaan antar tim dapat terbangun dengan baik.
- Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
Lingkungan pengembang proyek memiliki suasana yang motivatif. Berikan mereka lingkungan dan dukungan yang dibutuhkan, dan percayai mereka untuk dapat menyelesaikan pekerjaan dengan baik.
Tim yang memiliki motivasi tinggi pada umumnya dapat memberikan hasil yang terbaik daripada tim yang tidak memiliki motivasi. Oleh karena itu, dalam metode Agile software development, Anda harus bisa memberikan lingkungan dan dukungan yang dibutuhkan oleh semua anggota tim.
Anda juga harus bisa mempercayai bahwa masing-masing anggota tim mampu menyelesaikan tugas yang harus dikerjakan. Jika Anda membangun sebuah proyek di lingkungan kerja yang tidak termotivasi karena kurangnya kepercayaan dan dukungan, maka proyek Anda kemungkinan besar tidak akan berhasil dijalankan.
- The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
Metode yang paling efisien dan efektif untuk bertukar informasi dari dan dalam tim pengembang adalah dengan komunikasi secara langsung.
Metode Agile software development memiliki prinsip bahwa penyampaian informasi yang paling efektif dan efisien dilakukan melalui komunikasi secara tatap muka. Penyampaian informasi secara langsung perlu dilakukan agar setiap kesalahpahaman dalam komunikasi dapat dihilangkan. Dengan demikian, seluruh proses pengembangan produk dapat berjalan dengan lebih lancar.
Pada tahun 2001 saat Agile Manifesto dikembangkan, prinsip ini mungkin masih relevan. Namun melihat kondisi sekarang, dimana semakin banyak tim jarak jauh yang berkolaborasi dalam pengembangan suatu produk, maka komunikasi secara face to face di satu lokasi tidak memungkinkan untuk dilakukan. Untungnya, saat ini teknologi juga sudah semakin berkembang sehingga memungkinkan tim jarak jauh untuk bisa berkomunikasi secara langsung meskipun melalui video call atau meeting virtual.
- Working software is the primary measure of progress.
Perangkat lunak yang bekerja adalah ukuran utama kemajuan suatu tim.
Perlu diketahui, fokus anggota tim terkadang teralihkan karena beberapa hal seperti pembuatan dokumentasi ataupun mockup yang cukup lama. Namun karena dalam Agile development, perangkat lunak yang berfungsi dengan baik menjadi tolak ukur utama, maka seluruh anggota tim akan lebih fokus pada proses pengembangan software.
- Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
Proses Agile mendukung pengembangan yang berkelanjutan dengan kecepatan pengembangan yang konsisten.
Agile menjalankan proses pengembangan yang berkelanjutan dengan mempertahankan kecepatan yang konstan. Jadi, proses pengembangan perangkat lunak yang panjang akan dibagi menjadi beberapa tujuan kecil.
Dengan cara ini, pengembang dapat menciptakan tujuan yang lebih realistis dan menetapkan ekspektasi yang tidak terlalu tinggi. Cara ini juga dapat membantu Anda untuk bisa lebih sering dalam merilis produk dengan cara yang lebih teratur dan efisien tanpa memberikan beban berlebih pada tim pengembang.
- Continuous attention to technical excellence and good design enhances agility.
Perhatian terhadap detail-detail teknis dan desain akan meningkatkan agility Kesederhanaan (memaksimalkan jumlah pekerjaan yang belum dilakukan) adalah hal yang sangat penting.
Dalam konteks software development, prinsip ini memungkinkan tim untuk tidak hanya membuat perangkat lunak yang berfungsi namun juga perangkat lunak yang stabil dan berkualitas tinggi.
Metode Agile development memang mendorong proses pengembangan yang pendek agar rilis produk dapat dilakukan secara lebih sering. Meskipun demikian, dalam proses pengembangan, Anda harus selalu menjaga berbagai komponen pengembangan tetap teratur dan rapi sehingga tidak menimbulkan masalah di masa depan.
- Simplicity--the art of maximizing the amount of work not done--is essential.
Kesederhanaan (memaksimalkan jumlah pekerjaan yang belum dilakukan) adalah hal yang sangat penting.
Prinsip Agile ini membantu menciptakan pola pikir dimana tim pengembang dapat bekerja dengan cerdas. Jika Anda dapat mengerjakannya dengan cara yang sederhana, maka Anda tidak perlu membuang banyak waktu untuk mempersulit pengerjaan tugas tersebut.
Prinsip ini juga menekankan agar tim dapat lebih fokus untuk mengerjakan hal-hal penting yang perlu diprioritaskan untuk menciptakan value pada sebuah produk.
- The best architectures, requirements, and designs emerge from self-organizing teams.
Self-organizing team mendukung arsitektur, kebutuhan, dan rancangan perangkat lunak yang baik.
Pada pengembangan tradisional, manajemen akan menjadi pihak yang bertanggung jawab untuk membuat semua keputusan. Berbeda dengan metode Agile dimana anggota tim harus bisa mengatur atau mengelola dirinya sendiri untuk menyelesaikan pekerjaan mereka (Self-organization).
Jadi, dalam proses pengembangan perangkat lunak, anggota tim dapat memutuskan siapa, kapan, dan bagaimana menyelesaikan suatu pekerjaan.
- At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Secara berkala, tim pengembang berefleksi tentang bagaimana agar pengembangan lebih efektif, kemudian menyesuaikan cara bekerja mereka.
Prinsip Agile yang terakhir memiliki fokus pada evaluasi kinerja tim dan mengidentifikasi hal-hal apa saja yang perlu ditingkatkan di dalamnya. Dengan memegang prinsip ini, Anda dapat terbantu dalam menciptakan lingkungan pengembangan yang fleksibel serta berfokus pada peningkatan cara kerja yang lebih efektif untuk seluruh anggota tim.
.
Prev
Next