Bir sprint sırasında ne sıklıkla serbest bırakılır? Yalnızca sprint sonunda veya her özellik hazır olduğunda. Ve bugfix sürümlerini nasıl halledeceksiniz?
Bir sprint sırasında ne sıklıkla serbest bırakılır? Yalnızca sprint sonunda veya her özellik hazır olduğunda. Ve bugfix sürümlerini nasıl halledeceksiniz?
Yanıtlar:
TL; DR: Uygun olduğunda serbest bırakın
Bir sürüm yapmanın değeri olduğunda sürümler yapıyoruz. Bazen bu, tek bir özellik veya hata düzeltmesi tamamlandıktan sonra yayın yapmak anlamına gelir. Bazen bu, bir dizi özellik ve / veya hata düzeltmesi yayınlamak anlamına gelir.
Bu, sıklıkla hızlı sürümler gerektiren "acil durumlar" olduğu anlamına gelmez. Bu, sürümleri kolaylaştırmak için çok çalıştığımız anlamına geliyor. Kodumuz her yapıda test edilmiş, etiketlenmiş ve paketlenmiştir. Otomatik kabul testlerini kullanıyoruz ve sonuç olarak testlerden geçen koda yüksek miktarda güven geliştirdik. Paketlerimiz yerel bir yum repo aracılığıyla hemen kullanılabilir olduğundan, bir sürümü dağıtmak önemsizdir.
Asla sırasında. Bu bir "sprint" in temel öncülünü ihlal eder. Bitirmeyi taahhüt ettiğiniz şeyi bitirene kadar koşuyorsunuz. Bitirdikten sonra gerçekten bitti ve gerçekten işe yarıyor. Daha sonra serbest bırakabilirsiniz.
Serbest bırakma, şeylerin serbest bırakılmak üzere paketlendiği ayrı bir sprint türü olabilir.
Bugfix sürümleri sadece kısa sprintler olabilir. Aynı uzunlukta sprintlerin düzenli bir programına sahip olmamak, birçok kişi tarafından kötü bir fikir olarak kabul edilir. Bu nedenle, genel kural, hata düzeltmelerinin bir sonraki sprint sırasında gerçekleşen yüksek öncelikli çalışma olmasıdır .
Acil bir durum söz konusuysa, devam etmekte olan çok fazla şey var - destek ve geliştirme - ve daha az şey olacak şekilde kuruluşu değiştirmeyi düşünmelisiniz.
Ekibin taahhüt ettiği çalışma sürat içinde birden fazla sürüm yapmaya elverişli ise, istediğiniz sıklıkta bırakın.
Aynı şey kusur düzeltme sürümleri için de geçerlidir - eğer bunları salıvermek mantıklıysa, bunu yapın.
Çalıştığım son Çevik işte her sprint çıktı; kod iki Perşembe günü (iki haftalık sprintler) donduruldu ve daha sonra ürün paketlendi ve müşterilerimizin çalışması için bir UAT sunucusunda yayınlandı. Bu ürünün ilk gelişimi sırasındaydı; olgun bir ürün, özellikle de bir web uygulaması değil, dağıtılabilir bir program için, kullanıcılarınızı her iki ila üç haftada bir yükseltme ile yükümlemek istemezsiniz.
Neredeyse tüm sürümlerimiz, hikaye noktaları ve kusurların (hataların) bir karışımını içeriyordu. "İdeal olmayan saatler" olarak sayılan hatalar; bir iş gününde 5 ideal saat vardır, yani yeni nokta çalışmasının baş aşağı kodlaması. Günde diğer üç ila dört saat, toplantılar, tartışmalar, tasarım, bazen "ani artışlar" (odaklanmış araştırma / kavram kanıtı geliştirme) ve kusur çalışmasıdır; daha iyi bir ürüne katkıda bulunan ve sürecin gerekli bir parçası olan, ancak tüm ekibin tüm sprint'lerini alamayan şeyler. Yalnızca kusurlu sürümler yaptığımız tek zaman, bir IPM olarak biriktirme listesinde hiçbir hikaye noktası çalışmasının bulunmamasıydı; daha sonra "olabildiğince çok kusuru öldürmemiz" talimatının verildiği bir KG sprint'i planladık. İhtiyaç duymaya hazır olmamaları HER ZAMAN PO'nun hatası (ve PO müşteriler için çalıştı) olduğundan, bir sözleşme değişikliği bildirimi yayınlayabilir ve sahip olduğumuz şeyle çalışabiliriz. Tabii ki, bir kez gerçek hikaye çalışması bitti ve biz "garanti" geliştirme içine, kusurları vardı tüm.
İyi yönetilen bir Agile projesinde, gereksinimlerin tükenmesi asla gerçekleşmemelidir; iş listesi her zaman bir sürat koşusu almaya hazır olmalıdır. Ancak, bazen PO, üretim gereksinimlerini bastırır; bazen BA'lar / test uzmanları, gereksinimlerin kalitesi veya hikaye çatışmalarıyla ilgili nedenlerden ötürü, geliştirme birikimine hikayeler yayınlarlar; bazen bir takım iyi tanımlanmamış veya iyi tahmin edilmemiş bir hikayeye "vurmak" gerektiğine karar verir ve kalan döngüleri kolayca alabilecek bir şey yoktur. Kısacası, Agile'de bile, bok olur.
Serbest bırakmakla ne demek istiyorsun? PSP - muhtemelen sevk edilebilir ürün demek istiyorsanız iki seçeneğiniz vardır:
Seviye 2 ve seviye 3 arasındaki temel fark, seviye 2'de sprint sonunda nihai PSP yapmak için biraz çaba sarf etmeniz gerekir, ancak seviye 3'te başlangıçta araçlarınıza ve konfigürasyonlarınıza biraz para ve çaba harcarsınız ve PSP hazırlanır her zaman otomatik olarak = manuel çaba gerektirmez. 3. seviyeye tam ulaşmak nadirdir.
Scrum'da yeni özelliklerin ne zaman dağıtılacağı konusunda kesinlikle hiçbir kural yoktur. Her takımın testle ilgili bazı kriterleri içermesi gereken bir "tamamlanmış tanımı" olması gerekir. Bir özellik "tamamlandığında", gerçek dünya için hazırdır ve konuşlandırılmadan önce karşılanması gereken başka bağımlılıklar veya koşullar yoksa, Sprint'in sona ermesini beklemek için bir neden yoktur. dağıtın.
Bunların hiçbiri Sprint İnceleme / Planlama toplantısında sunulmadığı anlamına gelmez. Kavram, Ekibin tamamladığı her şeyin PO'ya (ve diğer müşteri KOBİ'lerine) gösterilmesidir, böylece sistemi geliştikçe sistem hakkındaki artan anlayışlarına dahil edebilirler.
Birkaç hafta sonra ihtiyaçlarımıza uygun iyi bir çözüm bulduk. İstediğimiz zaman serbest bırakmaya karar veriyoruz. Bunu nasıl yapıyoruz:
Bu kadar. Git ve maven'i CI sistemi olarak kullanıyoruz ve iyi bir test kapsamımız var. Böyle yapabilmemizin sebeplerinden biri de budur.
Neredeyse 2 yaşında olan bir soruyu cevaplamak biraz gereksiz olabilir, ancak umarım bu soruya gelenler için değer katmak için 2 cent veya daha fazla eklemek isterim. :)
Soruyu cevaplamak için: Tercihen sprint'te taahhüt edilenleri, sprint sonunda serbest bırakmalısınız. Bunu yapmak, doğru zamanda en iyi iş değerini elde etmeye yönelik diğer tüm parça / süreç / scrum kılavuzlarıyla bağlantı kurar.
AMA acil durumlar, hatalar, beklenmedik olaylar vb. Elinizi zorlayabilir. "Sürüm Planlaması" ile şelale tipi planlama demek değil, sprint'lerdeki ürün birikimini ve öykülerin önceliğini yönetmeye yardımcı olabilecek beklentilerin planlanması demek istiyorum.
Ama belki de David'in soru hakkındaki yorumu en iyi düşünülmesi gereken bir şeydir. Scrum her zaman doğru cevap değildir.