Scrum'da, geliştirme ortamı kurulumu ve yetenek geliştirme gibi görevler gerçek kullanıcı öykülerinde alt görevler olarak yönetilmeli mi?


23

Bazen projelerde şu gibi görevlere zaman harcamamız gerekir:

  1. alternatif çerçeveleri ve araçları keşfetme
  2. Proje için seçilen çerçevenin ve araçların öğrenilmesi
  3. sunucuların ve proje altyapısının kurulması (sürüm kontrolü, yapı ortamları, veritabanları, vb.)

Kullanıcı Hikayeleri kullanıyorsak, tüm bu çalışmalar nereye gitmeli?

Bir seçenek, hepsini ilk kullanıcı öyküsünün bir parçası yapmaktır (örneğin, uygulama için ana sayfayı yapmak). Diğer bir seçenek de bu görevler için başak yapmaktır. Üçüncü bir seçenek, kullanıcı Hikayesinden ziyade bir Sorun / Engelleme'nin (örn. Henüz seçilmemiş olan geliştirme ortamı) bir görevi yapmaktır .


biraz daha netleştirmek için soruyu biraz değiştirdim .. soru artık öyküler yerine gerçek kullanıcı öykülerinde alt görevler olarak görüyor
Asim Ghaffar

Yanıtlar:


12

Geçtiğimiz yıl bu sorunu oldukça düşündük.

Proje başlamadan önce temel bir çerçevenin olması gerektiğine katılıyorum, ancak pratik kullanımda projenin bir parçası olabilir. Yani bir şekilde yönetmek zorundasın.

Proje kurulumunu kullanıcı hikayeleriyle karıştırmak bazen mantıklı gelse de, ürün birikimine eklenebilecek basit kullanıcı görevlerine karar verdik ve kullanıcı hikayeleriyle aynı ilgiyi gördük . Bu teknik görevlerin bazen gerekli olduğunu biliyoruz, ancak her durumda haklı gösterilmeleri gerekiyor. Eğer takım belirli bir hedefe ulaşmak için kesinlikle gerekli olduğunu düşünüyorsa, bir koşunun parçası olacaklar.

Sizin için en iyi olanı söylemek zor, o yüzden deney ! Başak şimdilik yeterli olabilir, ancak daha sonra aynı problemle karşılaşacağınızı düşünüyorum, bu yüzden önceden planlayın. Bu tür faaliyetler için yer tutucu olan görevleri yapın . Görevleri iki hikayeden ayırmak için, onlarla deneyimime dayanarak bunları hızlı bir şekilde karşılaştırırım.

Görev: Bir görev teknik bir zorunluluktur. Taahhütler için bir havuz oluşturmak veya geliştirme sürecinde gördüğünüz en sıcak kod inceleme aracını eklemek gibi, yapılandırma yönetimi veya genel proje kurulumu için şeyler olabilir. Görevler planlamada, bir kullanıcı hikayesiyle aynı şekilde düşünülmelidir. Ekip, ürün sahibini en son ve en büyük kod inceleme aracına sahip olduğuna, uzun süren çift programlama oturumlarını veya kişisel kod incelemelerini ortadan kaldırarak performansı arttırdığı ve ekip iletişimini artırdığı konusunda ikna edebilirse, ürün sahibinin dikkatini çekecektir.

Hikayeler : Yalnızca iş perspektifine odaklanmış, hikayeler her zaman müşteriye görünür bir değer kazandırır. İç kalite, iş değeri üretmeye devam eden bir şeydir.

Görevlere hikaye noktaları bile veriyoruz ve bazen onlarla çalıştığımız gibi çalışıyoruz.

Sonunda, sizin durumunuzda bu çözüme gideceğim (genel olarak da uygulanabilir):

  1. Ayrı "kurulum" ve teknik işleri (ürün sahibi için doğrudan iş değeri üretmeyen şeyler) görevlere ayırın.
  2. Belki de en önemli araçları yerine getirmek için proje kurulumundan önce bir yükselme (SCM, geliştirme araçları, işlem tanımı, kodlama standartları vb.)
  3. Bu görevlerin proje süresince ortaya çıkmasını ve bunun dışında hikayeler dışında "faaliyetler" türü bir faaliyete geçerek bunun için plan yapmayı kabul edin.

Bu GÖREV kullanıcı hikayeleri örneğin kod, test içindeki görevleri, dağıtma vb gibi olmadığı ne GÖREV aradığınız Kullanıcı hikaye veya Bug gibi bir iş öğesi temelde Yani ..?
Asım Gaffar

2
Evet, "Etkinlikler" hikayelerinin alt görevleri dediğimiz şeyleri ayırt etmek için.
malte

Görev temelde sonra ise ne denir Sayı göre Çevik 5.0 için MSF
Asım Gaffar

Burada bu açıklamaya atıfta bulunursanız: msdn.microsoft.com/en-us/library/dd997897.aspx - Burada açıklandığı gibi bir sorun diyebilirsiniz, bu uygun olur diye düşünüyorum. Bu da seçenek
3'ünüz olur

2
3. Nokta "Bu görevlerin proje süresince ortaya çıkmasını kabul et" özellikle önemlidir. Çevik Birleştirilmiş İşlem'in bunu gösteren harika bir resmi var: i.stack.imgur.com/CUVFI.jpg . Onların "çevre" disiplininin hiçbir zaman gerçekten ortadan kalkmadığına dikkat edin. Ayrıca çevre çalışmalarının büyük bir bölümünün ön tarafta olduğuna dikkat edin. Dolayısıyla, aniden daha sonraki bir aşamada çok sayıda çevre çalışması yaptığınızı tespit ederseniz, yanlış giden bir şeyler olabilir.
Michael,

4

Şirketinizde en anlamlı olanı yapın. Başkalarının işleri nasıl yaptıklarını sağduyuya engel olarak bırakma.

Ancak, tüm bu görevlerin gelişmeye başlamadan çok önce yapılması gereken bir şey gibi göründüğünü söyleyeceğim. Bu yüzden Scrum'un bu görevlerle ilgili olup olmadığını sorguluyorum. Devam eden bazı bakımlar ve kaynak kontrolü ve veri tabanları gibi bazı bakımlar var, ancak bunlar programlanmamalı, sadece gerçekleşen ve hızınızı etkileyen şeyler olmalıdır.

Bir proje sırasında bir çerçeve ya da her neyi seçmeniz gerektiğine dair zamanlar olacak, ama şunu söylemeliyim ki, .NET gibi bir çerçeve değil, nHibernate gibi bir çerçeve demek istiyorum. Bu gibi durumlarda, araştırmalar oldukça kısa olmaktan çıkarılmamalıdır, zaman aşımına uğratılmalıdır. Birkaç gündür hastalıksız bir geliştiriciniz varmış gibi yönetmeye çalışın.

Bilgi transferi, genel gelişim hızı dışında yönetilmesi gereken devam eden bir süreçtir.


çerçeve derken .. sanki JSF ya da Bahar için mi gitmeliydik .. ya da alet dediğimde .. Jboss ya da Glassfish için mi gitmeliydik ..
Asim Ghaffar

1
"Gelişmeye başlamadan çok önce" ne demek istediğinizi bilmiyorum ... .. proje başladığında, 1'e kısa sürede başlamamalısınız, örneğin proje başlama tarihinden itibaren 2 hafta içinde ... ve ilke 1'de gerçek kodlama var.
Asim Ghaffar

1
@AsimGhaffar: Olması gerektiğini sanmıyorum, hayır. Hangi uygulama sunucusunun kullanılacağı gibi kararlar vermeden önce kodlamaya başlarsanız, kodun çoğunu yeniden yazmanızı gerektiren en az bir karar vereceksiniz. Kaynak kontrolü olmadan bugünlerde bir proje başlatmayı hayal edemiyorum. Demek istediğim, eğer etrafta oturan geliştiriciler varsa, onları prototipler gibi üretken bir şeyler bul. Ancak kilit kararları verene kadar başa çıkma.
pdr

"sprint 1'in ASAP'ı başlatmaması gerekir, örneğin proje başlangıç ​​tarihinden itibaren 2 hafta içinde". Doğru. Bu, çevrenizin hazır olduğu ve gitmeye hazır olduğu anlamına gelir. Zaten araçları kullanma, yapım ve dağıtım konusunda yeteneklisiniz. Bu konularda zaten yetenekli değilseniz ve ortam kurulmamışsa, başlamak için hazır değilsiniz.
S.Lott,

@ S.Lott hmm Biri İŞ üzerinde gerekli becerileri kazandığını düşünüyorum, yani proje üzerinde çalışırken ve sprint 1 için bir öğrenme aracı önkoşulu bulunmadığını düşündüm.
Asim Ghaffar

2

Projenizin "resmi" başlangıcından önce mümkün olduğunca çok sayıda tasarım kararı almak için bir isim var. Buna şelale denir. "Bir geliştirici olarak, bir çerçeve seçmem gerekiyor, bu yüzden web sitesi için bir başlangıç ​​noktamız var." Gibi kullanıcı hikayelerinde yanlış bir şey yok. Bir yinelemeye sığmayacak kadar büyükse, "Bir geliştirici olarak, Drupal'da basit bir ana sayfa kullanmam gerekiyor, bu yüzden gereksinimlerimize uygun olup olmadığını öğreneceğiz."


1

Bir seçenek, hepsini ilk kullanıcı öyküsünün bir parçası haline getirmektir, örneğin uygulama için ana sayfayı yapınız.

Bir kavram olarak "kullanıcı hikayesini" kırar. Hangi kullanıcı buna katılıyor? Yok. Bu zaten yapmış olman gereken iş.

Başka bir seçenek bunun için bir başak yapmaktır.

Fena değil.

Üçüncü seçenek, kullanıcı Hikayesinden ziyade bir Sorunun bir parçasını yapmaktır (örn. Henüz seçilen Geliştirme ortamı).

Planlama ve genel giderler söz konusu olduğunda, başak kadar aynı.

Kurulum bir kullanıcı hikayesi değil .

Bu projeye başlamadan önce sahip olmanız gereken şey bu.

Çerçeve / araç ve sunucu kurulumuna hazır ve çalışmaya hazır değilseniz, projeyi gerçekten başlatamazsınız.

Ben birçok kuruluş gerçekten kadar var olmadığını iyi biliyorum sonra sözleşme imzalanır. Ayrıca birçok kuruluş dek bir teknoloji seçmeyin farkında değilim sonra sözleşme imzalanır. Bunların hepsi herhangi bir kullanıcı hikayesinin dışında kalan verimsiz şeylerdir.


konu Spike ile aynı değil. Normal sprint programlı iş öğesi olarak konuyu düşünün ama hikaye noktaları bulunmuyor. Sayı Örneği: SVN seçilmedi. Ben kelime sorunu ödünç alıyorum Çevik 5.0 için MSF
Asım Gaffar

msgstr "sorun aynı başak değil". Kelimelerin tanımları için haklısın. Ancak, sprint 1'den önce fazladan bir iş yapmayı düşündüğünüzde, buna bir sorun ya da başak demesi önemli değil. Birini seç. Bozuk para atmak. Kafalar.
S.Lott,

Yine Sprint 1'deki hikayelerin yanı sıra zamanlama meselesini de kastediyordum - Sprint 1'den önce değil. Yani Sprint 1 için 2 kullanıcı hikayesi ve 1 sayı seçtiğimizi söyleyelim. Ancak Sayı için hikaye puanı yok. Spike gerçekten sprint 1'den önce olacak ..
Asim Ghaffar

Başak ya da Sayı önemli değil. Hepsi bir kullanıcı hikayesinin parçası olmayan iş . İlk sprintten önce yapılması gereken tüm iş bu . Sizi mutlu eden her neyse, ona bir başak ya da sorun diyebilirsiniz. Ama bu bir kullanıcı hikayesi değil .
S.Lott,

1

İşyerinde çevreyi hazırlamak için bir görev kullanıyoruz. Bazı insanlar için kafa karıştırıcı olabilir ama kullandığımız görev, bir kullanıcı hikayesindeki görevle aynıdır. Görev bir kullanıcı hikayesine ait değil, saat olarak tahmin ediliyor ve belirli bir sprintte tamamlanması için ürün sahibi tarafından üzerinde anlaşılması gerekiyor.

Görevi, "görünür" bir iş değerine sahip olmayan, ancak özellikle büyük bir kod tabanına sahip mevcut bir ürün için ürüne kalite katan mimari işler için de kullanıyoruz.

Bunlar çalışma ortamınızda geçerli olmayabilir, ancak bizim için iyi çalıştı.


0

İki bağımsız şeyi karıştırdığını düşünüyorum. Bir kullanıcı hikayesi herhangi bir teknik detay içermemelidir.

Çerçeve seçimi, havuzları ve sunucuları kurma ve diğer görevler ilk tekrarlamaya gitmelidir.


haklısınız ve ben onları hikaye açıklamasında önermiyorum. Demek istediğim "gerçek MySQL'i yüklemek", "çerçeveyi değerlendirmek" gibi görevlere sahip olmaktı. Bir ana sayfa, böylece temel özelliklere hızlı bir şekilde erişebiliyorum.
Asim Ghaffar

@AsimGhaffar İlk tekrarda yapılabilir. Bir kullanıcı hikayesi olarak değil, çünkü kullanıcıların ihtiyaçlarını karşılamak için hangi teknolojiyi kullandığınızı bilmeleri gerekmez (ya da umursamayacakları).
BЈовић

0

Geçenlerde Scrum kursuna gittim ve eğitmen Sprint 0 adında özel bir sprintin tam olarak bu tür problemleri çözmek için kullanılması gerektiğini önerdi . Kursta Scrum'da değişik derecelerde deneyime sahip insanlar vardı ve hemen hemen tüm tecrübeli insanlar aynı şeyi yaptıklarını söyleyerek kabul etti. Bazı durumlarda, şirketler projeyi değerlendirmek için Sprint 0'ı kullandılar ve uygulanabilir olup olmadıklarına karar verdiler.

Kendim gibi Scrum metodolojisinde yeni olan biri için harika bir çözüm gibi görünüyor, çünkü sizi kullanıcı hikayelerinden ve normal bir sprintin kullanıcı görüşleri gibi diğer tüm özelliklerinden uzak tutuyor.

Sprint 0, diğer sprintlerinizle aynı süre boyunca olduğu için, işleri ayarlamak için fazla zaman harcamadığınızdan emin olmanızın bir yolu olarak işlev görür, çünkü daha sonra her zaman ince ayar yapılabilir. Asıl nokta, kendinizi gerçekten ürünü geliştirmeye başlayabileceğiniz bir duruma sokmak.


3
Alistair Cockburn'den alıntı Başlangıçta bariz bir ticari değeri olmayan bir şey yaptığında birisinin Scrum'ı kullanması konusunda baskı yapıldığı konusunda sinsi bir his duyuyorum ve "Ah, bu Sprint Sıfırdı!" Kazıkları olan köylüleri kapısından uzak tutmak için.
Asim Ghaffar

0

2-3 alternatif çerçeve / araç araştırması üzerine

Özel gereksiniminiz varsa, gereksinimi çözmek için en iyi aracı seçmek için bir miktar POC yapmanız gerekebilir. Bunun nedeni budur çünkü sizi hangi çerçeveyi kullanacağınızı bilmeden, muhtemelen hikayeyi tahmin edemezsiniz ve tahmin etmeden saklamak planlanamaz ve görevlere bölünemez.

sonra proje için seçtiğimiz çerçeveyi öğrenince

İyi. Bu oldukça tehlikelidir. Müşteri size bir SW için para ödediğinde, araçlarını nasıl kullanacağını bilen profesyonel olmanızı bekler. Müşteri, öğrenme veya deneme / başarısız geliştirme yaklaşımı için size ödeme yapmaz. Boş zamanlarında veya müşteri tarafından değil çalışanı tarafından ödenen özel tahsis edilen sürede yeni araçlar öğrenmek geliştirici sorumluluğudur . Müşteriyi bilgilendirmeden öğrenmek için müşteri parasını harcamak profesyonelce değildir.

Gerçekten daha önce hiç kullanmadığınız özel bir şey (örneğin, bazı müşterilerin API'leri veya seçilen araç müşterileri) kullanmak zorundaysanız, API'nin nasıl kullanılacağını öğrenmek için gereken zamanın arttığını müşteriye bildirmeniz gerekir. Belki fiyat artışı çok büyük olursa müşteri fikrini değiştirir.

Tabii ki, birçok kez kullandığınız çerçevede bazı yeni problemleri aramanız gereken bir durum değil. Demek istediğim, öğrenme için önemli bir süre (proje dışında) harcamadan yeni API veya çerçeve kullanmaya başladığınız durum.

Bunu ihlal ederseniz, hızınızda yine de görünür olacak çünkü yineleme başına çok az miktarda işletme değeri sunacaksınız. Müşteri nedeninin farkında değilse, büyük olasılıkla projeyi iptal edecektir.

Bu, dahili projeler için hala geçerlidir - yöneticinize / işyerinize yeni API veya araç öğrenmek için gereken süre hakkında bilgi vermelisiniz. Yönetici normal üretkenliğinizi hesaba katarsa ​​ve üretkenliğiniz yalnızca görevleriniz sırasında öğrenmeye çalıştığınız yeni API nedeniyle kesirse, genellikle çok kötü sonuçları vardır. Bazı satış insanlar, müşteriyle sözleşme imzaladıklarında normal üretkenlikle hesapladılarsa bu daha da kötüdür.

sunucuları kurma hakkında (SVN, Veritabanları, vb.)

Bu sizin altyapınız ve iç maliyetlerinizdir. Projeye başladığınızda, altyapınızı hazırlamanız beklenmektedir. Geliştirme ortamınızı kurmak müşteriye değer vermez ve projeyle ilgili göstergelerin bir parçası olmamalıdır - örneğin Scrum'daki hız. Bunun sadece ortamı ayarlamak, temel altyapı oluşturmak için kullanılan özel proje öncesi yineleme olarak uygulandığını gördüm.


Müşteri projeleri değil ürün geliştirme işindeyiz :).
Asim Ghaffar

Tamam. Bu durumda, hangi ek yükünüz olduğunu görmek için öğrenme ve altyapı için harcanan zamanı ayrı ayrı izlemelisiniz. Bu zamanı görevler içinde saklamak, gelişim sürecinizin görünürlüğünü bozacaktır.
Ladislav Mrnka
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.