Sebuah organisasi dengan sejumlah tim Scrum yang gesit juga memiliki sekelompok kecil orang yang ditunjuk sebagai "arsitek perusahaan". Grup EA bertindak sebagai kontrol dan penjaga gerbang untuk kualitas dan kepatuhan terhadap keputusan. Hal ini menyebabkan tumpang tindih antara keputusan tim dan keputusan EA.
Misalnya, tim mungkin ingin menggunakan pustaka X atau ingin menggunakan REST alih-alih SOAP, tetapi EA tidak menyetujuinya.
Sekarang, ini dapat menyebabkan frustrasi ketika keputusan tim ditolak. Diambil cukup jauh, ini berpotensi menyebabkan situasi di mana orang-orang EA "merebut" semua kekuatan dan tim akhirnya merasa terdemotivasi dan tidak terlalu gesit sama sekali.
Panduan Scrum mengatakan ini tentang hal itu:
Pengorganisasian sendiri: Tidak seorang pun (bahkan Master Scrum) memberi tahu Tim Pengembangan cara mengubah Product Backlog menjadi Peningkatan fungsi yang berpotensi untuk dirilis.
Apakah itu masuk akal? Haruskah tim EA dibubarkan? Haruskah tim menolak atau sekadar mematuhi?
Pilihan teknologi yang digunakan adalah bagian dari persyaratan perangkat lunak, yang berarti bagian dari permintaan fitur yang tidak Anda gunakan teknologi tertentu, untuk alasan apa pun.
Arsitek berbicara untuk sistem dan basis kode karena sistem dan basis kode tidak dapat berbicara sendiri. Memiliki seorang arsitek pada umumnya dalam kepentingan jangka panjang terbaik sebuah perusahaan, terutama yang bergantung pada perangkat lunak yang dibangun di rumah.
Arsitek tidak memberi tahu pengembang cara mengubah tumpukan menjadi peningkatan (sprint), mereka mengatakan teknologi mana yang bisa dan tidak bisa digunakan. Anda sedang menyatukan dua masalah berbeda.
Solusinya adalah tidak mengubah apa pun. Jika tim Anda menjadi frustrasi karena arsitek terlalu ketat atau terlalu sombong, itu masalah personil yang tidak ada hubungannya dengan SCRUM dan harus diambil dengan para pemangku kepentingan bisnis sebagai masalah kepuasan karyawan dan, jika mungkin, garis bawah ("Kami membutuhkan waktu
x%
lebih lama untuk mengembangkan fitury
karena arsitekz
tidak akan membiarkan kami menggunakan Turbo Pascal.")sumber
Hal semacam ini diperlukan untuk menjaga keseimbangan antara kebutuhan tim besar untuk menyelesaikan proyek, dan kebutuhan untuk menjaga tim tangkas kecil.
Secara umum, 'tim lead scrum' terdiri dari satu anggota yang dipilih dari masing-masing tim yang lebih kecil. Itu memberikan beberapa sifat mengatur diri sendiri, serta memberikan beberapa cara representasi sehingga keputusan yang dibuat oleh kelompok tingkat tinggi diterima oleh kelompok gesit.
Untuk skenario khusus Anda, sesuatu harus dilakukan untuk menghentikan penurunan motivasi tim tangkas, tetapi mungkin bukan pemberontakan atau penerimaan sederhana. Tim perlu menyadari bahwa Anda di sana untuk membuat perangkat lunak yang baik, bukan untuk mencapai cita-cita. Memiliki sekelompok tim yang berbeda masing-masing menggunakan teknologi yang berbeda untuk melakukan hal serupa dalam proyek yang sama akan mengarah pada perangkat lunak yang lebih buruk. Memiliki banyak tim yang berbeda menggunakan standar pengkodean yang berbeda dalam proyek yang sama akan mengarah pada perangkat lunak yang lebih buruk.
Jadi, Anda perlu beberapa cara untuk mencapai konsensus tentang bagaimana proyek ini akan bekerja. Scrum tim memimpin digunakan di tempat lain secara efektif. Anda mungkin perlu melakukan sesuatu yang berbeda, atau melihat mengapa kelompok Anda tidak melakukannya secara efektif.
sumber
Pertanyaannya adalah: Apa alasan mengapa tim Arsitek ini ada? Satu-satunya alasan yang dapat saya pikirkan adalah untuk menegakkan interoperabilitas antara berbagai tim. Atau tim bekerja pada berbagai bagian produk tunggal dan tim arsitek ini ada untuk menjaga setiap bagian bekerja bersama.
Saya benar-benar tidak berpikir skema ini dapat bekerja dengan baik di lingkungan yang gesit, untuk alasan yang tepat Anda katakan. Berbagai tim harus mandiri dan karenanya harus menjadi input dan output mereka. Jadi membatasi output mereka seharusnya hanya sebagai bagian dari persyaratan input. Tetapi kendala itu harus masuk akal. Sesuatu seperti "Harus tidak menggunakan perpustakaan X" bukanlah persyaratan yang baik, tetapi mengatakan "Harus membatasi jumlah perpustakaan pihak ke-3 yang digunakan ke minimum" atau "Menambahkan perpustakaan baru, yang tidak digunakan di tim lain harus dibatasi." harus baik-baik saja.
Lalu saya akan membubarkan tim arsitek di semua tim dan menggunakan keahlian mereka dalam masalah arsitektur. Dengan menjadi bagian dari tim, mereka akan dapat melihat masalah dengan lebih baik dan mungkin memiliki ide yang lebih baik atau pendapat yang lebih terdidik tentang mengubah bagian inti arsitektur. Ini juga harus didorong untuk arsitek di seluruh tim untuk berkomunikasi untuk memastikan arsitektur tetap konsisten di seluruh tim.
sumber
Kelompok di Scaled Agile Framework berbicara dengan sangat baik. Sebagian besar dari kita berurusan di Tingkat Tim, tetapi ketika meningkatkan kita perlu menyadari bahwa ada peran yang harus dimainkan di tingkat Program dan Portofolio. Keputusan arsitektur perlu dibuat di seluruh organisasi, dan itu harus memberi makan apa yang terjadi di tingkat bawah organisasi. Tidak ada yang salah dengan keputusan arsitektur!
Terkait dengan ini, buku terbaru Dean Leffingwell tentang Persyaratan Perangkat Lunak Agile adalah bacaan yang bagus tentang topik ini, saya telah membacanya sendiri.
sumber
Kami juga memiliki banyak, tim lincah (beberapa melakukan Kanban, beberapa Scrum), dan arsitek. Arsitek bertanggung jawab untuk infrastruktur yang mencakup semua produk kami (perpustakaan pembantu, otentikasi, membangun infrastruktur) dll. Mereka membuat keputusan teknis, tetapi juga menerapkan hal-hal, sebagian besar komponen infrastruktur.
Ini bekerja dengan baik, dan biasanya tidak ada konflik. Saya percaya satu poin penting adalah:
Arsitek tidak memiliki otoritas formal atas tim, dan tidak bisa begitu saja menolak mereka. Biasanya, arsitek membuat keputusan yang berlaku untuk semua produk, dan tim membuat keputusan untuk produk mereka. Jika ada konflik, maka arsitek & tim hanya perlu mencapai kesepakatan, atau naik ke manajemen (meskipun itu jarang terjadi).
Saya pikir sangat penting untuk membuat arsitek dan pengembang menjadi rekan. Keduanya bekerja menuju tujuan bersama, hanya di bidang yang berbeda. Jika tidak ada yang bisa "menolak" yang lain, kerja sama akan lebih baik.
sumber
Saya tidak melihat konflik di sini. Dari apa yang saya mengerti, semua EA (sebagai judul sombong saya pikir itu) dimaksudkan untuk dilakukan adalah QA. Semua orang harus sadar akan hal itu.
Anda harus mempertimbangkan, bahwa dalam metodologi pengembangan apa pun (yang layak dianggap sebagai salah satu) persyaratan pengumpulan adalah langkah penting, apakah itu berulang atau dimuka.
Beberapa persyaratan ini diatur oleh kebijakan perusahaan. Dan ini menetapkan aturan dasar:
Namun demikian, suatu persyaratan terpenuhi atau tidak. Jika tekad itu sulit untuk dibuat, maka persyaratannya kurang dan Anda perlu mengulanginya untuk menjadi benar-benar dapat diuji (dalam arti yang lebih luas). Anda harus mengatasinya seperti pengulangan persyaratan.
sumber
Arsitek Anda tidak boleh mengesampingkan keputusan yang dibuat oleh tim tangkas Anda. Arsitek Anda harus memasukkan ini dalam persyaratan / cerita yang diteruskan ke tim. Mereka harus terus memperbarui tim ketika lanskap proyek berubah & persyaratan interoperabilitas baru diperkenalkan.
Arsitek memberikan perintah dan memeriksa keputusan teknis adalah cacat budaya. Mereka melihat diri mereka sebagai "bos" daripada sekadar mempertahankan tujuan / visi bersama & menjaga tim yang terpisah pada halaman yang sama. Metodologi tangkas didasarkan pada komunikasi & kontak. Ketika arsitek Anda tidak terlibat sampai setelah keputusan dibuat, mereka gagal tangkas.
sumber
Martin, saya pikir Anda mungkin memiliki kesalahpahaman tentang bagaimana fungsi tim yang mengatur diri sendiri di lingkungannya.
Anda mengutip Panduan Scrum: "Tidak seorang pun (bahkan Master Scrum) memberi tahu Tim Pengembangan cara mengubah Product Backlog menjadi Peningkatan fungsi yang berpotensi untuk dirilis."
Ini bukan lisensi untuk tim Scrum untuk melakukan apa pun yang diinginkannya (asalkan diberikan) tanpa memperhatikan teknologi dan kebutuhan bisnis perusahaan secara keseluruhan, dan kebutuhan tim lain.
Tentu saja para pemangku kepentingan dapat menyalahgunakan pengaruhnya. Itu adalah salah satu tantangan kolaborasi, dan tentu saja tidak terbatas pada EA. Tetapi kolaborasi tidak berakhir di batas tim.
sumber
Waterfall atau Scrum (ini sepertinya mencampur dua, yang ya, tidak akan berhasil), yang kedengarannya seperti lapisan manajemen yang tidak ada gunanya bagi saya sejak awal. Gatekeeper pada keputusan teknologi harus menjadi pemimpin dev, manajer pengembangan keseluruhan yang tugasnya harus menjaga preferensi dev dari mengubah aplikasi Anda menjadi hydra pilihan teknologi, dan siapa pun anggaran harus membayar tagihan potensial.
Tidak ada yang terus mengejutkan saya seperti non-devs yang benar-benar memiliki keberanian untuk membuat keputusan teknologi tanpa berkonsultasi dengan orang-orang yang harus menanggung konsekuensi dari keputusan itu.
sumber