Sanırım ilk fark edeceğim şey çevik olmak ile çevik olmak arasında bir fark olduğu. Çevik teknikleri ve özellikleri yavaşça yaymak - işlevler arası ekipler, uyarlanabilir planlama, evrimsel / artımlı teslimat, zaman çizelgesi yinelemeler ve hatta Lean kavramlarını tanıtmak, Aşırı Programlama, Scrum veya Kristal'i tanıtmaktan çok farklıdır.
Müşteri katılımından açıkça bahsediyorsunuz. Evet, Çevik metodolojilerin birçoğu müşteri katılımını gerektirir, ancak çevik olması gerekmez. Her hükümet / savunma ile ilgili programda, her zaman müşteriyle temas noktası olan bir program veya proje yöneticisine sahiptim. Bu kişi "müşterinin sesi" olur. Telekonferans ya da e-posta ya da arama ve açıklama neticesinde yavaşlayabilir, ancak ekibinizin müşteri temsilcisi olan tek bir kişi (ya da Başbakan yardımcısı varsa bir grup) olabilir. Kuşkusuz, tamamen aynı değil. Fakat esnek olmak ve değişime cevap vermek konusunda çevik olmak değil mi?
Ayrıca birkaç anahtar kavramdan da bahsediyorsunuz: önceden tanımlanmış gereksinimler, "duvarın üstüne atılmış" özellik istekleri, "hepsi önemli" olduğu için önceliklendirme eksikliği ve sabit maliyetli ve / veya sabit zamanlamalı projeler. Bunların her biri farklı şekillerde ele alınabilir.
Tüm ihtiyaçlarınızı önceden karşıladığınızı düşünüyorsanız, şansınız yoktur. Gereksinimler değişiyor. Sadece "bitmiş ve imzalanmış" bir şartnameye sahip olmanız, onun taşa konması anlamına gelmez. İhtiyaç belgeleriniz ne olursa olsun, onları nasıl rahat hissettiğinizi ve / veya sözleşmede belirtilen şekilde yakalayın ve gereksinimleri, tasarımı ve mimariyi sağlayın. Ek olarak, bunlara canlı belgeler olup olmadığına bakın (bugün işteyken gördüğüm tasarım dökümanı Revizyon G olarak etiketlendi, yani 8. güncellemede olduğu). Herhangi bir yinelemede TBD olarak ne kadar bırakabileceğinizi ve şu anda ne kadar sıkılaştırılması gerektiğini sorun - bir şeyler alıp verebilirsiniz.
Belgelerinize çevik olun. "Ekibinizin ne istediği" ile "müşterinin ne istediği" arasındaki çabaları çoğaltmayın. Örneğin, müşteriniz geleneksel bir yazılım gereksinimi belirtimi istiyorsa ve ekibiniz kullanıcı öyküleri kullanmak istiyorsa, geleneksel bir SRS’ye uyum sağlamaya çalışın ve zaman harcamak için kullanıcı öyküleri yerine eylem öğeleri ve bir haddeleme eylemi listesi listesi kullanmaya çalışın "Sistem uygulanmalı ..." ve "Çünkü yapabilmeli" olmalı. Yine de, bu takımlar arasındaki disiplini, projeler arasındaki farklılıklara uyum sağlamak için alır. Yansımalardaki sorunları yakalayın.
Gelişmeye başladığınızda, 5 veya 6 yineleme çalıştırabilir ve ardından uygulamanızı bir alt kümesini görmek için müşterinizi tesisinize davet edebilirsiniz. Bu işlemi durulayın ve tekrarlayın. Bazı metodolojilerin talep ettiği sürekli katılım değildir, ancak yüksek görünürlük avantajına sahipsiniz. Müşteriniz hayır diyorsa, en azından denediniz. Evet derlerse, çevik olmalarını aydınlatabilirsiniz. Çalıştığım bir projede, müşteri siteyi birkaç ayda bir ziyaret etti (genellikle 3-5 ay). QA testinden geçmemizi izlerler, endişeleri mühendislerle tartışırlar ve program / proje ofisi ile iş yaparlar. Herkesin aynı sayfaya girmesi için bir fırsattı.
Test ve bakım, diğer çevik projelerde olduğu gibi gerçekleşir. Test prosedürlerinizi ve doküman kusurlarınızı uygun şekilde oluşturun, sözleşmeden doğan her yükümlülük için metrikleri izleyin ve test sonuçlarını belgeleyin. TDD'yi takip etmek istiyorsanız, devam edin. Sürekli entegrasyon başka bir iyi fikirdir. Proje durumu toplantıları sırasında proje yöneticiniz bu bilgileri “N gereklilikleri uyguladık, M testleri yaptık, X testleri geçti” diyebilir ve paralı insanlara proje sağlığı ve durumu hakkında güncelleme yapabilir.
Paradan bahsederken, sabit maliyet ve / veya sabit zamanlama problemimiz var.
Sabit bir programla başa çıkmak oldukça basittir. Gereksinimlerinize göre, kaç tane yineleme tamamlayabileceğinizi biliyorsunuz. Her yineleme için iş yükünüz, uygulama, test etme ve entegrasyon özellikleri bakımından taşa ayarlanmıştır. Zor olabilir, ancak özellikleri parçalamak ve bunları yinelemelere önceden atamak imkansız değildir. Bu, müşteriyi davet etme konusundaki noktama geri dönüyor - bir yılınız varsa ve 2 haftalık yineleme kullanıyorsanız, belki de müşteriyi üç ayda bir davet edin (ve her üç ayda bir davet edin) ve önceki çalışmanın sonuçlarını gösterin. Gereksinimleri öncelik sırasına, gelecek planlarına ve zamanlamaya nasıl gittiğini görmelerini sağla
Sabit bir bütçe ile baş etmek benzer. Proje için ne kadar zamanınız olduğunu, proje için ne kadar kaynağınız olduğunu, ne kadara mal olduklarını ve dolayısıyla her bir yineleme için kaç saat çalışabileceğini biliyorsunuz. Bu, herkesin bunu dikkatlice takip etmesini sağlama meselesi. Şirketiniz fazla mesai masraflarını yiyebiliyorsa, bunun için gidin. Aksi takdirde, herkesin uygun bir süre çalıştığından emin olun ve herkesi üretken tutmak için iyi zaman yönetimi becerilerini ve zaman boksunu kullanın. Maliyetleri düşürmek için ihtiyacınız olan daha verimli saatler, toplantı masrafları ve ek masraflar olmadan katma değeri yüksek belgeler ve yazılımlar sunar.
Sonuçta, bu mutlaka Çevik olmakla ilgili değil, Çevikliği iyi ve çevik yapan şeyleri uygulamakla ilgilidir. Gereksinimlerdeki değişikliklere cevap verebilme, müşteri istemese de sık yazılım sunabilme, yalnızca katma değer sağlayan belgeler üretme (sözleşmeyle ne şekilde yapmak zorunda olursanız olun).