Elisitasi Kebutuhan Perangkat Lunak

Elisitasi kebutuhan merupakan salah satu proses dari analisis kebutuhan perangkat lunak.Elisitasi kebutuhan merupakan sekumpulan aktivitas yang ditujukan untuk menemukan kebutuhan suatu system melalui komunikasi dengan pelanggan, pengguna system dan pihak lain yang memiliki kepentingan dalam pengembangan system (Sommerville & Sawyer). Sesuai dengan definisi dari elisitasi, pada tahap ini akan ditelusuri kebutuhan pelanggan,pengguna dan pihak lain dengan menggunakan sebuah teknik elisitasi. Terdapat 5 teknik elisitasi yaitu Interview,Focus Groups,Document Analysis,Brainstorming, dan Observation.

Kami memilih teknik interview untuk mengetahui kebutuhan perangkat lunak yang diinginkan oleh user. Kami melakukan interview dengan salah satu pemilik kos-kosan di Geger Arum Baru No. 156 . Kami bertanya seputar fitur dan permasalahan yang selama ini dialami oleh pemilik kos – kosan tersebut.Dari hasil interview kami,aplikasi pengelolaan kos – kosan yang dibutuhkan yaitu aplikasi pengelola kos-kosan yang berbasis web yang dapat memudahkan dalam mengelola kos – kosan seperti mampu menampilkan informasi  kamar, mampu menyimpan identitas lengkap penghuni kamar,mampu mengingatkan batas limit pembayaran,dan mampu menampilkan informasi kamar mana yang tersedia. Sedangkan fitur – fitur yang dibutuhkan dalam aplikasi yaitu fitur login untuk admin dalam mengelola kos-kosan,fitur login penghuni kos untuk melihat detail informasi kamarnya,dan fitur chat antara admin dengan penghuni.

Kebutuhan dan fitur-fitur tersebut dibutuhkan karena banyak permasalahan yang sering terjadi seperti, pembayaran yang tidak tepat waktu,tidak ada identitas penghuni sehingga banyak yang kabur dan tidak membayar,susahnya / kurangnya waktu untuk komunikasi antara penghuni dan pemilik,susahnya orang lai yang sedang mencari kos untuk mendapatkan informasi kos – kosan tanpa harus datang langsung terlebih dahulu,sulit mengelola kos – kosan yang memiliki jumlah kamar yang banyak.

Metodologi Agile, SCRUM dan Kaban

Metodologi Agile merupakan salah satu metodologi pengembangan perangkat lunak. Metodologi Agile merupakan pendekatan yang iterative dan evolusioner yang dilakukan dengan mengedepankan kolaborasi serta mengunakan dokumen formal yang terbatas dan tepat untuk membangun perangkat lunak yang berkualitas dalam hal biaya yang efektif serta waktu yang sesuai dengan kebutuhan stakeholder yang bisa berubah-ubah. Metodologi Agile memiliki beberapa prinsip:

  • “Fits just right” process, hanya menerapkan proses yang penting, berdasarkan best practice
  • Continous Testing and Validation, melakukan pengetesan mulai dari awal hingga akhir dan dilakukan secara terus menerus
  • Rapid response to change, cepat dalam menanggapi perubahan
  • Ongoing customer involvement, customer akan dilibatkan mulai dari pembangunan perangkat lunak bukan hanya pada proses user acceptance test saja
  • Frequent delivery of working software, pembangunan perangkat lunak dibagi kepada beberapa iterasi, setiap iterasi menghasilkan working code atau modul yang telah selesai dan telah diuji


Scrum adalah kerangka kerja proses yang telah digunakan untuk mengelola pengembangan produk kompleks sejak awal tahun 1990-an. Scrum bukanlah sebuah proses, teknik, ataupun metodologi. Akan tetapi Scrum adalah sebuah kerangkakerja dimana anda dapat menggunakan bermacam proses dan teknik di dalamnya. Scrum mengekspos ketidak-efektifan dari manajemen produk dan teknik kerja anda, sehingga anda dapat secara terus-menerus meningkatkan kinerja produk, tim, dan lingkungan kerja anda .
Kerangka kerja Scrum terdiri dari Scrum Team dan peran-peran, acara-acara, artefak-artefak dan aturan-aturan terkait. Setiap komponen di dalam kerangka kerja ini memiliki tujuan tertentu dan sangat penting bagi keberhasilan penggunaan Scrum.Aturan Scrum mengikat peran-peran, acara-acara, dan artefak-artefak, serta menjaga hubungan dan interaksi antar komponen tersebut.

Scrum Alliance mendefiniskan komponen-komponen yang terdapat pada Scrum adalah sebagai berikut:

  • 1. Peranan :
    • a. Product owner : bertanggung jawab terhadap nilai bisnis dari sebuah produk.
    • b. ScrumMaster : memastikan tim yang dapat bekerja secara fungsional dan produktif.
    • c. Tim : self-organize untuk menyelesaikan pekerjaan.
  • 2. Acara :
    • a. Sprint planning : tim bertemu dengan Product owner untuk memilih pekerjaan yang akan diselesaikan selama Sprint.
    • b. Daily Scrum : tim bertemu setiap harinya untuk berbagi progress.
    • c. Sprint review : tim mendemonstrasikan apa yang telah diselesaikan selama Sprint kepada Product owner.
    • d. Sprint retrospective : tim mencari cara untuk meningkatkan produk dan proses.
  • 3. Artefak :
    • a. Product backlog : daftar prioritas dari proyek yang diinginkan.
    • b. Sprint backlog : kumpulan pekerjaan yang disetujui oleh tim untuk diselesaikan dalam satu Sprint, dipecah menjadi beberapa task.
    • c. Burndown chart : tampilan sekilas terhadap pekerjaan yang tersisa.


Kanban merupakan suatu metode untuk menvisualisasikan proses perkerjaan yang dilakukan saat kita sedang mengembangkan suatu Software. Team member dapat Menarik/Pull tugas yang harus diselsaikan dan bukan mendorong atau didorong oleh suatu tugas. Dengan menggunakan metode ini, kita dapat menjaga keseimbangan antara perkerjaan team member yang satu, dengan team member yang lainya. Metode ini juga dapat melacak Bottleneck dalam pengembangan aplikasi.

Kanban adalah suatu Framework agar Dev Team dapat melaksanakan Agile dengan rapih dan benar.

Secara singkat, proses kerja yang dilakukan Dev Team jika mereka menggunakan Kanban adalah sebagai berikut.

  1. Memilih Agile Coach yang bertanggung jawab memimpin team agar berkerja dengan etika dan kebiasaan yang benar.
  2. Menyiapkan Kanban Board dan beberapa Post-It/Sticker atau kertas apapun yang dapat ditempelkan ke Kanban Board.
  3. Dev Team dan Agile Coach membuat segmentasi di Kanban Board
  4. Dev Team dan Agile Coach menuliskan tugas – tugas apa yang harus diselesaikan dan limit tugas yang dapat dikerjakan di setiap segmentasi.
  5. Dev Team berkerja dan setiap perkerjaan selesai, Post-It yang merepresentasikan tugas tersebut dipindahkan ke segment selanjutnya, jika tugas di “TO-DO” mulai sedikit, maka Dev Team akan menarik tugas dari Product Backlog. Setiap pagi, Dev Team akan melakukan Daily Stand-Up untuk membicarakan progress.
  6. Jika tugas yang di “DONE” sudah cukup, maka Dev Team akan mempaketkan produk tersebut, melakukan Demo di depan Stakeholders, dan me-release product tersebut.
  7. Setelah product di release di minggu tersebut, Dev Team dan Stakeholders melakukan Retrospection untuk membicarakan kinerja dari minggu-minggu tersebut.
  8. Lalu kegiatan tersebut akan dilakukan berulang-ulang sampai produk benar-benar selesai.

SUMBER:

  • Raharjana,Indra Karisma.2017.Pengembangan Sistem Informasi Menggunakan Metodologi Agile. Yogyakarta : Deepublish
  • Agustino,Dimas.2018.”Knowing Agile Development Methodologies: Kanban”,http://sis.binus.ac.id/2018/03/09/knowing-agile-development-methodologies-kanban/,diakses pada 27 Februari 2019 pukul 21.00.
  • Azdy , Rezania Agramanisti, & Azhari.2012.”IMPLEMENTASI SCRUM PADA PENGEMBANGAN SOFTWARE TERDISTRIBUSI ” .Yogyakarta : Seminar Nasional Informatika.