cemtopkaya (10:46):

15 Eylül 2015 Salı

SCRUM Notlarım

Scrum:İnsanların mümkün olan en yüksek değere sahip ürünleri üretken ve yaratıcı bir şekilde geliştirirken, karmaşık ve adaptasyona açık sorunları ele alabildikleri bir çerçeve.

Scrum, bir ürün geliştirme tekniği veya süreci değildir; içerisinde çeşitli süreçleri ve teknikleri kullanabileceğiniz bir çerçevedir.

Scrum Ana Prensipleri:
Süreçler ve araçlardan ziyade bireyler ve etkileşime,
Kapsamlı dokumantasyondan ziyade çalışan yazılıma,
Sözleşme pazarlıklarından ziyade müşteri ile işbirliğine,
Bir plana bağlı kalmaktan ziyade değişime karşılık vermeye önem verir.

***Çalışan yazılım son kullanıcının kullandığı bütün yazılım testlerinden geçmiş yazılım.

Scrum Teorisi: Scrumın temelinde deneysel süreç kontrol teorisi (veya deneycilik) yer alır. Deneycilik, bilginin deneyimden ve bilinen şeylere dayanarak alınan kararlardan meydana geldiğini ileri sürer. Scrum, öngörülebilirliği en iyi seviyeye çıkarmak ve riski kontrol etmek için iterasyonlu ve artımlı (incremental) bir yaklaşım kullanır. Her deneysel süreç kontrol uygulaması üç ayakla desteklenir: şeffaflık, gözlem ve adaptasyon. 

Deneysel süreçler 3 temel üzerine kuruludur.
Şeffaflık: Sürecin her aşamasında bütün çıktıların herkes tarafından görülebilir olması.
Denetim: Gözden geçirme toplantıları gibi kontroller sağlaması.
Adaptasyon: Kontrol toplantıları sonrasında iyileştirme yaparak tekrar adapte olma.

Scrum Takımı (Scrum Team):

Scrum Takımı:Geliştirme takımı. (Yazılımcı, analist, test mühendisi gibi ürünü geliştiren ekibi içerir.
Ürün Sahibi (Product Owner):Ürün Sahibi, Geliştirme Takımının işini ve ürünün değerini en üst seviyeye çıkarmakla sorumludur.
Geliştirme Takımı (Development Team) :Müşteriyi temsil eden kişi, müşteri gereksinimini en iyi bilen, ürünün vizyonunu en iyi bilen kişi.
Scrum Master:Süreç yöneticisi. Toplantıların doğru zamanda yapılmasını sağlayan, sürecin doğru uygulanmasına yönlendiren, mentorluk, koçluk yapan kişi. Bu kişi yazılımcı olabilir de, olmayabilir de.

Ürün İş Listesi (Product Backlog)

user stories => Kullanıcı hikayeleri
* functional requirements => Fonksiyonel istekler, gereksinimler
nonfunctional requirements =>=> Fonksiyonel olmayan istekler, gereksinimler
bugs => Hatalar
various issues => Çeşitli işler

Geleneksel yaklaşımda bir gereksinim dokumanı vardır. Scrumda bu yok.
Product backlog dokumanı tüm gereksinimleri, iyileştirmeleri, bugları içeren önem sırasına göre sıralanmış bir listedir.

Müşterinin değişiklik istekleri buraya yansıtılır. Müşteri önceliklendirmesi durumunda ön sıralara iş kaydırılabilir.

Product Backlog sürekli olarak yeni ihtiyaçlarla beslenir. Bu beslenmenin temel nedenleri ürüne yeni ihtiyaçların eklenmesi veya release(yayın) sonucunda ortaya çıkan eksikliklerdir. Bu eksikler sonraki sprintlerde çözülmeyi bekler.

Product Backlog elemanları belirlenirken belirli özellikleri barındırıyor olması gerekir. Bu özellikler scrum süreçleri içerisinde “INVEST” olarak adlandırılan maddelerdir.

Independent: Product Backlog listesindeki her bir eleman birbirinden bağımsız olmalıdır. Örneğin A elemanı B elemanı başlamadan başlayamıyor olmamalıdır. Eğer iki elemanın birbiriyle çakıştığını düşünüyorsanız onları tek bir elemanda birleştirmeniz önerilir.

Negotiable: Sprintler sırasında Product Backlog elemanları değiştirilebilir olmalıdır.

Valuable: Product Backlog elemanları müşteri merkezli olmalıdır. Ortaya çıkan özellik müşteriyi memnun edecek olmalıdır.

Estimable: Product Backlog elemanları tahmin edilebilir olmalıdır. Yani herkes elemanın sınırlarını anlamalıdır. Böylece planlama daha kolay olacaktır.

Small: Product Backlog elemanları olabildiğince küçük olmalıdır. Kısacası bir eleman sprintin büyük bölümünü kaplamamalıdır.

Testable: Eleman test edilebilir olmalıdır. Yani elemanın müşterinin onayından geçmesini sağlayacak bütün özellikleri belirtilmiş olmalıdır. Bu genellikle “Acceptance Criteria” dediğimiz “Kabul Kriterleri” listesinin kaliteli hazırlanmış olmasıyla alakalıdır.




Sprint İş Listesi (Sprint Backlog)

(1) Sprint için seçilen Ürün İş Listesi kalemlerini ve (2) Ürün Parçasını teslim etme ve Sprint Hedefine ulaşma planını içerir. Sprint İş Listesi, Ürün Parçasında hangi fonksiyonların olacağına ve bu fonksiyonları “Bitti” tanımına uygun bir Ürün Parçasına dönüştürmek için gerekli olan işe dair bir öngörüdür.

Scrum yöntemi ile yönetilen projeler “sprint” denilen fazlara ayrılır. Herbir “sprint”in süresi genellikle (en fazla) 30 gündür. İdeal olan proje boyunca boyunca tüm “sprint”ler aynı süreli olur. Proje takımı (scrum team), proje yöneticisi (scrum master) ile her sprint başlangıcında masaya oturarak yeni “sprint” dahilinde geliştirilecek özellik ve fonksiyonları belirler. Bu süreçte seçilen fonksiyon ve özellikler daha önceden oluşturulmuş ve sürekli güncellenen Product Backlog listesindeki sıra ile en öncelikli olanlardır. Hiçbir zaman önceliği düşük bir özellik veya fonskyon önceliği yüksek bir özellik veya fonskyiondan önce geliştirilemez. Bu bağlamda bazı “sprint”lerde proje takımı, Product Backlog’dan 4 eleman, bazı sprint’lerde 25 eleman seçebilir. Seçilen özellik ve fonksiyonlar Sprint Backlog denilen ikinci bir listeye aktarılır. Proje takımı bir sonraki sprint başlangıcına kadar bir daha Product Backlog’a bakmaz, o sprint dahilinde sadece ilgili Sprint Backlog listesine odaklanır.

Hiç yorum yok:

Yorum Gönder