Peran Quality Assurance (QA) dalam Scrum
Saya telah bekerja sebagai quality assurance (QA) selama kurang lebih tujuh tahun. Dari proses tersebut, saya belajar bahwa QA memegang peranan sangat penting dalam Agile Development. Peran QA jauh dari sekadar menulis skenario tes, melakukan testing dan melaporkan bug (temuan issue) ke tim developer/implementer.
Dalam tulisan ini saya akan membagikan peranan QA yang sangat penting dalam proses Agile Development, terutama yang dilakukan dengan metode Scrum. Namun sebelum itu, kita perlu memahami terlebih dahulu apa itu Agile Development dan metode Scrum.
Apa Itu Agile Development?
Agile sering disebut sebagai framework karena di dalamnya memang terdapat berbagai metode yang bisa digunakan sesuai kebutuhan. Agile juga mengacu pada prinsip atau pendekatan yang digunakan dalam manajemen sebuah proyek pengembangan software. Anblicks secara lebih detail menjabarkan Agile dalam beberapa poin berikut:
Approach to Software Development (pendekatan dalam pengembangan perangkat lunak)
Gather Requirement (kegiatan mengumpulkan informasi, kriteria dan kebutuhan)
Iterative and Increment Development (proses pengembangan yang bertahap dan terus meningkat)
Last from One to Four Weeks Time Frame — in Sprint (berlangsung dalam waktu singkat (sprint), biasanya 2–4 pekan saja)
Early and Continuous Deployment (lebih mudah dan berkelanjutan mengembangkan sistem)
Berdasarkan uraian di atas kita dapat menyimpulkan bahwa yang dimaksud Agile dalam artikel ini adalah sekumpulan metode pengembangan software yang terdiri dari proses mengumpulkan informasi dan menetapkan kriteria yang sesuai kebutuhan, menggunakan teknik iterasi (berulang) dan bertahap secara dinamis (atau dikenal dengan sprint). Durasi setiap iterasi pada pendekatan Agile berbeda-beda dipengaruhi oleh jenis proyek dan metode yang digunakan. Namun, umumnya setiap iterasi berjalan antara dua hingga empat pekan .
Iterasi dalam pendekatan Agile fokus pada upaya pengembangan software yang cepat sesuai perubahan kebutuhan konsumen dengan melibatkan semua tim. Cara ini sangat cocok diterapkan di perusahaan-perusahaan yang ingin selalu berinovasi dan bertranformasi memenuhi kebutuhan konsumen yang berubah-ubah seiring dengan perkembangan teknologi.
Agile menawarkan proses yang fleksibel, sebagai contoh, kita ingin menerapkan pendekatan Agile pada perusahaan pembiayaan kendaraan bermotor. Perusahaan tersebut sedang mengembangkan aplikasi mobile dan website yang memudahkan pemilik kendaraan melakukan pembayaran angsuran, perawatan mobil, pembayaran pajak tahunan, sampai dengan penjualan kendaraan kembali.
Di tengah proses tersebut, tim bisnis yang terlibat ingin menambahkan fitur baru berupa penghitung simulasi harga kredit mobil baru. Dengan metodologi Agile, fitur itu dapat dibuat pada sprint selanjutnya tanpa mengganggu sprint yang sudah berjalan. Di tiap akhir sprint, ada proses reviu (review) dan feedback dari stakeholders, sehingga ada ruang cukup besar bagi tim untuk mengambil keputusan dengan cepat, dengan kualitas terbaik, dan meningkatkan potensi penanganan setiap perubahan kebutuhan konsumen dengan baik pula.
Metode Scrum dalam Agile Development
Ada delapan metode berbeda yang digunakan dalam pendekatan Agile Development, yaitu Scrum, Scaled Agile Framework, Lean Software Development (LSD), Kanban, Extreme Programming (XP), Crystal Methodology, Dynamic Systems Development Method (DSDM), dan Feature Driven Development (FDD).
Metode Scrum paling banyak digunakan oleh perusahaan start-up berbasis IT di Indonesia. Scrum adalah sebuah kerangka kerja yang mengimplementasikan proses Agile Development. Kerangka ini memungkinkan adanya penyelesaian tipe masalah yang berubah-ubah dan kompleks secara bersamaan dan memberikan hasil relatif cepat dalam 2–4 minggu.
Tim Scrum memiliki dua karakteristik yang menentukan. Biasanya mereka bekerja secara lintas fungsional dan bisa mengatur diri sendiri. Dengan kata lain, mereka adalah tim yang diharapkan akan dapat mengetahui bagaimana cara menyelesaikan pekerjaan.
Bagaimana Peran QA dalam Scrum
- Menetapkan harapan yang jelas.
Di dalam tim Scrum, QA tidak hanya bertugas untuk membuat skenario tes. QA dapat membantu product owner menetapkan harapan yang jelas atas produk yang ingin dibuat. Interaksi antara QA dengan product owner pada saat proses perencanaan sangat penting. Di sana QA dapat mengajukan pertanyaan-pertanyaan yang menantang asumsi untuk membantu memperjelas requirements. QA adalah pihak yang mengetahui kondisi existing yang ada pada sistem. Ia diharapkan dapat memastikan bahwa solusi yang akan dikembangkan tidak berbenturan dengan kondisi existing. Requirements yang jelas sejak awal planning akan mengurangi keraguan dan pertanyaan yang sering muncul saat proses development. Hal ini juga akan berdampak pada produktivitas yang lebih besar dan penghematan waktu untuk tim development dan tim QA.
2. Memperkirakan Alur Testing
Pengetahuan QA akan alur bisnis dari sistem yang dites sangat penting, sebab QA harus memperkirakan kasus-kasus apa saja yang akan dihadapi dalam pembuatan sebuah software. Tanpa pengetahuan yang cukup, tugas ini sangat sulit dilakukan. Dalam tim Scrum, QA perlu dilibatkan sejak awal proses perencanaan. Dengan begitu, QA bisa menemukan skenario kasus uji yang kompleks, menghasilkan perkiraan hasil positive testing dan negative testing, serta membantu menghasilkan requirement yang jelas.
3. Menjalin Komunikasi yang Baik dengan Developer
Dalam metodologi Agile, interaksi antara QA dan developer memainkan peranan sangat penting. Karena adanya iterasi yang berjalan cepat, QA harus menjadwalkan testing yang cepat untuk setiap fitur dan fungsi baru. Dengan komunikasi yang baik, QA akan terbantu untuk memiliki pemahaman yang baik pula tentang cara kerja fitur yang baru dikembangkan. Dengan itu QA dapat menemukan masalah dan skenario kecil yang mungkin terlewatkan pada saat planning maupun ketika developer melakukan unit testing. QA juga dapat menentukan waktu yang tepat untuk mengajukan pertanyaan kepada tim developer.
4. Memberikan Umpan Balik (Feedback) Lebih Cepat
Di tim Scrum, QA dan programmer bekerja sama di seluruh proses. Ini berdampak pada proses umpan balik (feedback) yang lebih sederhana dan lebih cepat. Di setiap iterasi, programmer dapat berkomunikasi dengan QA tentang kriteria yang diharapkan dari perspektif pengguna saat menggunakan aplikasi yang dikembangkan. QA dapat memberikan umpan secara langsung. Jika ada hal yang harus dibenahi, tim dapat langsung bekerja pada setiap iterasi, sehingga tidak terjadi masalah yang menumpuk.
5. Membantu Proses Release dan Demo
Sprint Review atau kadang disebut iteration review adalah masa bagi seluruh anggota tim untuk mendemokan hasil pekerjaan pada sprint berjalan kepada product owner, stakeholders, dan user. Dengan siklus yang cepat antara dua hingga empat pekan, semua anggota tim harus benar-benar fokus dan berkomitmen pada tugas masing-masing agar selesai tepat waktu. Artinya, programmer memiliki lebih sedikit waktu untuk melakukan eksplorasi produk secara lengkap. Di situlah QA berperan untuk mewakili pengalaman pengguna terhadap sistem yang sedang dikembangkan. Sprint review bisa menjadi momen yang baik bagi seluruh tim untuk melakukan demo dan menjelaskan masalah-masalah yang dihadapi sebelum proses release.
Referensi
- Role and Responsibility Of QA in an Agile Methodology : https://www.anblicks.com/blog/role-of-qa-in-agile-methodology/
- How Does QA Fit with Scrum? : https://medium.com/serious-scrum/how-does-qa-fit-with-scrum-4a92f86bec5b