Sprint 1

Artikel ini dibuat sebagai refleksi Sprint 1 Proyek Kelas mata kuliah PMPL (Penjaminan Mutu Perangkat Lunak) di Fakultas Ilmu Komputer Universitas Indonesia.

Introduction

Pada mata kuliah PMPL, kami diminta untuk mengerjakan satu proyek kelas. Proyek kelas dikerjakan secara ‘keroyokan’ dengan tujuan untuk meningkatkan kompetensi mahasiswa dalam mengembangkan aplikasi. Di sini, kita diberi kebebasan untuk menambahkan suatu fitur, atau memperbaiki aplikasi baik itu dari segi fitur, maupun kualitas kode.

Setiap peserta diberikan kesempatan untuk mengusulkan apa yang ia ingin lakukan kepada aplikasi tersebut. Usul tersebut akan diproses, kemudian jika usul tersebut diterima, akan diubah menjadi issue. Setelah itu, akan diberikan beberapa sprint bagi peserta untuk mengimplementasikan fitur-fitur yang diusulkannya, yang di-assign ke mereka.

Beberapa fitur bisa saja diusulkan oleh beberapa mahasiswa. Oleh karena itu, issue tersebut entah dapat dikerjakan bersama, atau dikerjakan sendiri oleh mahasiswa yang pertama kali meng-assign issue tersebut ke mereka. Ini tentu berbeda per issue.

Apa yang dimaksud dengan Proyek Kelas disini?

Proyek kelas yang dimaksud adalah Digipus. Menurut deskripsi pada Repository:

Digipus is a system application that can accommodate archiving educational material from regional apparatus, academics, and practitioners, and organizing it properly so that it becomes material for increasing knowledge and skills for the community at large.

There are three personas here, Admin, Contributor, and User (General Public). As admins, they monitor contributors and material uploaded by contributors by rejecting or approving uploaded material. As contributors, they can upload a material. And as a user, they can look at the material uploaded by contributor.

Proyek ini merupakan proyek hibah dari mata kuliah PPL (Proyek Perangkat Lunak), tetapi yang unik dari proyek ini adalah fakta bahwa proyek ini merupakan proyek yang belum terselesaikan pada masa development sesuai dengan ketentuan pada mata kuliah PPL.

Pengalaman pada Sprint 1

Pengalaman saya saat melakukan sprint 1 unik, karena saya banyak melakukan kesalahan baik itu dalam merging kode, dan penulisan kode. Pada saat merging kode, saya mengira bahwa GitLab akan mem-point ke repository yang benar. Tetapi saat saya ingin merge, ternyata saya tidak memiliki izin untuk merge. Setelah saya telusuri kembali, ternyata setting otomatis GitLab mem-point ke repository PPL yang merupakan sumber forking bagi repository proyek kelas PMPL. Oleh karena itu, saya harus membuat merge request baru untuk merging ke repository yang benar.

Pada pengerjaan fitur saya, saya mengimplementasikan Functional Test. Ada satu rekan yang concerned dengan running time Functional Test saya, karena sebelum dijalankan, harus mendownload geckodriver dan Firefox, yang membutuhkan waktu yang lama. Ini mempengaruhi waktu eksekusi pipeline, sehingga mau tidak mau harus di-disable oleh rekan tersebut. Karena rekan tersebut mengontak saya sebelum mendisablenya, saya oke-oke saja terhadap hal tersebut.

Apakah fitur yang saya kerjakan pada Sprint 1?

Fitur yang saya kerjakan pada Sprint 1 sangat sederhana, yaitu name banner. Name banner adalah Navigation bar yang hanya menampilkan tulisan “Digipus”. Alasan mengapa saya mengerjakan fitur yang sangat sederhana adalah karena ini merupakan salah satu fitur yang diterima dari beberapa fitur yang saya usulkan.

Sekadar latar belakang, fitur yang saya usulkan ada 3, dengan tingkat kesulitan mudah ke sedang. Alasan kenapa saya mengusulkan fitur yang mudah untuk diimplementasi adalah karena saya merasa ada hal lebih yang saya harus lakukan (mengingat ini adalah tugas mata kuliah PMPL, bukan PPL), bukan hanya sekadar implementasi saja.

Impelementasi Fitur

Lanjut ke fitur yang saya kerjakan. Karena fitur tersebut merupakan fitur yang UI-based, maka saya harus membuat desain terlebih dahulu, yang kemudian saya posting ke halaman issue.

Untuk name banner, saya memiliki dua desain awal:

Anehnya tidak ada yang melihat desain saya. Oleh karena itu, saya melanjutkan development fitur yang saya usulkan.

Selanjutnya adalah implementasi fitur. Dalam implementasi fitur dalam bentuk kode, saya menggunakan TDD. Tetapi biasanya UI tidak dites. Oleh karena itu, saya hanya menaruh tes sederhana yang memastikan bahwa Name Banner di-load secara sempurna ke laman.

Setelah itu, barulah saya mengimplementasi ‘actual code’ untuk menyelesaikan fitur yang saya kerjakan:

Berikut adalah hasil akhirnya:

Pada akhirnya, saya memutuskan untuk menggabungkan hal-hal yang saya sukai dari kedua desain yang saya buat (Size dari desain 1, dan warna putih serta kesederhanaan tampilan dari desain 2).

Penutup

Pengerjaan proyek secara ‘keroyokan’ merupakan suatu hal yang baru bagi saya. Sebelumnya, segala fitur dalam suatu aplikasi hanya dikerjakan oleh saya dan rekan-rekan anggota tim saya. Ini tentu memberikan ‘challenge’ yang unik, yaitu komunikasi yang hanya sebatas perlu saja (jika tidak ada fitur yang overlap maka tidak akan ada komunikasi antar rekan), dan perlunya menulis kode dengan standar yang tinggi agar dapat dimengerti oleh rekan lain dan juga untuk mempengaruhi fitur yang ada sesedikit mungkin agar jika rekan lain ingin melakukan merging tidak menyulitkan mereka.

Leave a comment