Agile Prensipleri’ne Yakından Bakalım

Varsayalım mezun oldunuz ve bir işletmede işe başladınız. İşletmenizde karşılaşılan krizler hangi yöntemlerle çözülmelidir?

Krizlere neden olan sebepler ortadan kaldırıldığında krizleri ve olası krizleri de ortadan kaldırmış olursunuz.

İşte bu noktada küresel dünyada örneklerine sık sık rastladığımız ve insani koşulları ön plana çıkaran “agile  prensiplerini” tanımakta fayda var.

Değişen koşullara uyum sağlamak ,problemleri yalın, zararsız ve bilimsel yöntemlerle  çözebilmek organizasyonların rakipleri arasında nereye konumlanacağını seçmeleri demektir. Bu noktada agile kısaca belirsiz bir ortamda dahi başarılı olabilmek için değişime karşılık verebilme ve geliştirme yapabilme esnekliği, kapasitesi ve yeteneğidir.

Agile metodunun tarihi:

Agile fikirlerinin temeli 1970’lerde ortaya çıkmıştır. Geleneksel proje yaklaşımlarıyla yaşanan başarısızlıklar nedeniyle 1970 yılında,Dr. William Royce, büyük yazılım sistemlerinin yönetimi ve geliştirilmesini tartışan bir makale yayınlayarak sıralı gelişim hakkındaki fikirlerini ana hatlarıyla belirtmiştir. Royce bir projenin tıpkı  montaj hattındaki bir ürün gibi geliştirilebileceğini savunmuştur. Sonrasında sistemli hale getirilen Agile Manifesto ve Çevik Yazılımın 12 Prensibi (Twelve Principles of Agile Software) 1990’larda yaşanan endüstri hüsranının sonucu olarak ortaya çıkmıştır. Bu dönemde iş gereksinimleri, müşterilerin istediği uygulamalar ve özellikler, ile müşterilerin isteklerine cevap veren teknolojilerin teslimi arasında önemli ölçüde bir gecikme oluşmuş ve bu gecikme süresinde, iş gereksinimleri ve müşterilerin istekleri değişmiş ve nihai ürün, güncel ihtiyaçları karşılamakta yetersiz kalmıştır.Bu dönemde, Waterfall modelinin öncülüğünü yaptığı günün yazılım geliştirme modelleri; hız talebini karşılamakta yetersiz kalmış ve yazılımların hızlı bir şekilde değiştirebilmesinin avantajlarından da yararlanamamıştır. İçlerinde Jon Kern, Kent Beck, Ward Cunningham, Arie van Bennekum, and Alistair Cockburn’unda bulunduğu 17 kişiden oluşan bir grup, “düşünce liderleri”, önce 2000 yılında Oregon’da bir otelde daha sonra da 2001 yılında Utah’da bir kayak merkezinde buluşarak yazılım geliştirme sürecinde daha üretken ve verimli işler sunabilmek adına beyin fırtınası yaptılar. Toplantılarının sonucunda fikir birliğine vararak Agile Manifesto’yu ve Çevik Yazılım’ın 12 Prensibini yazıya geçirdiler.

Çevik Yazılımın 12 Prensibi

1- En önemli önceliğimiz değerli yazılımın erken ve devamlı teslimini sağlayarak müşterileri memnun etmektir.

Müşteriler, sürümler arasında uzun süre beklemek yerine düzenli aralıklarla çalışan yazımı aldıklarında daha mutlu olurlar.

2- Değişen gereksinimler yazılım sürecinin son aşamalarında bile kabul edilmelidir. Çevik süreçler değişimi müşterinin rekabet avantajı için kullanır.

Bir gereksinim veya özellik talebi değiştiğinde gecikmeleri önleyebilme yeteneği.

3- Çalışan yazılım, tercihen kısa zaman aralıkları belirlenerek birkaç haftada ya da birkaç ayda bir düzenli olarak müşteriye sunulmalıdır.

Takım, çalışan yazılımın düzenli olarak teslim edilmesini sağlayan yazılım Sprint’leriyle çalıştığı için Scrum bu prensibi yerine getirir.

4- İş süreçlerinin sahipleri ve yazılımcılar proje boyunca her gün birlikte çalışmalıdırlar.

İş sürecinin sahibi ve teknik ekip uyumlu hale geldiğinde daha iyi kararlar alınır.

5- Projelerin temelinde motive olmuş bireyler yer almalıdır. Onlara ihtiyaçları olan ortam ve destek sağlanmalı, işi başaracakları konusunda güven duyulmalıdır.

Mutsuz takımlara kıyasla, motive takımların en iyi işlerini teslim etme olasılığı çok daha fazladır.

6- Bir yazılım takımında bilgi alışverişinin en verimli ve etkin yöntemi yüzyüze iletişimdir.

Geliştirme takımı aynı yerde olduğunda iletişim çok daha başarılı olur.

7- Çalışan yazılım ilerlemenin birincil ölçüsüdür.

Müşteriye işlevsel bir yazılım sunmak ilerlemeyi ölçen en temel faktördür.

8- Çevik süreçler sürdürülebilir geliştirmeyi teşvik etmektedir. Sponsorlar, yazılımcılar ve kullanıcılar sabit çalışma temposunu sürekli devam ettirebilmelidir.

Takımlar, çalışan yazılımı teslim edebilecekleri tekrarlanabilir ve sürdürülebilir bir çalışma temposu oluştururlar ve bunu her sürümde tekrarlarlar.

9- Teknik mükemmeliyet ve iyi tasarım konusundaki sürekli özen çevikliği artırır.

Doğru beceriler ve iyi tasarım; ekibin hızı korumasını, ürünü sürekli iyileştirmesini ve değişimi sürdürmesini sağlar.

10- Sadelik, işin özü olmayan işlerin yapılmamasını en üst seviye tutmak elzemdir.

Şimdilik işi bitirecek kadar geliştirme.

11- En iyi mimariler, gereksinimler ve tasarımlar kendi kendini örgütleyen takımlardan ortaya çıkar.

Karar verme gücüne sahip, sahiplik alabilen, diğer takım üyeleriyle düzenli olarak iletişim kuran, yüksek kalitede ürünler sunan fikirlerini paylaşan, yetenekli ve motive takım üyeleri.

12- Takım, düzenli aralıklarla nasıl daha üretken ve verimli olabileceğini değerlendirir ve adapte olur.

Kişisel gelişim, süreç iyileştirme, gelişen beceriler ve teknikler ekip üyelerinin daha verimli çalışmasına yardımcı olur.

Agile metodu kullanımı, geleneksel yöntemlerin zorlukları ve kısıtlayıcılığını kenara bırakmıştır.Genel riskleri azaltması ve ekipteki herkes tarafından bir şekilde uygulanabilir olması sebebiyle iş bitimini oldukça hızlandırmıştır.Doğru ürünü,doğru şekilde,doğru müşteriye iletmenin yolunu kolaylaştırmıştır. Süreç boyunca değişen parametreler kalite standartlarını esnek biçimde değiştirir. Müşteriler sonuçlardan memnun kalırlar ve ekip müşterinin ihtiyaçlarını karşılar. Devam eden değişim bazen hem müşteriye hem de takıma, ürün için öngördüğünden daha fazlasını verebilir. Agile Metodu, gerçekten yazılım geliştirmeye katılan herkes için kazandıran bir çözümdür.

Aydan Dağlar

Kaynaklar:

https://toptalent.co/agile-nedir-agile-metodu-nasil-uygulanir

https://www.innova.com.tr/tr/blog/ik-blog/agile-hakkinda-her-sey

https://mertmekatronik.com/agile-nedir-agile-metodlari