Agile Manifesto Nedir?
On yedi yazılım gurusu 2001 yılında Amerika’nın Utah eyaletinde bir araya gelip yazılım geliştirme ile alakalı 2 günlük bir beyin fırtınası yaptılar. Toplantının amacı yazılım geliştirme üretkenliğini arttırmak, bu doğrultuda da farklı tecrübe ve yaklaşımları değerlendirmekti.
Toplantı sonucunda fikir birliğine varılan ve toplantının bir çıktısı sayılabilecek 4 maddelik bir değerler topluluğunu Çevik Yazılım Geliştirme Manifestosu ismi ile yayınladılar. Bu bildirge geçtiğimiz 15 yıllık süreçte yazılım projelerinde elde edilen başarının artması için bir yön gösterici ve hedef vizyon halini alarak ana akıma dönüştü.
Agile Manifesto’nun Türkçesi
- Süreçler ve araçlardan ziyade bireyler ve aralarındaki etkileşimlere
- Kapsamlı dökümantasyondan 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
değer vermeye kanaat getirdik.
Özetle, sol taraftaki maddelerin değerini kabul etmekle birlikte, sağ taraftaki maddeleri daha değerli bulmaktayız.
Agile Manifesto’nun İngilizcesi
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.
Agile Manifestonun Anlamı
Agile Manifesto’nun maddelerini okuduğumuz zaman daha az değer verilen kısımların hiç yapılmaması anlamına gelmediğinin akılda kalması önemli. Ayrıca aşağıdaki bazı püf noktaları da göz önünde bulundurmak gerekli;
- Süreçler ve araçları bir değer üretmek için kullanmalıyız. Süreç ve araçlar, kötü bürokrasi yaratacak bir düzeye gelmemeli ve bireyler ve aralarındaki etkileşimleri bozmamalıdır. Süreci takip etmek ve araçları kullanmak önemlidir. Fakat seçimlerimizde bireylerin etkileşimlerini maksimize etmek ve takım oyunu yaratabilmek daha önemlidir.
- Sadece ve sadece değer ifade eden dokümantasyon üretilmeli ve takımın ilerlemesini engelleyici, değerden çok yük oluşturan bir dokümantasyona izin verilmemelidir. Sonuçta haftalarca, aylarca ve yüzlerce sayfa yazılan dokümantasyon aynı paralelde çalışan bir yazılım yok ise müşteri için çok bir anlam teşkil etmeyebilir. Değer odaklı bir yaklaşımla ilerlenmeli, önceliklendirme yapılarak kaynak bu doğrultuda kullanılmalı ve her zaman atılan taşın kaç kurbağa ürküteceği değerlendirilmelidir.
- Kontratlar zaman zaman işlerin ilerlemesini zorlaştıran unsurlar olarak pozisyonlanabiliyor. Bunun yerine müşteri ile konuşmak, bir güven ortamı oluşturmak ve işbirliğine gitmek çevikliği artıracaktır. Müşteri ayrı ve karşı bir taraf olarak değil, takımın bir parçası olarak görülmelidir. Müşteriler sürece dahil olduğu oranda doğru çıktıların üretilebilmesi mümkündür.
- Bir projenin tüm gidişaatını önceden düşünüp planlamak oldukça zahmetli bir iş olduğu kadar hızlıca değişen ortamlarda pek de mümkün bir yöntem değildir. Bu yüzden değişen şartlara göre de planı adapte edebilmek geliştirme etkinliğini artıracaktır. Planın bir araç olduğu ve amaca ulaşmak için bu aracın değişimle birlikte hareket etmesi gerekliliği unutulmamalıdır. Başarının elinizde çok az bilgi varken hemen proje başında yapılan bir plana uymakla gelmesi, plan süreçte adaptaston göstermediği sürece pek olası değildir.
Çevik Yazılımın 12 Prensibi
Bu toplantıda, Agile Manifesto’ya ek olarak 12 Çevik Yazılım prensibi de yayınlanmıştır. Bu maddeler ise şöyledir;
- En önemli önceliğimiz değerli yazılımın erken ve devamlı teslimini sağlayarak müşterileri memnun etmektir.
- 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.
- Ç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.
- İş süreçlerinin sahipleri ve yazılımcılar proje boyunca her gün birlikte çalışmalıdırlar.
- 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.
- Bir yazılım takımında bilgi alışverişinin en verimli ve etkin yöntemi yüzyüze iletişimdir.
- Çalışan yazılım ilerlemenin birincil ölçüsüdür.
- Ç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.
- Teknik mükemmeliyet ve iyi tasarım konusundaki sürekli özen çevikliği artırır.
- Sadelik, işin özü olmayan işlerin yapılmamasını en üst seviye tutmak elzemdir.
- En iyi mimariler, gereksinimler ve tasarımlar kendi kendini örgütleyen takımlardan ortaya çıkar.
- Takım, düzenli aralıklarla nasıl daha etkili ve verimli olabileceğinin üzerinde düşünür ve davranışlarını buna göre ayarlar ve düzenler.
Çevik çalışmalar dileğiyle..
Yorumlar