16 Ağustos 2018

Scaled Agile Framework - SAFe

SAFe, Ölçeklendirilmiş Çevik Yaklaşım (Scaled Agile Framework- SAFe®), organizasyonların, büyük ölçekli yazılım ve sistemleri en kısa sürdürebilir teslim süresinde geliştirme ve pazara sunma aşamalarında karşılaştıkları zorlukları ele almasına rehberlik sağlayan çevik geliştirme metodolojilerinden biridir.

SAFe, Ölçeklendirilmiş Çevik Yaklaşım (Scaled Agile Framework- SAFe®), organizasyonların, büyük ölçekli yazılım ve sistemleri en kısa sürdürebilir teslim süresinde geliştirme ve pazara sunma aşamalarında karşılaştıkları zorlukları ele almasına rehberlik sağlayan çevik geliştirme metodolojilerinden biridir. Çok büyük ve büyük ölçekli yazılım ve sistem geliştirme faaliyetleri için çevik ekipleri bir araya getirerek senkronize etmek ve uyumlandırmak için yalın ve çevik yaklaşımları temel alan başarısı kanıtlanmış pratikler bütünüdür. SAFe, başarısı kanıtlanmış yüzlerce uygulama ile çevik, yalın ve sistem mühendisliği bakış açılarını bir araya getiren 9 temel prensipten oluşmuştur;

  1. Ekonomik bir bakış açısı ile bak
  2. Sistematik düşünceyi uygula
  3. Değişkenleri göz önüne al, seçenekleri değerlendir
  4. Hızlı, entegre öğrenme döngüleri ile aşamalı olarak geliştir
  5. Objektif değerlendirme için kilometretaşlarını esas al
  6. WIP’yi (work in process) görselleştir ve sınırla, batch büyüklüklerini azalt, ve kuyruk uzunluklarını yönetin ve kuyruk uzunluklarını yönet
  7. Ritmi uygulayarak, alanlar arası planlama ile senkronize et
  8. Çalışanların içsel motivasyonunun kilidini aç
  9. Bağımsız bir karar verme mekanizması oluştur

SAFe, güncellenen son versiyonu 4.5 ile farklı organizasyon büyüklükleri ve geliştirme ortamlarını destekleyebilecek 4 ayrı konfigürasyon sunmaktadır;

  • Essential SAFe
  • Large Solution SAFe
  • Full SAFe
  • Portfolio SAFe

Essential SAFe

SAFe yaklaşımının temeli olup, uygulama için en basit başlangıç noktasıdır. Diğer tüm SAFe konfigürasyonları için temel yapı taşıdır ve çerçevenin faydalarının çoğunu gerçekleştirmek için gereken en kritik öğeleri tanımlar.

Takım ve Program Seviyeleri, çevik takımların, kilit paydaşların ve diğer kaynakların önemli ve devam etmekte olan bir çözüme atanmış olduğu Agile Release Train (ART) olarak ifade edilen organizasyonel yapıyı oluşturur.

Large Solution SAFe

Çok büyük ölçekli ve karmaşık çözümlerin geliştirilmesi için kullanılır, birden fazla ART ve tedarikçi içerir, ancak portföy seviyesini içermez. Havacılık, savunma, otomotiv ve kamu vb. ürün başarısının öncelikli olduğu sektörlerde kullanımı yaygındır.

Modelin Solution Train (Çözüm Treni) yapısı, büyük ölçekli, çok disiplinli yazılım, donanım ve karmaşık BT sistemleri geliştiren organizasyonların karşılaştığı geliştirme sorunlarının çözümüne yardımcı olmayı amaçlar.

Bağımsız sistemler geliştiren veya az sayıda uygulayıcı ile geliştirilebilen organizasyonlar bu yapılandırmaya ihtiyaç duymayabilir.

Portfolio SAFe

Portföy SAFe yapılandırması, geliştirme faaliyetlerinin sağlayacağı stratejik katma değeri göz önüne alarak portföy yönetimi ile organizasyonel stratejinin uyumlu olmasına yardımcı olur. Organizasyonun stratejik hedeflerine ulaşması için ihtiyaç duyduğu sistem ve çözümleri oluşturacak kişi ve süreçleri içerir.

Portföy SAFe pratikleri ve prensipleri ile Portföy stratejisi, yatırım finansmanı, çevik portföy yönetimi ve yalın yönetim için iş çevikliğinin kazanılmasını sağlar. Büyük ölçekli organizasyonlarda birden fazla SAFe portföy yapılandırması uygulanabilir.

Full SAFe

Çerçevenin en kapsamlı sürümüdür. Yüzlerce kişi veya daha fazlasına ihtiyaç duyan ve tüm SAFe seviyelerini içeren (takım, program, çözüm ve portföy) büyük ölçekli entegre çözümlerin geliştirilmesini ve sürdürülmesini sağlayan organizasyonlar için uygundur. Çok geniş ölçekli organizasyonlarda, farklı SAFe konfigürasyonlarının çoklu örnekleri gerekebilir.

Yol Haritası

SAFe Uygulama Yol Haritası, SAFe çerçevesinin tanımlandığı genel bir grafik, SAFe'in başarıyla uygulanmasında etkili olduğu kanıtlanmış düzenli bir dizi aktivite ve SAFe stratejisini tanımlayan 12 makale dizisinden oluşur. SAFe’i uygulamak isteyen organizasyonlar, süreci yönetecek ve liderlik edecek danışmanları atayarak, üst yönetimi, yöneticileri ve liderleri de dahil ederek tüm çevik takımların gereken eğitimleri almasını sağlamalıdır. SAFe’e geçiş için izlenecek uygulama planı oluşturulmalı, sürecin performansını ölçecek metrikler tespit edilerek izlenmeli ve Çevik Sürüm Treni (Agile Release Train-ART) oluşturulmalıdır.

SAFe kazanımlarını edinmeden önce, organizasyonlar yalın-çevik anlayışını benimsemeli ve uygulamalıdır. Yalın-çevik portföyü uygulamak, kalite anlayışını kurmak ve DevOps için mekanizmalar oluşturmak zorundadırlar.

Kavramlar

SAFe, kurumsal seviyede çevik değer akışını benimsemek ve uygulamak için oldukça yapılandırılmış bir çerçeveyi ana hatlarıyla belirleyen bir yöntemdir. Bu nedenle Scrum kadar kolay ve kısa sürede adapte edilebilecek bir çerçeve değildir ancak yapısı itibariyle çevik metodolojilerde kullanılan pek çok kavramı SAFe’de görmek mümkündür, bu temel kavramlardan bazıları aşağıdaki biçimde özetlenmiştir;

Kavram

Agile

SAFe

Ürün Vizyon Beyanı

Ürünün, organizasyonun stratejisine sunduğu katkıyı kısaca özetler.

Vizyon, geliştirilecek çözümün, müşteri ve paydaşların ihtiyaçlarının yanı sıra bu ihtiyacı karşılamak için önerilen özellikler ve kabiliyetleri içeren geleceğe yönelik bir bakış açısı tanımlar.

Sprint Gözden Geçirme/Demo

Geliştirme takımının "bitti" tanımına uyan ürününe ilişkin paydaşların geribildirim verdiği gözden geçirme faaliyetleridir.

Çözüm kapsamına bağlı olarak SAFe'de 3 farklı demo mevcuttur:
Takım demosu: hızlı geribildirim almak için ekip içi yapılan demolardır.
Sistem demosu: ART tarafından sunulan  entegre edilmiş sistemin gözden geçirilmesidir.
Çözüm demosu: Değer akışı için birincil ilerlemenin ölçüsüdür.

Retrospektif

Scrum master, ürün sahibi ve geliştirme takımının sprintte iyi/kötü giden konuları görüştüğü, bir sonraki sprintte uygulanabilecek iyileştirmeleri değerlendirdiği gözden geçirmelerdir.

Her iterasyon sonunda çevik takımlar iterasyon retrospektifi yaparak, uygulamaları ve iyileştirme önerilerini değerlendirir. Retrospektif ve problem çözümleme workshopları ile takım ya da program seviyesinde problemler tanımlanır, kök neden analizleri yapılır ve iyileştirme backlogları üretilir.

Scrum Master

Scrum master, geliştirme takımını destekleyen, fonksiyonel ve üretken bir liderdir. Scrum master çevik süreçlerde uzmandır ve takıma koçluk yapabilir.

Scrum master, diğer sorumluluklarına ek olarak, ART’de yer alan diğer takımların birbirileri ile koordinasyonunu sağlar ve gerektiğinde yönetim ile ilerleme durumunu paylaşır.

Ürün Sahibi

Geliştirme takımının "bitti" tanımına uyan ürününe ilişkin paydaşların geribildirim verdiği gözden geçirme faaliyetleridir.

Çözüm kapsamına bağlı olarak SAFe'de 3 farklı demo mevcuttur:
Takım demosu: hızlı geribildirim almak için ekip içi yapılan demolardır.
Sistem demosu: ART tarafından sunulan  entegre edilmiş sistemin gözden geçirilmesidir.
Çözüm demosu: Değer akışı için birincil ilerlemenin ölçüsüdür.

Geliştirme Takımı

Çevik takımlar, kendi kendini organize edebilen ve yöneten, çapraz fonksiyonel ekiplerdir.

Geliştirme takımları bağımsız birimler değillerdir, bunun yerine, daha büyük bir değere sahip olma sorumluluğunu üstlendikleri ART’lerin ayrılmaz bir parçasıdır. 

Kanban

Daha esnek planlama, hızlı geliştirme, odaklanma ve daha fazla şeffaflık olanakları nedeniyle Kanban sıkça kullanılan bir yöntemdir.

Bazı takımlar kanbanı birincil çevik geliştirme yöntemi olarak seçer. Ancak bu takımların ART’lerin bir parçası olduğu ve ART’nin kurallarının uygulanması gerektiği unutulmamalıdır. Değer akışı ve program kanbanları, portföy kanbanları ile bağlantılıdır.

Kullanıcı hikayeleri (user stories)

Kullanıcı hikayesi, bu gereksinimin kime yönelik olarak yapılması gerektiği açısından bir ürün gereksiniminin basit bir tarifidir. Her bir kullanıcı hikayesini tamamlamak için harcanacak efor sprint planlama esnasında story point olarak tahminlenir.

Kullanıcı hikayelerine ek olarak destekleyici hikayeler (enabler stories) içerir.

«Bitti» tanımı

Sprint sonunda, gereksinimlerin karşılanmış olması ve sürümün yayınlanması, scrum takımının belirlediği «bitti» tanımına uygun olmasına bağlıdır.

Birlikte ele alındığında, sürekli doğrulama ve geçerleme ile sistem fonksiyonelitesinin sürekli olarak arttırılması ve nihai çözümün kendisi, «bitti» tanımını yansıtır.

Backlog

Kullanıcı hikayeleri olarak dokümante edilen, ürünü tanımlayan gereksinimlerin tam listesidir.

Portföy backlog, değer akışı, program ve takım backloglarını içerir.

Velocity

Çevik bir takımın belirli bir süre içinde ne kadar fonksiyon sunabileceğini tahmin etmek için kullanılır. Her bir sprintte geliştirme takımının tamamlanan kullanıcı hikayesi sayısı ile hesaplanır.

Birden fazla çevik takım arasında koordinasyon gerektiren işler için doğru tahminler yapılabilmesi amacıyla kullanılır.

Test-Driven / Test-First DevelopmentBir XP uygulaması olarak, test senaryolarının geliştirilmesi ve testlerin koşulması esnasında gereksinimlerin geliştirilmesidir.SAFe'nin dört temel değerinden biri olan Yerleşik Kaliteyi destekleyen bir felsefedir. Otomatik Test pratikleri ile desteklenen Test Odaklı Geliştirme ve Kabul Test Odaklı Geliştirme olarak ikiye ayrılabilir.

 

Yapılan çalışmalar, Amerika’nın Fortune 100’de yer alan organizasyonların % 70'inden fazlasının Sertifikalı SAFe® profesyonellerinden düzenli ve öngörülebilir bir planlama dahilinde sürekli katma değer sağladığını göstermektedir. SAFe, hem müşteriler hem de çalışanlar için kurum çapında iyileştirmeler sağlayan olgun bir çerçevedir. Örnek uygulamaların sonuçlarına bakıldığında SAFe uygulayan pek çok organizasyonun aşağıdaki faydaları sağladığı görülmüştür;

  • Hataların %25-%75 oranında azalması,
  • %20-%50 verimlilik artışı,
  • Sürüm çıkarma hızının %30-%75 oranında artması

SAFe ile daha detaylı bilgi için ilgili tüm rehber dokümanlara, blog yazılarına ve diğer kaynaklara scaledagileframework.com adresinden ulaşabilirsiniz.

Referanslar:

https://www.scaledagileframework.com/

http://processgroup.com/using-the-best-of-scrum-safe-and-cmmi/