Saya telah banyak berpikir akhir-akhir ini tentang bagaimana membangun tim pengembangan lean. Pada akhirnya, saya ingin membuka rumah perangkat lunak kecil saya sendiri dengan sejumlah kecil orang yang berpikiran sama. Tujuannya bukan untuk menjadi kaya, tetapi untuk memiliki lingkungan kerja yang sehat.
Sejauh ini, saya mendefinisikan tim lean sebagai berikut:
- Kecil;
- Mengorganisir diri;
- Semua anggota harus memiliki QA dalam pikiran;
- Anggota harus mampu melakukan banyak peran
Poin terakhir adalah di mana saya sedikit khawatir karena, seperti mantra ...
Pengembang membuat penguji buruk.
Sementara saya mengerti bahwa, seringkali, pengembang "terlalu dekat" dengan kode mereka atau kode rekan mereka untuk membuat penilaian kualitas tingkat yang lebih tinggi, saya tidak yakin mereka adalah penguji buruk de-facto . Sebaliknya, saya berpendapat bahwa kualitas pengembang yang baik tumpang tindih dengan kualitas tester yang baik.
Dengan asumsi ini benar, saya telah memikirkan berbagai cara untuk mengatasi masalah dev / tester dan saya percaya saya telah datang dengan model yang layak.
Model saya membutuhkan:
- Rumah perangkat lunak kecil dengan 2+ proyek
- Pendekatan Agile (iteratif) untuk pengembangan dan pengiriman
- 1 tim per proyek
- Semua anggota tim akan menjadi Pengembang Perangkat Lunak
- Deskripsi pekerjaan mereka jelas akan menyatakan Pengembangan , Jaminan Kualitas , Pengujian , dan Pengiriman sebagai tanggung jawab
Jika semua prasyarat ini telah dipenuhi, maka proyek dapat diatur dengan cara berikut (contoh ini akan merujuk pada dua proyek, A dan B ):
- Setiap anggota tim akan berganti-ganti antara peran Pengembang dan peran Penguji
- Jika anggota tim adalah Pengembang di proyek A , mereka akan menjadi Penguji di proyek B
- Anggota akan bekerja pada hanya 1 proyek pada suatu waktu, dan karena itu diharapkan akan bertindak sebagai salah satu Dev atau Tester.
- Sebuah Siklus Peran terdiri dari 3 iterasi sebagai Dev dan 2 iterasi sebagai Tester (sekali lagi, pada dua proyek yang berbeda)
- Tim proyek akan memiliki 3 Dev dan 2 Penguji setiap saat.
- Siklus Peran Anggota harus keluar dari fase dengan 1 iterasi.
- Ini meminimalkan perubahan tim yang mendadak. Untuk setiap iterasi, 2 Devs dan 1 Tester akan tetap sama dengan iterasi sebelumnya.
Mengingat hal di atas, saya melihat Pro dan Kontra berikut:
Pro
- Mendistribusikan pengetahuan proyek di seluruh perusahaan.
- Pastikan anggota tim tidak menguji kode yang mereka bantu tulis.
- Siklus peran di luar fase berarti tidak ada proyek yang pernah memiliki anggota yang beralih 100%.
- Pergantian peran mematahkan monoton proyek yang membosankan.
Cons
- Iterasi kedua proyek sangat erat. Jika satu proyek membatalkan iterasi setengah jalan dan mulai lagi, maka kedua proyek akan tidak sinkron. Ini akan membuat siklus peran sulit untuk dikelola.
- Bergantung pada mempekerjakan Pengembang terbuka bekerja sebagai Penguji juga.
Saya telah menerima tinjauan beragam ketika mendiskusikan pendekatan ini dengan teman dan kolega. Beberapa percaya bahwa beberapa pengembang akan ingin berganti peran seperti ini, sementara yang lain memberi tahu saya bahwa mereka secara pribadi akan senang untuk mencobanya.
Jadi pertanyaan saya adalah: Bisakah model seperti itu berhasil dalam praktik? Jika tidak, mungkinkah itu diubah menjadi model yang berfungsi?
Catatan: Demi singkatnya, saya hanya fokus pada peran Dev dan Tester. Saya akan memperluas peran lain jika diperlukan.