Saya telah membaca Panduan Scrum dari scrum.org dan tertulis:
Tim Pengembangan tidak mengandung sub-tim yang didedikasikan untuk domain tertentu seperti pengujian atau analisis bisnis.
Dalam terjemahan literalnya ini berarti bahwa tidak ada penguji yang membingungkan. Bagaimana mereka bisa menyarankan ini?
Jawaban:
Ini berarti bahwa:
Penguji terintegrasi ke dalam alat pengembangan tim pengembangan untuk membantu pengembang menguji serta menguji.
atau:
Tim mempraktikkan Test Driven Development - yaitu Mereka menulis tes otomatis yang melatih sistem.
Salah satu dari ini berarti bahwa tidak perlu untuk tim pengujian yang terpisah.
sumber
Ya, ini adalah persis apa yang mereka sarankan. Dengan kata lain - pengembang adalah penguji dan penguji adalah pengembang.
Idenya adalah untuk menumbuhkan kepemilikan dan kualitas kode .
Ini tidak berarti bahwa kode tidak diuji, tetapi bahwa orang-orang yang terlibat dalam penulisan itu adalah orang-orang yang terlibat dalam mengujinya - tidak ada pemisahan tanggung jawab.
Masalah yang coba diatasi oleh pendekatan ini adalah pemisahan yang terlalu umum antara pengembang dan penguji, di mana pengembang akan menulis kode dan "membuangnya ke dinding" ke tim lain dan kemudian bergerak bolak-balik, menunda proyek dan memproduksi perangkat lunak di bawah standar.
sumber
Bagian mendasar dari hal ini adalah bahwa tanggung jawab pembuat kode adalah menciptakan kode yang berfungsi dan memenuhi persyaratan. Ini membutuhkan pola pikir tertentu - "Kode yang saya tulis melakukan apa yang seharusnya dilakukan."
Mencampur tanggung jawab pembuat kode berarti bahwa pembuat kode sekarang diminta untuk memasuki pola pikir lain untuk kegiatan lain, namun, sebagai seorang pembuat kode, sulit bagi seseorang untuk sepenuhnya menceraikan diri sendiri dari pola pikir itu.
Tanggung jawab penguji adalah untuk menemukan bug dan tempat-tempat di mana fungsi mengalihkan dari fungsi yang diperlukan. Ini membutuhkan pola pikir "Kode rusak dan saya akan mencari tahu caranya."
Demikian juga, seorang analis bisnis sedang mencoba mengidentifikasi persyaratan yang sebenarnya diminta pelanggan. Ini membutuhkan pola pikir lain dari "aplikasi tidak bekerja seperti ini, tetapi seharusnya."
Bagi seorang pembuat kode untuk bekerja dalam kapasitas-kapasitas lain mana pun, ada kemungkinan yang masuk akal bahwa pola pikir akan bertentangan dan pembuat kode akan melakukan sub-par:
Ini bukan untuk mengatakan bahwa setiap pembuat kode rentan terhadap masalah ini (saya telah memenuhi beberapa jenis pembuat kode / QA yang sangat berbakat ... meskipun tidak untuk kode yang mereka tulis).
Ini meluas hingga ke tim pengembangan juga. Mencampur tanggung jawab dan pola pikir yang terkait dari tanggung jawab tersebut untuk tim pengembangan kompromi produk akhir (kode).
sumber
Dikatakan tidak ada sub- tim yang didedikasikan untuk pengujian. Itu tidak berarti tidak ada tes yang dilakukan sama sekali. Ini hanya berarti bahwa anggota tim akan melakukan pengujian mereka sendiri, dan sering menguji kode / fitur orang lain. Saya tidak begitu akrab dengan metodologi scrum, tapi saya akan mengambil risiko dan mengatakan bahwa klien juga mungkin terlibat dalam pengujian.
sumber
Saya pikir ini sebagian berarti Anda diharapkan untuk menulis tes untuk kode Anda sendiri sehingga Anda tahu itu berfungsi (jika tidak, Anda belum benar-benar menyelesaikannya) dan sebagian bahwa Anda mungkin diharapkan menjadi penguji untuk kode orang lain kadang-kadang .
Daripada membiarkan orang untuk menurunkan pekerjaan kualitas perangkat lunak ke orang lain dan mengabaikannya, ini memaksa semua orang untuk memikirkan kode yang mereka tulis dari perspektif kualitas sepanjang waktu, jadi itu ide yang bagus.
sumber
Pernyataan ini pada dasarnya berusaha untuk menghindari kerja diam. Salah satu bagian dari solusi untuk ini adalah praktik-praktik seperti - Pengembangan Berbasis Tes - Pemrograman Pair - Permintaan Tarik - Tes otomasi dan sejenisnya yang semuanya menjadikan pengujian sebagai bagian intrinsik dari proses pengembangan daripada sesuatu yang dilakukan secara terpisah baik di samping maupun di samping. 'setelah'.
Selain itu, ada pembicaraan yang sangat terbatas tentang peran dalam Panduan Scrum. Bahkan, mereka berbicara tentang Tim Pengembangan. Maksudnya adalah Anda menginginkan tim lintas fungsi yang kuat. Ini berarti bahwa tergantung pada apa yang dibutuhkan proyek Anda, Anda memerlukan berbagai keterampilan, seperti UX, BA, QA / Tester, Ops, Coder, dll. Tetapi apakah ini satu atau banyak individu yang meliput ini, tidak masalah.
Tim saya bekerja dengan pasti memiliki QA sebagai peran, karena kami memiliki orang-orang DevOps. Tetapi mereka semua juga Dev, hanya dengan spesialisasi di bidang ini. Triknya adalah tidak jatuh ke silo dan bekerja dalam isolasi.
sumber
Itu tidak selalu berarti tidak ada penguji. Mungkin saja tim Scrum memiliki penguji yang berdedikasi atau tidak.
Bagi saya, apa arti pernyataan tentang Scrum ini adalah Anda harus memikirkan seluruh jalur pengiriman sebagai satu tim. Menjadi bagian dari tim yang sama menyarankan beberapa hal:
Jika mereka bekerja bersama satu tim, maka tim berhasil bersama dan gagal bersama. Saya telah berada di tim Scrum yang sangat sukses yang memiliki beberapa penguji. Penguji hadir selama semua standup, sesi perawatan, perencanaan, dll. Jika tidak jelas bagaimana menguji sebuah cerita, tim tidak akan berkomitmen untuk itu. Kami selalu berbicara dengan penguji saat memperkirakan.
Tanda-tanda potensial Anda mungkin tidak benar-benar memperlakukan penguji sebagai bagian dari tim pengiriman, bahkan jika Anda berpikir Anda melakukannya:
Ini subjektif dan tidak selalu salah. Mereka adalah bendera merah, menurut saya.
Semua ini mengatakan, sangat mungkin untuk memiliki tim Scrum tanpa siapa pun yang memiliki peran sebagai penguji. Itu bisa bekerja dengan baik juga. Terutama jika Anda mengotomatisasi pengujian. TDD juga membantu.
sumber