Bir Scrum ekibi planlama toplantısındaki altyapı görevlerini nasıl hesaplar?


33

Bir Scrum ekibi planlama toplantısındaki geliştirme / altyapı görevlerini nasıl hesaplar?

İlk bakışta, son kullanıcı değeri sunmadıkları için kullanıcı hikayeleri gibi gözükmüyorlar.

Ancak, bunları belirli bir kullanıcı hikayesine görev olarak eklemek bazen bir anlam ifade etmiyor. Örneğin, görevin: "Bambu Kurulumu" olduğunu söyleyin. Bu görevin, herhangi bir kullanıcı hikayesini tamamlaması gerekmez, çünkü ekip el ile oluşturabilir ve dağıtabilir. Bu nedenle, bir kullanıcı hikayesine eklemek, bu görevi kullanıcı hikayesini tamamlamak için gerekli olmadığından bir anlam ifade etmiyor.

Öyleyse, bu, bu görevlerin kullanıcı hikayeleri haline geldiğini gösteriyor. Ancak, eğer ekip hikayesi onları işaret ederse, bu, Ürün Sahibinin, bir dizi teknik kullanıcı hikayesi eklenmiş olan birikimine karşı değil, biriktirme sırasına karşı olan hızı bilmek istediğinden beri tuhaf olan hızı değiştirir.

Yanıtlar:


25

Aslında kullanıcı hikayeleri değiller. Onlar paydaş hikayeleri. Yazılım aslında kullanıcılar tarafından doğrudan ödenmediği sürece, tamamen kendi yararına bir hikaye oluşturulması nadirdir.

Size birkaç örnek vereceğim:

  • reklamverenlerin daha etkili reklamlara sahip olmalarını sağlayan anahtar kelimeli makaleler
  • Moderatörlerin spam ile manuel olarak uğraşmalarını durdurmak için orada bulunan CAPTCHA'lar.

Teknik hikayelerin çoğu aslında bir ticari fayda sağlar, ancak bu kullanıcılar için nadiren olur. Onları farklı bir şekilde ifade etmek yardımcı olabilir. Normalde Chris Matts 'Özellik Enjeksiyon şablonunu kullanıyorum:

In order to <achieve my goal>
As <the stakeholder who wants the goal>
I want (<some users to do>) <some stuff>.

Bu, geliştirme ekibi de dahil tüm paydaşları açıkça tanır. Artık teknik hikayelerinizi de ifade ederek, işletme avantajını dile getirebilirsiniz:

In order to minimize the risk of deploying something broken
As the team deploying the code
We want to spend a few days on an automated deployment system.

Bununla ilgili birkaç blog yazısı yazdım: Bunlar Kullanıcı Öyküleri değil , Özellik Enjeksiyonu ve teknik öykülerle ilgilenmek . Umarım yardım ederler.


3
Anlambilim ... IMHO bu Çevik felsefeye aykırı; sıcak bulanık duygulardan başka gerçek değer sağlamadığı durumlarda gerekli olan ayrımı eklemek.
Aaron McIver

5
Tecrübeden mi yoksa teoriden mi bahsediyorsun? Soruyorum, çünkü bu şablonu şimdi birkaç ekiple kullandım ve hedefin ilk konunun gerçekten proje vizyonunu elde etmek için neyin gerekli olduğunu belirlemede yardımcı olduğunu buldum . Mike Cohn isteğe bağlı olarak "öyle" kullanır. Buna inanmıyorum.
Lunivore

1
Bu şablonun teknik olmayan PO'ya yapılacak olan teknik görevin değerini bildirmeye yardımcı olmak için yararlı olduğunu görüyorum. "Bir QA analisti olarak sürekli bir entegrasyon sunucusu istiyorum, böylece uygulama her gün otomatik olarak test edilir" ve "Projenin sonunda ihtiyaç duyulan manuel test miktarını azaltmak için ve" bir QA Ekibi olarak üretime kayarken sürekli bir entegrasyon sunucusu denemek istiyoruz ". Gizli işi göstermek, OP'yi dahil edip etmemeye karar vermek için yeterli bilgiyi verir.
Soronthar

1
@Soronthar Sonra nerede bitiyor? "Hayal kırıklığı seviyesini azaltmak için, bir geliştirme ekibi olarak kendi kurallarımızı koymayı istiyoruz" Kullanıcıya odaklanıp kalmanın bir nedeni de bu. Görevler Posta Noktasından gizlenmelidir; Çünkü PO bu detaylarla kendileri ilgilendirmek zorunda kalmamalı.
Aaron McIver

9
Oh, ve tam olarak net olmasaydı - Scrum hakkında yaptığım işlerden işe yarar bir şeyler almayı daha çok önemsiyorum. Veya Yalın. Veya BDD. Ayrıca, yazılımdaki en faydalı işin risk öğrenmek ve öğrenmekle ilgili olduğuna inanıyorum. Metodoloji işe yarar bir iş yapma yoluna girdiğinde, işe yarar bir işe yönelirim.
Lunivore

12

Hız, ekibin faydalı işler yapma kapasitesinin bir ölçüsüdür (Drag yerine). Altyapı görevleri, ekibin uzun vadede daha verimli olmasını sağlayarak, dolaylı olsa da, son kullanıcı değeri sunmaya devam ediyor. Bunları kullanıcı hikayeleri olarak izleme konusunda bir sorunum yok (kullanıcı bu durumda geliştirici olan ekiptir) ve bunları öncelik sırasına koymak. Müşteri (ler) ile iyi iletişim halinde olan bir Ürün Sahibi, bu tür görevlerin teslimatları bozmadan nereye uyabileceğini çözebilmelidir.


3
Ekiplerin, kullanıcı için doğrudan değerli olan şeyler ve umarım dolaylı değer sağlayan şeyler arasındaki farkı bulanıklaştırmasının tehlikeli olduğunu düşünüyorum. Özellikle, "sevdiğimiz her şey değerlidir" yaklaşımı, geliştirici altın kaplamasını ve altyapı uğruna altyapıyı teşvik eder. İnsanları yalnızca doğrudan ticari değeri olan hikayeleri hıza doğru saymaları için teşvik ediyorum, çünkü müşterilerin nakit para ödeyeceği tek şey bu.
William Pietri

3
Ayılarla Waltzing. Yaptığın her şey gerçekten değerlidir çünkü daha önce kimse yapmamıştır (aksi halde daha ucuz, başkalarının yapması için yollar vardır). Değerli yaptığımız şeylerin çoğu, yeni şeylerin nasıl yapıldığını öğrenmekle ilgilidir. Altyapı görevleri yeni şeyler hakkında geri bildirim almamıza ve daha hızlı öğrenmemize yardımcı olmaktadır. Daha hızlı öğrenmemize yardım ederse @Kristo ile birlikteyim.
Lunivore

@Lunivore - Fark şu ki, hiç kimse size öğrenme için para vermiyor. Öğrenme ile yaptıkların için sana para ödüyorlar. Takımlar araçlarını ve bilgilerini geliştirmek için her zaman biraz zaman ayırmalıdır. Fakat onu hız olarak saymak, ekibin yapması gereken işle kafasını karıştırıyor.
William Pietri

Bu sadece araçlar ve bilgi ile ilgili değil. Ashley Johnson deneyi düşündüm: Yaptığınız son projeyi düşünün. Aynı insanlarla, aynı gereksinimlerle, aynı teknolojiyle, ancak öğrendiğiniz her şeyi öğrendikten sonra tekrar ne kadar süreceğini düşünün. PM'lerden gelen teklifler% 25 ile% 33 arasında değişiyor - gerisi yazılım projelerinde ne kadar öğrendiğimizi. Dan North'un Deliberate Discovery hakkındaki yayınını okuyun: dannorth.net/2010/08/30/introducing-deliberate-discovery
Lunivore

11

Onları yavaş yavaş yapın.

Hiçbir paydaş bunu istemiyorsa, bir hikaye yapmayın. Sadece bir anda biraz ilgilen. Örneğin, ilk defa manuel olarak dağıtıyorsunuz. İkinci kez, biraz otomatikleştiriyorsun. Üçüncü kez, biraz daha otomatikleştiriyorsunuz. Sonunda yapınız en büyük sorun değil, bu yüzden başka bir şeye odaklanıyorsunuz.

Bu geliştirici odaklı görevlerin çoğuna daha önce sahip olacaksınız ve sorun değil; Hızınız (hikayelerle ölçüldüğü gibi) sadece daha düşük olacaktır. Bu durumun doğru bir temsilidir. Ancak her zaman biraz olacak, bu yüzden ekibin süreci iyileştirmek için gerekli olanı yapma alışkanlığı kazanması önemlidir.


+1: İlk kez Spike çözümü, ardından ikinci seferde daha iyi ve daha güvenilir olması için yeniden yansıtıcı.
S.Lott

Peki, geliştirici odaklı görevlerin, özellikle henüz iyi bir hız ölçümü yapmadığınızda, sprinti devralmadığından nasıl emin olabilirsiniz? Erken bir teslimatı kaçırmak istemem çünkü uzun vadede yardımcı olacak şeylere çok fazla zaman harcadık.
Kristo

Ve düzenli yansıma için zaman ayırıyor olmalısınız ve bunun gibi süreç iyileştirmeleri yapıyor olmalısınız.
Michael

@Kristo, müşteri / ürün yöneticinizin bundan kurtulmanıza izin vereceğini sanmıyorum. Belirlenmiş bir hız olmadan bile, iyi bir tahminde bulunacaksınız ve ilk sprintler için verilecek değeri pazarlık edeceksiniz. Ayrıca, @ S.Lott gibi bir şekilde yükselirseniz, yine de teslim edilmeyeceğinizi önerir.
Michael

@ Kristo: Bunu yavaş yavaş yaparak ve düzenli olarak yansıtarak emin olursunuz. Başladığınızda, bildiğiniz tek şey kesinlikle yanlış miktarda yapıyor olacağınızdır. Her hafta, az ya da çok altyapı yapıp yapmamanız gerektiği ve en değerli şeylere odaklanıp odaklanmadığınız hakkında konuşun. Bu her zaman dengeleyici bir harekettir.
William Pietri

6

IMHO, ideal yaklaşım, ilk değeri taşıyan kullanıcı hikayesi altındaki görevler olarak altyapı çabasını koymak; Bahsettiğiniz gibi.

Örnek alarak; elle inşa etmek ve dağıtmak, devam eden bir çaba olduğunu ve tamamlanma biçiminin olmadığı anlamına gelir. Süresiz var.

Aynı şey daha önce manuel olarak yapılan tipik bir uygulamada eforun herhangi bir bölümünü otomatikleştiren kod için söylenebilir. Bu çabayı bir kullanıcı hikayesi altında bir görev olarak tanımlamak, tamamlamayı; doğası gereği son kullanıcı için değere sahiptir.

Uygulamayı her bir sprint kesinlikle oluşturabilir ve dağıtabilirsiniz, ancak bu, günlük olarak, iş listesiyle resmen takip edilmeyen günlük işlerin bir parçası haline gelir ve sonra hepsi tartışılır hale gelir.


Bu cevap için teşekkür ederim. Sonunda bunun nasıl yapılması gerektiğini açıklıyor: "İdeal yaklaşım, ilk önce değer verdiği kullanıcı hikayesi altındaki görevler olarak altyapı çabasını yerleştirmektir".
Igor Popov

Aslında bu altyapı çalışması, Yapılan Tanımın bir parçası olmalıdır.
Igor Popov

4

Kullanıcı hikayeleri, bir işletme değerini kullanıcı perspektifinden tanımlar. Bu nedenle altyapı işleri genellikle "atık" olarak kabul edilir. İhtiyaç duymadıkları anlamına gelmez. Daha fazla altyapı görevi yapmanın daha az iş değeri sağlayacağı anlamına gelir. Bu nedenle, altyapı işleri bir kullanıcı hikayesi olarak görülmemeli ve herhangi bir kullanıcı hikayesine eklenmemelidir.

Bir planlama toplantısında bir sonraki sprint boyunca hangi altyapı görevlerinin kesinlikle gerekli olacağını düşünmelidir. Taahhüt, bu altyapı işleri göz önünde bulundurularak gerçekleştirilecektir. Takımın hızını etkileyecektir, çünkü sonuç takımın ne kadar işletme değeri sunabileceğini ölçmektedir.


2

Kullanıcı hikayelerini asla son kullanıcı değeri sunma ile eşitlemedim. Yaygın olabilir, ancak kullanıcı hikayeleriyle nasıl başa çıkacağımızı değil. Bazen bu tür görevler sivri sayılır, ancak diğer kullanıcı öyküleri gibi tahmin edilen düzenli kullanıcı öykülerimiz de vardır.


Bazı takımlar bu şekilde çalışır, ancak bu teslim edilen değeri ölçmeyi zorlaştırır. Şahsen, ekiplere yalnızca işletme değeri olan hikayeler oluşturmalarını öneriyorum. (Çiviler iş değerine sahiptir çünkü ürün insanları gelecekteki seçenekler ve maliyetleri hakkında bilgi alıyorlar.)
William Pietri

Ancak iş değeri nedir? Geniş bir terimdir ve bir işletmenin yazılımı daha erken / daha iyi / vb. Serbest bırakmasına izin veren herhangi bir şey, o işletmeye değer verir.
Andy Wiesendanger

Çizdiğim ayrım esas olarak takıma yönelik doğrudan değere sahip şeyler ile esas olarak hizmet etmek için bulunduğunuz insanlara doğrudan değere sahip şeyler arasındadır. Bence sadece ikincisini hıza kadar saymalısınız, çünkü sonuçta önemli olan tek değer budur. Bu değer yaratmanın iyileştirilmesine yardımcı olarak yapılan işler, iyileştirilmiş uzun vadeli hız yoluyla hızda muhasebeleştirilir. Hemen saymak, teşvikleri çarpıtır ve kazancı ikiye katlar.
William Pietri

2

Gördüğüm kadarıyla altyapının büyük bir kısmı kabul edildi. Bu gibi şeyler içerir:

  • Revizyon kontrol sistemi;
  • Otomatik yapı sistemi;
  • IDE ve diğer geliştirici araçları;
  • Geliştirme sunucuları;
  • Dağıtım işlemi; ve
  • Proje süreci ve standartları.

Çalıştığım metodolojilerin çoğu onlara çok fazla önem vermiyor. Bu, benim Sürüm 0 olarak adlandırdığım formu oluşturur. Bunlar gelişmeye başlamadan önce yerinde olmalıdır. Hikayeler üzerinde çalışmaya başladığınızda, bu şeylerdeki herhangi bir değişiklik süreç iyileştirme olarak izlenebilir.

Geliştirme ekibi girdi almış olsa da, bu öğelerin çoğu bir proje destek ekibi tarafından ele alınmalıdır. Bu kalemlerin birden fazla projede standartlaştırılması, organizasyon için önemli bir geri ödeme almalıdır.


1
+1: Bu yerinde değilse, Çevik gerçekten zor. Kararlı, kanıtlanmış altyapı ve platform, çeviklik için bir ön koşul.
S.Lott

1

Aşağıdakileri göz önünde bulundur:

  • Scrum ekibi mevcut bir ürün grubuna ana özellikler ekliyor.

  • En iyi mühendislik uygulamalarına dayalı olarak güncel kalmak için geliştirme teknolojisini / araçlarını / yardımcı programlarını yükseltme ihtiyacı vardır.

  • Bu çalışma ile bir yayını önden yüklemenin anlamı vardır, böylece yayın sırasında Sprints sorunları çözülebilir.

  • İş bu ürünlerden dolaylı bir değer elde ettiğinden, şeffaflık için bunların Ürün İhtiyaçları Listesi (PBI'ler) olduğunu düşünüyorum.

  • Ekip bu maddeleri boyutlandırıyor ve onlara herhangi bir PBI gibi davranıyor.

Benim için bu mesele, bu işi diğer iş merkezli PBI'lerin altındaki görevler olarak nasıl gizleyeceğimizi bulmak için zaman kaybetmek istemememden kaynaklanıyor.

PBI boyutlandırmasının bu tür bir altyapı çalışmasında çarpıtılmasını istemiyorum. Ne yapıldığını görmek ve ne için para ödediğimi anlamak istiyorum.

Ayrıca, ekibin, kaliteli çözümler sunmak için gereken altyapıya yatırım yaparak şirketin yaptığı taahhüdü anlamada değer olduğunu düşünüyorum.


0

XP önerir , tüm araçların ve altyapının kurulduğu "sıfırlama" önerir. Bunlar için hikayeler yazmak isteğe bağlıdır, ancak muhtemelen iyi bir fikirdir. Altyapınızı test edebilmek (artan yapı, otomatik test ve dağıtım, bildirimler vb.) Faydalıdır.


2
XP bunu önermiyor. Bazı insanlar yapar, ancak kesinlikle Beck ve ark. Şahsen, Sıfır Yinelemenin kötü bir fikir olduğunu düşünüyorum.
William Pietri

Başka bir sorun, her zaman 0'dan başlamıyorsunuz, şimdi veya bir sonraki sprintte bir şeye ihtiyacınız olduğunu fark edebilirsiniz.
Andy Wiesendanger

@William: bkz. Kent Beck, "Planlama Ekstrem Programlama", Bölüm 15, Sayfa 66.
Steven A. Lowe

Bu bir öneri değil. Bunun bir fikir olduğunu ve “Teknolojinizle daha önce çalışmadıysanız, programlamaya başlamadan hemen önce teknolojiyi elde etmek için iki hafta geçirmeyi düşünün. Ve "tüm altyapı" yı önermiyorlar, sadece temel otomatik testler, derlemeler ve komut dosyaları dağıtıyorlar.
William Pietri

@William: aha, ne elde ettiğinizi anlıyorum. Tüm yazılım altyapısını kastetmedim , sadece bahsettiğiniz şeyleri
Steven A. Lowe

0

Ekibimizde aşağıdakileri yapıyoruz:

  1. Farz et düşük bir odaklanma faktörü .
  2. Bu tür görevleri kullanıcı hikayelerine dahil etmeye çalışın , gerçekte bunları uygulaması gereken .
  3. Bazı görevler tamamen gerekliyse ancak doğrudan iş değeri sağlamazsa (ünite testlerini bir çerçeveden diğerine geçirmek gibi), sprint başlangıcında "sürekli görevler" in bir listesini oluştururuz . Bunlar, hikaye olmayan gelişim ile ilgili görevlerdir, ancak geliştirme ekibi bunların yapılmasını ister. Bu işleri yazı tahtamızda sıralıyoruz, yine de hikayelerden ayrı tutuyoruz. Sprint sırasında, her günlük toplantıda bunları başarmak için neler yapıldığını gözden geçiririz.

2. adım en önemlisidir. Çevik bir pratikte olduğu gibi, Scrum'da görevlerinizi başarmak için mümkün olduğunca az şey yapmaya çalışıyorsunuz. Gereksiz işler yaparak hayatınızı boşa harcamamanın bir yolu olarak kabul edin: Tecrübelerime göre, "harika olurdu" olaylarının% 50'sinin uzun vadede terk edildiğini ve kullanılmadığını gösteriyor.

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.