Çevik'teki ilk yinelemelerde neler teslim ediyorsunuz?


22

Anladığım kadarıyla, Agile metodolojileri ile ilgili fikir, işlevsel bir şey teslim etmeniz ve sık sık teslim etmenizdir. Uygulama, artıştan sonra son şekli artışına girer.

Ancak, ilk yinelemelerde, uygulamanın dayanacağı çerçeveyi veya temelleri oluşturabilirsiniz, böylece kullanıcılar için görülebilir ve önemli bir şey olmaz.

Bu ilk yinelemede müşteriye ne teslim edilir? İskele kodu oluştururken nasıl doğru yönde ilerlemeyi gösterirsiniz?


2
Bir çerçevenin veya temelin tamamını inşa etmek, projede mümkün olduğunca geç bir karar verilmelidir.
JeffO

@JeffO: Mümkün olduğunca geç ne demek istiyorsun? Bunu bir cevap haline getirebilir misin?
JohnDoDo

5
İdeal olarak, hiç bir karar olmamalıdır. Bir çerçeve yaratılmamalı, yeniden düzenlemenin bir sonucu olarak organik olarak ortaya çıkmalıdır. Hiçbir "iyi" (kendi öznel "iyi" tanımım için) çerçevesi hiç baştan tasarlanmamıştı, mevcut uygulamalardan sonra veya mevcut diğer çerçevelere dayanarak çıkarıldılar.
Jörg W Mittag

7
@JohnDoDo'nun önünde bir vakıf inşa etmek, uygulamanızın gereksinimlerinin varlığından önce ne olacağını bildiğinizi varsayar. Bunu yapan insanları her gördüğümde, katı ve çalışması zor olan bir şeyle yaralandılar. Çoğu zaman, bu “çerçeve” nin kullanıcıları, onu kucaklamaktan daha çok onunla savaşırlar.
Stefan Billiet

Yanıtlar:


15

2 hafta sprint olması normaldir.

Benim için, ilk sprint veya 2 muhtemelen bu kesin nedenden ötürü sprint'lerden daha az "görülebilir" özelliklere sahip olacaktır ("az" ın bazı ayrıntılı tanımları için).

Olduğu söyleniyor, tüm iskelenizi inşa etmeniz ve kullanıcı arayüzünde bunun için gösterebileceği hiçbir şeyin olmaması kesinlikle 2 hafta sürmemelidir.

Belki de ilk süratte her iskele parçasını etmeyin ya da 2. Belki parçalar bekleyebilir ve daha sonra eklenebilir.

Belki de ilk sprint'inizde "Sahte verilerle web sayfası X oluşturun", böylece müşterinize gösterecek kadar parlak bir şey elde edebilirsiniz. Ve sonra bir sonraki sprint "Veritabanındaki verileri kullanmak için X web sayfasını değiştir" seçeneğine sahiptir.


6
Son paragraf için +1 - Kullanıcı onayına yönelik bir prototip ile geliştirmeye başlamak iyi bir fikirdir.
Konamiman

4
"Belki de ilk sprint'inizde" Sahte verilerle web sayfası X oluşturun ", böylece müşterinize gösterecek kadar parlak bir şeyler alabilirsiniz.": IMO müşteriye ve projenin zaman çizelgesine bağlıdır: 2 aylık bir proje için bir müşteri 1 hafta veya 2'de bir şey görmek isteyin. 18 aylık bir proje için, 1 veya 2 ay içinde ilk demoyu almanız normal olabilir. Her durumda, bazı müşteriler sahte bir sayfa görmek isterken, diğerleri daha anlamlı bir şey görmek ve zamanlarını boşa harcadığınızı hissetmek isteyebilir. Bence genelleştiremezsin.
Giorgio

4
Müşteri UI parçalarını gösterilirken 1, ama her zaman, her zaman akılda buzdağı gizli tutmak joelonsoftware.com/articles/fog0000000356.html
Doktor Brown

1
@MatthewFlynn - Scrum, gerçek bir "gereksinimler" aşamasına sahip olmayabilir, ancak bu, SIFIR gerekliliklerin veya belgelerin mevcut olduğu anlamına gelmez. Bir müşterinin "sadece devam et ve inşa etmeye başla ve bunu anlayacağız" dediği bir projeyle hiç bir zaman ilgilenmedim. Sanırım bunun için bir terim var. Genellikle, ne verileceğine dair bir tartışma ve anlaşma içeren bir projenin bir tür çıkarma aşaması olmalıdır. Satış
aşamasında

1
@hanzolo - Son zamanlarda üzerinde çalıştığım çok başarılı bir proje, Affordable Care Act'ın bir parçası olan yeni bir yasal zorunluluk ile başa çıkmak için bir çözüm uygulamaya koydu. Temel gereksinimler biliniyordu, evet, ancak çözümün ne olabileceğine dair bir prototip ya da tasarım yolunda hiçbir şey yoktu. Proje ekibi (iş analistlerini içeren) sprint bağlamında çözdü. En iyi ihtimalle, BA'lar iş arkadaşlarıyla, ekibin geri kalanından bir iki veya daha önce bir sprint hikayesiyle konuşuyor olacaktı, ama birlikte çalışmamız gereken buydu. İyi çalıştı.
Matthew Flynn

13

Çevik Manifesto, Çalışma Yazılımının kapsamlı dokümantasyondan daha değerli olduğunu ve Scrum çerçevesinin, bu anlayışı, her sprint şartı olarak test edilmiş, çalışan bir yazılımın iş değeriyle birlikte sunmasını önermek için kullanır.

Niye ya? Pekala, diğer şeylerin yanı sıra, tasarımcılar ve geliştiriciler genellikle YNNI (asla ihtiyacınız olmayacak) ürünler için çok fazla zaman harcamaktan kurban olur. Ne yazık ki, bahsettiğiniz çerçeveler bu alanda genellikle büyük bir sorumluluktur. Geliştiriciler, MIGHT çerçevesinin desteklemesi gereken her şeyi oluşturmaya başlarlar ve aniden 3 ay içinde olursunuz ve bunun için gösterilecek hiçbir ticari değeri yoktur. Sonra, çerçevenin ihtiyaç duydukları şeyi gerçekten desteklemediği ortaya çıktı.

Dolayısıyla önerilen yaklaşım, yalnızca şu anda gerçekten ihtiyaç duyulanı oluşturmak ve şimdi sunmaktır.

Bu, yeniden kullanılabilir parçalar ve benzeri şeyler yapamayacağınız anlamına gelmez, sadece her zaman mevcut bir ihtiyaç oluşturmayı desteklemek için yaparsınız. Dahası, bu, yoldan geçenlere tamamen körlük takmanız gerektiği anlamına gelmez - şeyleri daha sonra değiştirmek / geliştirmek imkansız olacak şekilde inşa etmeyin. Ancak, kilit nokta her zaman iş değeri sağlamaktır.

Genellikle, ortamların kurulması ve benzerleri gibi, herhangi bir şey teslim edilmeden önce mutlaka kurulması gereken bazı önemli şeyler vardır. Bu şeyler için, birçok ekip, temelin atıldığı bir "Sprint 0" almayı yararlı buluyor. Sprint 0, diğer ürünlere göre biraz daha uzun olabilir, çünkü ürün birikiminiz veya yanma işleminiz için uygulanmaz, ancak yine de makul bir süre içinde kutuya konması gerekir.


8

Bu ilk yinelemede müşteriye ne teslim edilir?

Kullanıcı için en yüksek işletme değerine sahip olan şey. Örneğin, uygulamaların karmaşık iş kuralları varsa, ilk yineleme (ler) yalnızca kod biçiminde kodlanmış iş kurallarını içerecektir. Bu iş kuralları için kodunuz olduğu sürece müşteri memnun kalmalıdır. (Aslında müşteriyi böyle bir şeyi kabul etmeye ikna etme sorunu tamamen farklı bir konudur.) Örneğin, müşterinin işletme uzmanlarına, alanın ne yapması gerektiğini ve bu kodun yeşil sonuçla geçtiğini ifade eden birim / kabul testlerinizi gösterebilirsiniz. Ya da daha iyisi, işletme uzmanlarının bu testleri oluşturmasına yardımcı olun.

Ayrıca bir soru var

çerçeve veya vakıflar oluşturabilirsiniz

Aslında, teslim edilenden çok daha önemli olduğuna inanıyorum. Evrimsel Tasarım için, mimariyi başlangıçta yaratmaya çalışmak yerine zaman içinde yaratmanız gerektiğini söyleyen büyük bir şey var . Temel olarak, bu genellikle bir tür veritabanı veya UI çerçevesi anlamına gelir. Bu durumda, “ İyi mimari, önemli kararları ertelemenize izin veren bir yapıdır ” düşüncesi vardır . Ve veritabanı veya kullanıcı arayüzü seçmek önemli bir karardır. Örneğin, ilk yinelemeden DB'yi kullanmayı denemek yerine, veriler için yalnızca bellek içi depolama alanında sorun yaşayabilirsiniz.


3

Yapmaya çalıştığımız şey, ilk yinelemelerde mümkün olan en basit uygulamayı sunmaktır (sunduğumuzun merhaba dünya versiyonu). Bu konuda 3 önemli fayda görüyoruz:

  • Teslimat prosedürünü ayarlayın (her zaman en zor parçalardan biri) (ortamları, sunucuları yerleştirin, bu ortam için güvenliği güncelleyin). Sık sık teslim edeceğimiz gibi, bunu en kısa zamanda doğru yapmak önemlidir.
  • Kullanıcılara uygulamanın nasıl görüneceğine dair ilk fikirleri verin. Bu, kullanıcıların ve geliştiricilerin gerçekte ne istediklerini ve ihtiyaç duyduklarını anlamalarına yardımcı olur.
  • Uygulama mimarisinin nasıl görüneceği hakkında temel bir fikre sahip olun (uygulama, uygulamanın temel 'katmanlarını' veya bileşenlerini kapsamalıdır).

"Teslimat sürecini ayarlama", insanların düşündüğünden daha zordur.
Frank Shearar,

Evet öyle. Bu yüzden bunu mümkün olduğunca erken yapmalısın.
user99561

2

Ancak, ilk yinelemelerde, uygulamanın dayanacağı çerçeveyi veya temelleri oluşturabilirsiniz, böylece kullanıcılar için görülebilir ve önemli bir şey olmaz.

Bu yanlıştır, çünkü gelecekte kullanabileceğiniz bir çerçeve oluşturmanıza gerek yoktur. Fikir yalnızca ihtiyaç duyulanı inşa etmektir (ayrıca YAGNI'ye bakınız ).

Sprint sıfırda, gerçek iş için hazırlanmanız gerekir. Birçok insan bu sprintte ne yapılması gerektiğini tartışıyor, ancak bence, birikmiş listedeki öğeler üzerinde çalışmaya başlayabileceğiniz zaman bitti. Bu adım PC'lerin ayarlanması, derleme sürecinin ayarlanması, çerçevelerin toplanması vb. İçerir.

Sprint sıfırla (veya yineleme sıfırla) işiniz bittiğinde, uygulamanız üzerinde çalışmaya başlayabilirsiniz. Biriktirme listesinden öğeleri al ve tek tek bitir. Birincisini yinelemeyi bitirdikten sonra, yararlı bir şeye sahip olacaksın. İlk yineleme genellikle en önemli özelliklerden bazılarını içerir.

Bu ilk yinelemede müşteriye ne teslim edilir? İskele kodu oluştururken nasıl doğru yönde ilerlemeyi gösterirsiniz?

Sıfırlama işleminden sonra, belli ki teslim edilecek bir şeyiniz yok. Teslim edilenler birinciden sonra gelir. Yineleme için ayarladığınız özellikleri içerir.

Sorunuz "nasıl X iterasyonuna girer?" İse, bu video yayınlarına bir göz atın (iterasyon videoları 0 A ve B'nin bir kısmı).


İterasyon
sıfırından

Sıfırlama işlemi için derleme süreci ayarlama ve çerçeveler görevleri toplama düşünmüyorum. Ne inşa edeceğinizi bilmiyorsanız hangi çerçeveye ihtiyacınız olduğunu nasıl bilebilirsin? Sprint 0'ı daima çıplak bir minimumla sınırlarım. İnsanların bilgisayarlarını alın ve oturabilecekleri bir yer bulun. Bu işten kiminle konuşmanız gerektiğini öğrenin. İlk planlama toplantısı yapın. YAGNI'yı diğerlerine uygularım.
user99561

@ user99561 Altyapılar büyük kararlar ve genellikle değiştirilmesi zor. Örneğin, kod yazmaya başlamadan önce birim testleri için gtest veya cppunit kullanıp kullanmayacağınızı bilmelisiniz. Sonradan değiştirmek eşeklerde büyük bir acı olacak ve çok fazla zaman kaybedilecek.
BЈовић

@ BЈовић: Evet çerçeveler büyük kararlardır, bu yüzden kararı ertelemelisiniz. Geliştirilmesi gerekenleri ve uygulamanın ve mimarlığın nasıl görüneceğini bilmiyorsanız, bir çerçeveye karar vermenin bir anlamı yoktur. Mümkün olan en son anda hangi çerçevenin kullanılacağına karar vermelisiniz. Aksi takdirde, kesinlikle değiştirmeniz gereken riski atarsınız.
kullanıcı99561,

@ user99561 Neyin geliştirilmesi gerektiğini bilmiyorsanız, daha sonra başlayamazsınız :) Gereklilikler ve kullanıcı hikayeleri yazılmalıdır, aksi halde yineleme 1 başlayamaz.
BЈовић

2

İstediğiniz hemen hemen her şeyi sunabilirsiniz. Altyapı fikrinin oluşturulması basitçe yanlıştır / çevik değildir / sürdürülemez.

Örneğin: Tamamen işlevsel bir Hello World uygulaması oluşturmak saatler içinde inşa edilebilir. Bir sunucuyu (geçici olarak bile) bulutta veya bir VM olarak getirmek, saatlerce yapılabilir.

Bunlar gelişmeye başlamak için yeterli . Daha sonra, eğer CI'ya ihtiyacınız varsa, bir fiziksel sunucuya ihtiyacınız varsa bir CI hikayesi ekleyebilirsiniz, elbette bunun için bir hikaye ekleyin.

Ancak 1. Günde teslim etmeye başlayın ve asla durmayın!


1

Erken dönemdeki yinelemeler, özellikle 1'i, en azından belirli bir keşif zamanı ve belki de bazı mimari prototipler içeren mimari sivri uçları planlayacak veya içermelidir.

Sizin de dediğiniz gibi, genel olarak, paydaş / müşteri için çok şey ifade etmeyebilecek, ancak güçlü bir platform veya kalıp yönelimi oluşturmak için gerekli olan yapısal gereksinimler vardır. Bunu tamamlayamazsınız, çünkü A tamamlanana kadar B binasına başlayamazsınız.

Çevik yaklaşımın bir parçası, müşterinin kapanmasıdır, bu nedenle dokümantasyon gerekli değildir, çünkü tek yapmanız gereken telefonu açmak / e-posta göndermek ve bu beklenen bir şeydir. Müşterilerin beklentileri uygun bir şekilde belirlenmeli ve yapılan işler çok özlü ve İHTİYACILIR . Altın kaplama, "İhtiyacınız yok", vb. B'ye geçmek için A'ya ihtiyacınız olanı oluşturun.

Projeye nasıl saldırdığınıza bağlı olarak, belirli bir modülü tamamlamak için yalnızca gerekli temeli oluşturabilirsiniz, bu nedenle sprint planlama toplantısı sırasında, mevcut sprint için planların öncelikler temelinde planlanması gerekir. müşteri, bu sprint için neye ihtiyaç duyulduğuna bağlı olarak, bazı temel gereksinimler olabilir, bu nedenle sprint 1'e girer. 1. sprint tamamlandıktan ve A inşa edildikten sonra B'yi tamamlamayı planlayın.

Müşteriyle bir zaman çizelgesi üzerinde anlaşmış olursanız, bu sözleşmeyi yerine getirdiğiniz sürece, müşteri muhtemelen 1. veya 2. sırada ne yaptığınızla ilgilenmez. Onlara her zaman birim test sonuçlarını gösterebilirsiniz, ancak sprint 2 (veya 3) den sonra görmeniz için bir şeyimiz olacağını söylerseniz ve teslim ederseniz, güçlü bir öncelik kazanır. Müşterilerin geliştiricilerin olduğu kadar makul olması beklenir ve her ikisi de aynı hedefe doğru çalışır. Müşterinin ihtiyaçlarını karşılayan ve beklendiği gibi çalışan tamamlanmış bir proje. Sprint 1'den sonra görecek bir şey olmadığından endişe etmek çok önemli bir nokta çünkü müşteri sadece sprint 20'den sonra projenin tamamlanacağından emin olmak istiyor (-ish).

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.