Definisi "Selesai" dalam kasus beberapa Tim Pengembangan bekerja pada produk yang sama

12

Salah satu tes scrum berisi pertanyaan tentang definisi terbaik yang menggambarkan "Selesai" ketika beberapa tim pengembangan melakukan pekerjaan pada produk yang sama.

Jawaban yang tepat menyatakan bahwa tim pengembangan tersebut harus memiliki definisi "Selesai" yang dapat membuat pekerjaan gabungan mereka berpotensi untuk dirilis.

Yang tidak jelas bagi saya dari jawaban yang tepat untuk kuis ini, adalah:

  • dapatkah tim memiliki definisi "Selesai" yang berbeda? Sejauh mana?

sumber
Pikirkan sebuah tim yang secara langsung merilis produk serta pekerjaan yang sama yang digunakan oleh tim lain.
Ian
Atau misalnya versi bahasa Inggris dari perangkat lunak dapat dikirimkan sebelum diterjemahkan ke dalam bahasa Prancis ,.
Ian
Kebingungan semacam ini adalah mengapa saya tidak pernah mengatakan apa pun dilakukan. Sebaliknya saya selalu mengatakan apa yang kami lakukan. Memutuskan apakah sesuatu dilakukan adalah negosiasi. Bukan deklarasi. Terlepas dari definisi apa yang Anda ikuti.
candied_orange

Jawaban:

16

Ketika semua tim mendefinisikan "Selesai" dengan cara yang memperhitungkan pekerjaan akun yang diselesaikan oleh tim lain, maka Anda memastikan fungsionalitasnya selesai.

Jika setiap tim mendefinisikan "selesai" secara berbeda dan hanya berharap tim lain tahu tentang definisi itu, Anda akan mengalami beberapa masalah:

  • Ketika masalah integrasi muncul, tidak ada tim yang mau bertanggung jawab untuk memperbaikinya. Lagipula, itu "selesai" ketika mereka mulai mengintegrasikan berbagai hal, jadi pasti ada sesuatu dengan pekerjaan tim lain.

  • Ketika Anda memiliki lebih dari beberapa tim, menjadi sulit untuk mengingat "definisi selesai" semua orang - terutama ketika ada perbedaan antara tim.

  • Definisi selesai tidak dijamin untuk memasukkan bahwa pekerjaan integrasi berfungsi dengan baik.

Jawaban yang diterima dengan jelas menyatakan bahwa segala sesuatu tidak dilakukan sampai pekerjaan dari semua tim terintegrasi dan berfungsi dengan baik. Itu harus dapat dirilis, dan dengan demikian mampu diterima oleh pengguna akhir secara keseluruhan.


Edit dalam menanggapi komentar: Ini tidak berarti setiap tim memiliki definisi selesai yang sama. Ini berarti bagian dari definisi setiap tim yang dilakukan adalah sistem yang lebih besar dan komponen pengintegrasian lainnya tidak rusak.

Greg Burghardt
sumber
Saya mohon maaf, tetapi bagi saya tampaknya jawaban yang benar tidak mengatakan apa-apa tentang definisi tunggal "Selesai". Selain itu, saya tidak yakin bahwa kekhasan integrasi harus dimasukkan di dalamnya. Katakanlah jika dua tim sama-sama bekerja pada implementasi yang sama sekali berbeda dari API yang sama yang didedikasikan untuk pelanggan yang berbeda? Namun secara formal mereka masih mengerjakan produk yang sama.
2
@Andremoniy, jawaban yang benar memang tidak mengatakan apa-apa tentang DoD tunggal , tetapi itu berarti DoD semua tim harus memiliki elemen umum bahwa produk keseluruhan tetap berfungsi. Contoh Anda tentang berbagai tim yang mengerjakan implementasi API yang berbeda tidak meyakinkan saya bahwa itu bisa disebut produk tunggal.
Bart van Ingen Schenau
2
@Andremoniy, segera setelah satu tim bergantung pada pekerjaan tim lain, masalah integrasi dapat (akan) terjadi, bahkan jika komponen dikerahkan ke lokasi yang berbeda. Ini juga merupakan masalah integrasi, misalnya, ketika satu layanan mikro menggunakan layanan mikro lainnya dengan cara yang tidak terduga, mungkin salah.
Bart van Ingen Schenau
2
@Andremoniy: Anda benar bahwa kedua tim tidak boleh menggunakan DoD yang sama, tetapi mereka dapat berbagi aturan bahwa setiap perubahan tidak boleh berdampak negatif terhadap tim lain (yang sebagian besar akan memicu jika pekerjaan melibatkan perubahan pada antarmuka dengan punggung) server -akhir).
Bart van Ingen Schenau
1
@Andremoniy: Terima kasih atas komentar Anda. Saya telah memperbarui jawaban saya untuk mengatasi beberapa masalah yang Anda kemukakan.
Greg Burghardt
6

Saya bisa membayangkan sebuah situasi, di mana satu tim mendefinisikan "Selesai" sebagai "Pengembangan Selesai" (yaitu kode digabung untuk repo) sementara yang lain mendefinisikannya sebagai "Pengujian Selesai" (yaitu kode dirilis ke Q / A dan diuji).

Ini secara inheren akan menyebabkan masalah serius karena keseluruhan kondisi produk sebagian besar tidak terdefinisi dan karenanya akan sulit untuk mengatakan apakah kita benar-benar dapat melepaskannya atau tidak.

Pawel Gorczynski
sumber
Apakah Anda menganggap jawaban yang tepat sebagai jawaban bahwa semua tim harus memiliki definisi yang sama?
Ya, saya setuju bahwa harus ada definisi umum untuk alasan sederhana - Sebuah proyek yang kompleks dapat dianggap sebagai struktur pohon di mana sub-proyek (misalnya layanan mikro) membangun produk keseluruhan (misalnya MyCool ERP). Jadi pada saat tertentu, Anda ingin tahu apakah versi baru dari produk dapat dirilis. Tetapi jika Anda memiliki DoD yang berbeda untuk subkomponen tertentu, maka informasi ini menjadi sangat sulit untuk disimpulkan.
Pawel Gorczynski