Requirement Analysis: Sistem Informasi Rute Angkutan Kota (Angkot)

Angkutan kota atau biasa disingkat Angkot atau Angkota adalah sebuah transportasi umum dengan rute yang sudah ditentukan. Tidak seperti bus yang mempunyai halte sebagai tempat perhentian, angkutan kota dapat berhenti untuk menaikkan atau menurunkan penumpang di mana saja. Di era yang sudah serba digital ini, banyak sekali alat-alat transportasi praktis seperti ojek online dan mobil online, namun hal ini tidak begitu saja membuat angkot kehilangan eksistensinya. Masih banyak masyarakat yang lebih memilih angkot sebagai sarana transportasi

Angkot tersebar luas di berbagai daerah di Indonesia, termasuk di ibukota Jawa Barat. Di Bandung banyak sekali variasi angkot yang beroperasi setiap harinya, hal ini membuat bingung penumpang angkot itu sendiri, apalagi bagi mereka yang baru saja  pindah ke Bandung untuk tujuan pendidikan misalnya. Hal ini bisa menyebabkan masyarakat lebih memilih moda transportasi online yang lebih mudah, cepat, dan langsung sampai ke tempat tujuan. Padahal, banyak sekali artikel di internet yang memberikan informasi rute angkot-angkot di Bandung.  Namun kembali lagi kepada kenyataan, bahwa masyarakat kita lebih suka hal-hal yang praktis dan tidak menyukai hal-hal yang ribet. Maka dari itu, kami ingin menjawab keresahan masyarakat tersebut dengan membuat aplikasi “Sistem Informasi Rute Angkutan Umum (Angkot)” yang bisa diakses menggunakan smartphone sehingga pengguna bisa mengakses aplikasi tersebut kapan saja dan dimana saja dan tentunya bisa membuat angkot mempunyai daya saing yang tinggi dengan moda transportasi online lainya, sehingga penggunaan angkot bisa semakin masif dan membuat penggunaan kendaraan pribadi berkurang yang tentunya bisa mengurangi angka kemacetan dan polusi di jalan.

Dalam menunjang pembuatan aplikasi, diperlukan requirement analysis untuk mengetahui masalah yang terjadi, salah satu metodenya adalah wawancara. Maka dari itu kami melakukan wawancara dengan beberapa narasumber. Dari 5 narasumber yang kami wawancarai, terdapat satu orang yang menyatakan bahwa rutin menggunakan angkot sekali dalam seminggu dan empat orang lainnya menyatakan sangat jarang untuk menggunakan angkot. Dari hasil wawancara yang kami lakukan banyak yang lebih memilih untuk menggunakan transportasi online dibanding angkot karena dianggap lebih efisien dan mudah. Selain itu, dari wawancara ini juga kami dapati bahwa banyak yang tidak mengetahui rute angkot yang ada sehingga tidak tahu harus menggunakan angkot jurusan apa untuk sampai ke tempat yang akan dituju.

Demi memenuhi kebutuhan pengguna, kami pun bertanya perihal hal apa saja sekiranya yang perlu ditampilkan atau yang harus ada pada aplikasi yang akan kami bangun. Hal-hal tersebut yaitu:

  • Fitur login
  • Fitur pengaturan
  • GPS untuk menunjukkan posisi dari pengguna
  • Fitur untuk memasukkan tempat destinasi
  • Nama jurusan angkot yang harus digunakan
  • Warna dan nomor angkot yang harus digunakan
  • Rute dari angkot harus digunakan, serta
  • Kisaran harga yang perlu dibayarkan.

Berikut in hasil wawancara kami:

https://drive.google.com/drive/folders/1sljMVOPY4HEa-5VVPh4XqNLFsilVMX7f?usp=sharing

Agile, Scrum, dan Kanban

Metodologi dalam perangkat lunak digunakan untuk merancang atau membangun suatu perangkat lunak, dengan perkembangan teknologi yang sangat pesat metodologi perangkat lunak juga terjadi perubahan atau penambahan requirements. Dari model waterfall sampai dengan model-model incremental. Semua metodologi yang berkembang sebelumnya tidak mampu menangani kemungkinan perubahan atau penambahan requirements.

Pada tahun 90-an diperkenalkan dengan metodologi baru yang dikenal dengan nama agile methods, kata agile berarti bersifat cepat, ringan, bebas bergerak, waspada. Metodologi yang dikenal sebagai agile methods ini mengutamakan fleksibilitas terhadap perubahan-perubahan yang terjadi selama pengembangan. Oleh karena itu, perbahan atau penambahan pada fase terakhir pun masih dapat dilakukan dengan metodologi ini.

What is Agile ?

Dari segi filosofi, agile mempunyai arti antara lain: mendorong demi terciptanya kepuasan pelanggan; mempercepat delivery perangkat lunak secara bertahap (incremental); tim proyek yang ramping dan mempunyai motifasi yang sangat tinggi; minimasi pekerjaan; serta menyederhanakan (birokrasi) keseluruhan proses pembangunan perangkat lunak.

Agile Software Development adalah jenis pengembangan sistem jangka pendek yang memerlukan adaptasi cepat dan pengembang terhadap perubahan dalam bentuk apapun. Dalam Agile Software Development, interaksi dan personel lebih penting dari pada proses dan alat, software yang berfungsi lebih penting daripada dokumentasi yang lengkap, kolaborasi dengan klien lebih penting dari pada negosiasi kontrak, dan sikap tanggap terhadap perubahan lebih penting daripada mengikuti rencana.

Salah satu ciri dari Agile Software Development adalah tim yang tanggap terhadap perubahan karena perubahan adalah hal yang utama dalam membangun software: perubahan kebutuhan software, perubahan anggota tim, da perubahan teknologi. Selain itu, Agile Software Development juga melihat pentingnya komunikasi antara anggota tim, antara orang-orang teknis dan businessmen, antara developer dan manajernya. Ciri lain adalah klien menjadi bagian dari tim pembangun software.

Menurut Agile Alliance, terdapat 12 prinsip yang harus dipenuhi bagi mereka yang ingin berhasil dalam penerapan Agile Software Development. Prinsip-prinsip tersebut antara lain :

  • Kepuasan klien adalah prioritas utama dengan menghasilkan produk lebih awal dan terus menerus.
  • Menerima perubahan kebutuhan, sekalipun diakhir pengembangan.
  • Penyerahan hasil atau software dalam hitungan waktu dua minggu sampai dua bulan.
  • Bagian bisnis dan pembangun kerja sama tiap hari selama proyek berlangsung.
  • Membangun proyek di lingkungan orang-orang yang bermotivasi tinggi yang bekerja dalam lingkungan yang mendukung dan yang dipercaya untuk dapat menyelesaikan proyek.
  • Komunikasi dengan berhadapan langsung adalah komunikasi yang efektif dan efisien.
  • Software yang berfungsi adalah ukuran utama dari kemajuan proyek.
  • Dukungan yang stabil dari sponsor, pembangun, dan pengguna diperlukan untuk menjaga perkembangan yang berkesinambungan.
  • Perhatian kepada kehebatan teknis dan desain yang bagus meningkatkan sifat agile.
  • Kesederhanaan sangat penting.
  • Arsitek. Kebutuhan dan desain yang bagus muncul dari tim yang mengatur dirinya sendiri.
  • Secara periodik tim evaluasi diri dan mencari cara untuk lebih efektif dan segera melakukannya.

Kedua belas prinsip tersebut menjadi suatu dasar bagi model-model proses yang punya sifat agile. Dengan prinsip-prinsip tersebut agile process model berusaha untuk menyiasati 3 asumsi penting tentang proyek software pada umumnya :

  • Penentuan kebutuhan perangkat lunak sulit diprediksi dari awal karena akan selalu berubah. Selain itu, prioritas klien juga akan mengalami perubahan sering dengan berjalannya proyek.
  • Desain dan pembangunan sering tumpang tindih. Sulit diperkirakan seberapa jauh desain yang diperlukan sebelum pembangunan
  • Analisis, desain, pembangunan dan testing tidak dapat diperkirakan seperti yang diinginkan

Kelebihan Agile development antara lain :

  • Meningkatkan kepuasan kepada klien
  • Pembangunan system dibuat lebih cepat
  • Mengurangi resiko kegagalan implementasi software dari segi non-teknis
  • Jika terjadi kegagalan pada saat pembangunan system, kerugian dari segi materi relative kecil

What is Scrum?

Scrum adalah salah satu metode rekayasa perangkat lunak dengan menggunakan prinsip-prinsip pendekatan Agile, yang bertumpu pada kekuatan kolaborasi tim, incremental product dan proses iterasi untuk mewujudkan hasil akhir. Scrum bukanlah sebuah proses, teknik, ataupun metodologi, tetapi merupakan sebuah kerangka kerja yang dapat menggunakan bermacam proses dan teknik di dalamnya. Scrum mengekspos ketidak-efektifan dari manajemen produk dan teknik kerja, sehingga dapat secara terus-menerus meningkatkan kinerja produk, tim, dan lingkungan kerja.

Scrum memiliki aktifitas yang meliputi :

  • Backlog  adalah daftar kebutuhan yang jadi prioritas klien, dan daftar yang dibuat dapat bertambah
  • Sprints merupakan unit pekerjaan yang diperlukan untuk memenuhi kebutuhan yang ditetapkan dalam backlog sesuai dengan waktu yang ditetapkan dalam time-box (biasanya 30hari). Selama proses ini berlangsung backlog tidak ada penambahan.
  • Scrum Meetings merupakan pertemuan yang rutin dilakukan perhari untuk evaluasi apa yang dikerjakan, hambatan yang ada, dan target penyelesaian untuk bahan meeting selanjutnya.
  • Demo adalah penyerahan software increment ke klien didemonstrasikan dan dievaluasi oleh klien.

Ada tiga peran berbeda yang diperlukan dalam melakukan metode Scrum, yaitu:

Master Scrum memastikan prosedur diikuti, memastikan semua berjalan lancar, dan melindungi tim dari gangguan. Master Scrum berbeda dari manajer proyek tradisional dalam banyak hal, termasuk peran ini tidak memberikan arahan sehari-hari kepada tim dan tidak memberikan tugas kepada individu.

Product Owner (Pemilik Produk) biasanya merupakan orang yang dianggap paling penting dari sebuah proyek. Bagian dari tanggung jawab pemilik produk adalah memiliki visi tentang apa yang ingin dia buat dan menyampaikan visi tersebut kepada tim Scrum. Tugas utama Pemilik Produk adalah untuk menjadi nilai bagi stakeholder atau pemegang saham.

Tim Scrum adalah tim yang bisa mengatur pekerjaan mereka sendiri dan merupakan sebuah tim yang lintas fungsional. Member tim akan melakukan analisis, implementasi, perancangan, pengujian, dan lain-lain. Meskipun individu dapat bergabung dengan tim dengan berbagai jabatan, di Scrum, judul tersebut tidak signifikan. Metodologi scrum menyatakan bahwa setiap orang berkontribusi dengan cara apa pun yang mereka bisa untuk menyelesaikan pekerjaan pada setiap sprint. Individu dengan demikian akan menghabiskan sebagian besar (dan terkadang semua) waktu mereka bekerja dalam disiplin apa pun yang mereka ketahui, baik itu analisis, desain, pengembangan, tes dan lain lain.

Kelebihan  :

  • Memiliki tingkat adaptasi yang tinggi untuk perubahan requirement saat siklus manajemen produk.
  • Pemilik proyek terus berhubungan dengan tim untuk memelihara tranparansi.
  • Karena testing dilakukan setiap selesai iterasi, maka bugs dan hal yang tidak diperlukan dapat ditanggapi dengan cepat dan untuk kembali ke versi sebelumnya dari produk tersebut mudah dilakukan.

Kekurangan :

  • Perubahan requirement sering dilakukan sehingga sering tidak terdokumentasi.
  • Hanya developer senior yang dapat mengontrol projek manajemen model sehingga harus ada satu Scrum Master di setiap tim untuk memantau setiap pergerakan agar berjalan di jalan yang benar.

What is Kanban?

Kanban adalah framework yang sangat baik bila digunakan untuk proses kontinyu atau rilis produk harian. Ia juga baik untuk diterapkan dalam proyek-proyek pemeliharaan (maintenance). Kanban memiliki ciri-ciri alur kerja yang tervisualisasi (visualized workflow), tugas yang dipecah menjadi item-item diskrit, progres kerja yang dibatasi, dan pengaturan tugas-tugas dari backlog.

Kanban pada dasarnya merupakan suatu metode manajemen untuk memvisualisasikan komunikasi dan pengendalian serangkaian aliran aktivitas di produksi sehingga memungkinkan semua orang untuk melihat aliran aktivitas tersebut dan menyesuaikannya sesuai dengan kebutuhan.

Tiga langkah penting dalam menerapkan Metode Kanban,

1. Visualisasi Alur Kerja

Suatu pekerjaan akan dapat lebih mudah dipantau dan diawasi jika dibagi menjadi beberapa bagian/sub-bagian ataupun segmen. Bagian atau segmen dari pekerjaan tersebut kemudian disusun menjadi suatu alur kerja dan ditampilkan dalam bentuk tabel ataupun daftar kerja yang dapat dilihat oleh semua pihak yang berkepentingan (stakeholder). Demikian juga dengan daftar bahan-bahan produksi agar dapat dilihat dan diketahui oleh semua stakeholder. Visualisasi tersebut dapat menggunakan cara yang paling sederhana yaitu dengan menempelkan sticky notes ataupun kartu informasi yang ditempelkan di papan ataupun dengan menggunakan software khusus untuk Kanban.

2. Membatasi WIP (Work In-Progress)

Menetapkan dengan tegas batas pekerjaan atau tugas ataupun jumlah unit produk yang masih dalam proses (Work In-Progress). Pekerjaan atau tugas yang telah disusun dalam alur kerja harus diselesaikan sesuai dengan jangka waktu yang ditentukan sehingga pekerjaan yang tertunda ataupun “masih dalam proses pengerjaan” dapat dikendalikan seminimal mungkin sedangkan untuk produk yang dalam proses produksi, dengan adanya pembatasan WIP ini, persediaan yang diperlukan akan menjadi seminimal mungkin.

3. Mengukur Lead Time yang diperlukan

Lead Time adalah siklus waktu yang dibutuhkan untuk menyelesaikan satu unit produk (atau suatu pekerjaan atau tugas) dari awal hingga menjadi produk jadi (selesai). Pada Kanban ini, diperlukan pengukuran dan penentuan Lead Time untuk mengoptimasikan proses pekerjaan sehingga dapat diprediksi seakurat mungkin dan waktu yang diperlukan pun sesingkat mungkin.

Enam Aturan Utama dalam Menerapkan Kanban

  • Hanya mengambil barang yang dibutuhkan saja sesuai dengan ketentuan Kanban
  • Hanya memproduksi jumlah yang dibutuhkan oleh pelanggan sesuai dengan ketentuan Kanban
  • Tidak ada item yang dipindahkan atau digunakan tanpa Kanban
  • Tidak boleh mengirimkan produk yang cacat ataupun jumlah yang tidak sesuai ke proses selanjutnya
  • Kanban harus diterapkan secara konsisten pada semua item.
  • Jumlah Kanban dapat dikurangi atau ditambah sesuai dengan kebutuhan aktivitas produksi itu sendiri.

Kelebihan :

  • Membatasi work in progress (WIP) ke area yang paling penting untuk menjaga jumlah perubahan seminimal mungkin pada waktu tertentu dan mempercepat proses pengembangan.
  • Hampir tidak ada investasi untuk alat atau pelatihan tambahan untuk tim developer.
  • Menggunakan hal yang sederhana seperti sticky notes dan papan tulis sebagai cara untuk visualisasi membantu menjaga denyut nadi perkembangan produk.

Kekurangan :

  • Sticky notes tidak dapat memprediksi jangka waktu, sehingga tidak cocok untuk proyek jangka panjang.
  • Walaupun menyederhanakan WIP, Kanban tidak baik untuk perencanaan dan dapat sepenuhnya dirombak oleh model lain, seperti Scrum. Akan tetapi, Kanban bekerja paling baik di atas Lean atau Scrum, hanya menunjukkan aliran perkembangan dan membantu menghindari kemacetan di dalamnya.

Sumber :

https://www.academia.edu/6836058/Agile_Methodology

https://www.dewaweb.com/blog/scrum-methodology-panduan-project-management/

https://www.kompasiana.com/advessbusiness/5807261545afbd38183aab3a/apa-itu-scrum-apa-saja-manfaatnya

https://medium.com/globalluxsoft/5-popular-software-development-models-with-their-pros-and-cons-12a486b569dc