Çevik veya Aşırı Programlama bağlamında sözü geçen kaynaşmayı duydum . Eşleştirmenin bir tamamlayıcısı gibi görünüyor.
Tam olarak nedir? Ne zaman uygulanmalı? Nasıl iyi yapıyorsun?
Çevik veya Aşırı Programlama bağlamında sözü geçen kaynaşmayı duydum . Eşleştirmenin bir tamamlayıcısı gibi görünüyor.
Tam olarak nedir? Ne zaman uygulanmalı? Nasıl iyi yapıyorsun?
Yanıtlar:
Fikir, ekibinizdeki herkesin aynı anda aynı hikaye üzerinde çalışması. Herkes farklı görevlere odaklanmak yerine, herkes tamamlanana kadar bir seferde bir göreve odaklanır. Sonra birlikte çalışacakları bir sonraki şeye geçerler.
Bu, sprint bitmeden hikayeleri tamamlamada mücadele eden takımlara yardımcı olur. Genellikle takımlar tüm hikayelerin% 80'ini bitirir, ancak hiçbiri tamamlanmaz. Bu, bitmemiş hikayelerin bir son kullanıcı için hiçbir değeri olmadığı için hikayelerin% 80'ini tamamen bitirmekten daha az faydalıdır. Takımdaki herkes aynı anda bir hikayeye odaklandığında hikayelerin tamamlanması daha kolaydır. Bu, kaynaşmanın arkasındaki motivasyondur.
Burada bazı zorluklar var. Örneğin, KG her zaman bir şeyi inşa edilmeden (veya hatta tasarlanmadan) test edemez. Bu durumda, önceden bir tasarım hazırlamanız gerekir ve daha sonra KG, asıl uygulamaya değil tasarıma karşı (başlangıçta başarısız) testler yazabilir.
Bağırmak, birden fazla kişinin bir görevi veya hikayeyi tamamlamak için birlikte çalışması gerçeğini ifade eder. Tecrübelerime göre bu sık sık yaptığın bir şey değil.
Genellikle ekibimin her üyesi farklı bir görev ve / veya farklı bir hikaye üzerinde çalışır. Birisi geride kalıyorsa veya bir görevi veya hikayeyi erken bitirmek arzusu varsa, diğer insanlar başka görevler üzerinde çalışmayı bırakacak ve görevi tamamlamak için “sürecek” olacaktır; bu, onların hepsi tek bir görev veya hikaye üzerinde birlikte çalışacakları anlamına gelir. tamamlandı.
Son zamanlarda, oldukça sıkıcı, ilginç olmayan bir iş olan az sayıda öykümüz vardı. Takıma küçük bir teşvik (pizza) ve son gün (günün sonunda) verdim, bu yüzden hikayeye sızdılar ve bir öğleden sonra en az birkaç gün çalışmayı bıraktılar. İşi yaptılar ve erken çıkardılar, sonra her ekip üyesi çalıştıkları her şeye geri döndü. Bedava öğle yemeği aldılar, donuk doğası nedeniyle sürüklenebilecek işleri erken yaptım ve ekip onların sprintlerinin önüne geçti. Win-win-win.
“Swarming”, “hey, size yardım etmemize izin verin” için süslü bir terimden başka bir şey değildir.
Bağırmak aslında çeviklik için merkezi bir kavramdır. “Sorun olduğunda” yapılan bir şey değildir. Yutmak, en basit haliyle, ekiplerin eşyalar üzerinde (hikayeler) işbirliği içinde çalışması ve tamamlanması için çalışması anlamına gelir. Temel kavram "başlamaktan vazgeçme ve bitirmeye başlamak" tır. Başka bir deyişle, bağımsız olarak bir hikaye üzerinde çalışan her geliştirici yerine, ekip birlikte daha sınırlı bir dizi öykü / görev üzerine odaklanır ve her bir öğeyi daha erken tamamlar. Tek iş parçacıklı bir sistem ve çok iş parçacıklı arasındaki fark olarak düşünün. Bir Kullanıcı Öyküsünün yapılması gereken 10 görevi varsa ve her biri 8 saat sürüyorsa, herhangi bir komplikasyon olmadığı varsayılırsa, bir geliştirici her bir görevi sıralı olarak çalıştırabilir ve öyküyü 80 saat veya yaklaşık iki haftada tamamlayabilir (10 günlük sprint verildiğinde) günde 8 dev saat). İki geliştirici görevleri bölüp aynı anda çalıştıysa ne olur? Aynı 80 saatlik çalışma bu şekilde bir haftada tamamlanabilir. Üçüncüsü ekleyin ve artık 3 ila 4 gün içinde yapılabileceğini görebilirsiniz.
Kaynaşma birkaç şekilde yapılabilir:
Her geliştiriciye bir hikaye veren ekipler, çok fazla "devam eden iş" veya WIP'e sahip olma eğilimindedir ve çoğu zaman pek çok hikaye başlar fakat yapılmaz. Bu bir ANTI-PATTERN ve en iyi uygulama değil.
Sürüdeki ekipler daha az WIP'ye sahip olma ve daha fazla hikaye tamamlama eğilimindedir - yani, demek istediğim, Geliştirilmiş, Test Edilmiş, Onaylanmış, konuşlandırmaya hazır. Dolayısıyla bu bir pratiktir, çevikliğin özü budur.
InfoQ ile ilgili aşağıdaki makalede , kaynaşmaya bir yaklaşım açıklanmaktadır:
Ayrıntılı açıklama için makaleyi okuyun.