conf

Pendahuluan

Seperti software developer lainnya, para agile software developer juga melakukan kegiatan analisis. Namun, para agilists ini melakukannya secara kolaboratif dan dengan menerapkan prinsip JIT (just-in-time). Analisis merupakan salah satu bagian yang penting pada perkembangan maupun pembuatan perangkat lunak.

Pengertian Analisis

Analisis merupakan kegiatan yang bertujuan untuk memahami apa yang kita buat, kenapa kita buat sedemikian rupa, bagaimana estimasi biaya yang diperlukan untuk membangun hal tersebut, dan bagaimana urutan yang terbaik untuk membangun software yang dianalisis (prioritas). Analisis dapat dianggap sebagai jembatan antara requirements dan design, dimana proses analisis ini dapat dipikir dari apa yang perlu dibangun, ke bagaimana sesuatu tersebut dibangun.

Garis besar Agile (“Agile Movement”)

Berdasarkan Agile Software Development Manifesto, nilai-nilai yang ditekankan dari agilists dan oleh agilists adalah sebagai berikut:

  • Individuals dan interactions dibandingkan processes and tools
  • Working software dibandingkan comprehensive documentation
  • Customer collaboration dibandingkan contract negotiation
  • Responding to change dibandingkan following a plan

Analisis Agile

Analisis agile mempunyai beberapa karateristik. Berikut adalah karateristik dari analisis agile:

  • Communication rich, dimana para agilists lebih cenderung memilih teknik komunikasi tatap muka maupun konferensi dibandingkan dengan dokumentasi atau email. Ini dilakukan berdasarkan prinsip bahwa metode komunikasi tersebut memberikan efektivitas yang lebih baik dibandingkan dengan metode komunikasi lain seperti paper atau audiotape. Agilists juga lebih cenderung ingin bekerja sedekat mungkin dengan stakeholder dari proyek dengan menerapkan prinsip active stakeholder participation saat memungkinkan.
  • Highly iterative. Kegiatan analisis dan desain saling bergantungan. Sebagai contohnya, estimasi merupakan bagian dari analisis yang bergantung pada beberapa desain yang dilakukan untuk mengidentifikasi bagaimana sesuatu dapat diimplementasikan. Sebaliknya, kegiatan desain yang dilakukan bergantung dari analisis yang dilakukan untuk mendefisikan apa yang perlu dibangun, sehingga analisis agile bersifat iteratif.
  • Incremental, dimana suatu sistem dibangun dalam tahap dan tidak diharuskan semuanya sekaligus. Pekerjaan atau rancangan dikategorikan menjadi bagian atau chunks kecil yang dapat dikerjakan. Chunks ini haruslah dapat diimplementasikan dalam waktu yang singkat, biasanya dalam waktu jam maupun hari.
  • Explores and illuminates problem spaces, ingat bahwa tujuan dari analisis adalah untuk mengetahui apa yang diperlukan para stakeholder proyek dari suatu sistem. Tidak hanya itu, informasi ini perlu dikomunikasikan ke semua pihak yang terlibat dalam proyek, termasuk para developer dan para stakeholder. Ini dilakukan untuk mencapai kesepakatan yang menyeluruh dan mencapai visi keseluruhan proyek.
  • Just good enough artifacts. Apabila terdapat sesuatu yang dibuat dari hasil analisis agile, sesuatu ini biasa jauh dari sempurna. Namun, sesuatu ini dapat bekerja seperti semestinya dan hanya bekerja seperti yang diinginkan.

Yang membedakan Agile

Tujuan dari agile software development adalah untuk lebih fokus pada penghasilan software yang dapat bekerja dibandingkan dengan dokumentasi. Ini bertolak belakang dengan model waterfall dimana suatu proses sangat dikontrol dan perubahan sistem yang bersifat minor memerlukan revisi dokumentasi yang hampir menyeluruh. Perlu diingat bahwa ini bukan menjadi alasan untuk melakukan suatu proyek tanpa tahap analisis atau tahap desain sama sekail. Apabila desain sistem diabaikan, mulanya suatu tim akan bergerak secara cepat. Namun, pada akhirnya diperlukan perbaikan ulang yang memakan lebih banyak waktu saat mereka melakukan scaling up sistem. Salah satu kunci dari agile software development adalah iterative. Saat dilakukan dengan benar, suatu desain dari sistem dikembangkan dan penggunaan ulang dari beberapa fitur sistem dapat dilakukan.

Daftar Gambar

  1. Explain Photo by fauxels

Referensi

  1. https://www.agilealliance.org/agile101/
  2. http://agilemodeling.com/essays/agileAnalysis.htm
  3. Abrahamsson, Pekka. Outi Salo. Jussi Ronkainen. Juhani Warsta. Agile Software Development Methods: Review and Analysis. 2017.