Çevik, Şelale ve ihtiyaç değişiklikleri


10

Herkes 'Agile' olarak tanımlanan bir projenin bu gereksinim değişikliklerinden ötürü aşılmasını sağladı mı? 4 haftalık Sprint'te yürütülen bir geliştirme projesi üzerinde çalışıyorum ancak bu Sprint'ler arasında her zaman değişiklikler var. O zaman hala Agile olarak mı tanımlanıyor? Bunun bir tür alt Çevik süreç olduğunu hissediyorum - Çevik bir sürecin gereksinimleri bir sprint başlangıcında tanımlanmalı ve sonuna doğru gözden geçirilmelidir. Bunda haklı mıyım? Lütfen bu konudaki deneyimlerinizi bana bildirin.


"Gereksinim değişikliği" gevşek bir terimdir. Değişiklik, müşteri onaylanmış bir gereksinimle ilgili fikrini gerçekten değiştirdiği için mi? Bu değişikliği ne tetikledi? Bu devam ederse, gereksinimleri nasıl topladığınızı yeniden incelemeniz gerekir. Hiçbir SE metodolojisi, uygun şartların toplanamamasına neden olamaz.
NoChance

@Emmad Kullanıcılar, kullanılabilirliğin belirli yollarla iyileştirilebileceğini düşündüklerinde UAT sırasında gereksinim değişiklikleri meydana gelir. Bu, üretim öncesi sorunların oluşmasına neden olur. Bu kesinlikle Çevik değil.
Aravind A

@Aravind A: Sprint sonunda UAT olur, değil mi? Daha sonra UAT sırasında ortaya çıkan yeni fikirler / değişiklikler normalde bir sonraki sprint için hikayeler haline gelmelidir (sprint kullanıyorsanız).
sleske

Belki @sleske'nin önerdiği şey sizin için işe yarıyor, ancak aynı zamanda kullanıcının istisnai gereksinimleri varsa kullanılabilirlik kolaylığı önceden prototiplenebilir. Bazen, kaynaklarla bağlı projelerde, kullanıcı isteklerinizi kontrol etmeniz gerekir.
NoChance

Yanıtlar:


9

Çevik bir sürecin gereklilikleri bir sprint başlangıcında tanımlanmalı ve buna göre gözden geçirilmelidir. Bunda haklı mıyım?

Hayır, bu projenin (ve sürecin) doğasına bağlıdır.

Sprint sırasında gereksinimlerin düzeltilmesi gereken bazı çevik geliştirme modelleri vardır ve sadece bir sonraki sprint için değişmelidir (göze çarpan bir örnek Scrum'dır).

Bununla birlikte, değişikliklerin neredeyse her zaman gerçekleşebileceği süreçler de vardır (müşteri gecikmeleri ve değişikliğin neden olduğu ekstra işi kabul ettiği sürece). Kanban genellikle bu iş akışlarını yönetmek için kullanılır (Kanban Scrum ile de birleştirilebilir).

Hangi modeli izlediğiniz her projenin detaylarına bağlıdır.

Bu nedenle evet, müşteri gereksinimleri sürekli olarak değiştirme olasılığına ihtiyaç duyduğunu hissediyorsa, çevik bir süreç bunu karşılayabilir. Ancak, müşteri sürekli değişikliklerin sonuçlarının farkında olmalı ve projeyi yavaşlatacaklarını anlamalıdır.

Bu, çevik manifestodaki prensiplere dayanır - "Süreçler ve araçlar üzerindeki bireyler ve etkileşimler" ve "Bir planı takip ederek değişime tepki vermek".


Süreci açıkça Çevik yapmıyor mu? Yani, Çeviklik ne kadar ileri gidebilir? Bir geliştirici ilk kez bir gereksinimi karşılarsa, bir dahaki sefere bir talep olması gerekir. Bu kod kalitesi attı neden birçok sorunlardan biri olduğunu hissediyorum.
Aravind A

@AravindA Kod kalitesi ayrı bir endişe kaynağı olmalı ve kodun kaç kez değiştiğine bakılmaksızın, ekip her zaman aynı kod kalite standartlarına odaklanmalıdır. Aslında, kod kalitesi daha önemlidir, çünkü gereksinimler ve kod sürekli değişmektedir.
maple_shaft

2
@maple_shaft doğrudur - kalite (en azından çoğunlukla) gereksinim değişikliğine diktir. Bana bir cevap ver: İyi kod yazmaya başladım. Ben yapılırsa ve yeni bir req veya yarı-tamamlanmış ve bir değişiklik olsun, ben iyi kod yazmaya (yeniden) başlar. Mevcut program / taahhüt / vb üzerindeki etkiyi vurguladıktan sonra .
sdg

Sistemin nasıl yapılandırıldığını büyük ölçüde etkileyen gereksinim değişiklikleri büyük gecikmelere veya kalite tehlikelerine yol açacaktır. Bu nedenle, "ani" görünüm riskini azaltmaya çalıştığınız bazı eski şelale-ish analizlerini (yinelemeli de olabilir) yapmalısınız.
MaR

@sles Açıklama için teşekkürler. Sanırım şimdi anladım. Sanırım Agile'yi daha yakından tanımam gerekecek.
Aravind A

12

Sanırım sormanız gereken soru şudur: Neden gereksinim değişikliklerinden fazla abartılıyorsunuz? Yaygın nedenler şunlardır:

  • Geliştiricilerin son kullanıcılarla (yeterli) temasları yoktur, bu nedenle kullanıcıların ihtiyaçlarını anlayamazlar. Bunun yerine gereksinimleri soyut bir Rubik küpü gibi ele alıyorlar - ruhlarını anlamaya çalışmadan gereksinimlerin harflerini takip ediyorlar
  • Birisi (örneğin pazarlamadan), son kullanıcı için anlamlı olmayan (ancak bir broşürde kulağa hoş gelen) gereksinimler ekliyor. Dolayısıyla, "gerçek" gereksinimler ile geliştiricilerin sırtında "diğer" gereksinimler arasında bir savaş var
  • Projenin kapsamı tanımlanmadı ("Yine de bir kelime işlemci uyguluyorsanız, bordro muhasebemizi yapan küçük bir modül ekleyemez misiniz? Oh ve diğer geliştirme ekibinden Bill bunun ne kadar zor olacağını sordu kelime işlemci C ++ kodu da derlemek için yapmak? ")

Kök sorunu ne olursa olsun, bunu düzeltmeniz gerekir. "Agile" (veya başka bir metodoloji) katmanları altında boğulmak işe yaramaz.


@nike Teşekkürler. Ben de öyle düşünmüştüm. Üçüncü noktan senaryoma uyuyor. Bazı müşteriler işlerin daha hızlı yapılması için gümüş bir kurşun olduğunu düşünerek 'Agile' işinden faydalanırlar.
Aravind A

9

En azından bugünlerde yönetim türleri arasında en popüler olan Çevik süreç gibi görünen Scrum'da bir Sprint kapsamı sabittir. Sprint İş Listeniz sprint sırasında değişiyorsa, bu Scrum değil, kaos. Sprint İş Listesi sprint başlangıcında oluşturulmalı ve sprint sonuna kadar sabit kalmalıdır (bu noktada bir sonraki sprint için yeni bir Sprint İş Listesi oluşturursunuz).

Sprint sırasında Ürün İş Listeniz değişiyorsa, önemli değil. Değişiklikler sadece öncelikli, tahmin edilen ve bir sonraki sprint için herhangi bir gereklilik gibi seçilen yeni bir iş haline gelir. Gereksinimler o kadar çok değişirse, Ürün Sahibi sprint'i düzenli olarak iptal etmek zorunda kalırsa, büyük bir 'T' ile ilgili sorun yaşarsınız.

Belki daha kısa sprintlere ihtiyacınız var?


Daha kısa sprintlere ihtiyaç duyduğunuzda +1. 2 haftaya kadar ölçeklendirin ve yardımcı olup olmadığını görün.
John

1
4 hafta, özellikle ihtiyaç istikrarsızlığı çeken bir projede bir sprint için oldukça uzun görünüyor.
Carson63000

7

Programcıların akıl sağlığı için bir revizyon / sprint sırasında gereksinimlerin değişmemesi en iyisidir.

Durumunuzda, iki belirgin seçenek vardır:

  1. daha kısa sprintler
  2. tüm revizyon / sprint iptal edilmediği ve yeniden planlanmadığı sürece müşterinin bir revizyon / sprint sırasında gereksinimleri değiştirmemesini kabul etmesini sağlayın

Her ikisini de tavsiye ederim .


3

Ana sorun, Scrum kullandığınıza inanmanızdır, ancak kullanmamanızdır. Özellikle ürün sahibiniz bunu takip etmiyor. Scrum'da sprint güvenli bir bölgedir ve geçerli sprint iptal edilmedikçe taahhütlü kullanıcı hikayelerinde değişiklik yapılamaz. Bunu uygulamak Scrum ustasının sorumluluğundadır. Bu, ortamınızda çalışmazsa, bir işlem sorunudur = Scrum kullanmıyorsunuzdur.

Yapabileceğiniz en basit değişiklik (Scrum'ı takip etmek istiyorsanız) sprintinizi kısaltmaktır - örneğin bir hafta. Scrum'ın ilk günlerinde 4 haftalık sprintler seçenek olarak kabul edildi, ancak bugün ortak 1-2 hafta ve 3 hafta üst sınır olarak kabul edildi. Değişen ortamda 4 hafta çok uzun sürüyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.