Takımlar için Yazılım Geliştirme Manifestosu
in Agile, Yazılar, Yazılım
Hedef ulaşılmak ya da elde edilmek istenen yer demektir. Hedef nişan aldığınız şeydir. Bunun için keskin bir konsantrasyon ile odaklanmak gerekir. Hedef gitmek istediğiniz yerdir. Onun için plan yapar, en verimli şekilde en doğru yoldan nasıl ulaşabileceğinizi araştırırsınız. Hedef ona ulaşabilmek için tüm enerjinizi ona yönlendirmenizi ister. Bazen yıllar süren çalışma gereklidir. Sizi rahatlıkla yıldırabilecek başarısızlıklar ve sayısız deneme yanılma yaşamak zorunda kalırsınız. Bazen de hedef birkaç santim ötenizdedir. Tek bir hamle yeter, ancak o hamle için doğru zamanı yakalamak zorundasınızdır.
Ulaşmak istediğimiz şeyler için çoğunlukla kendimize -bilerek ya da bilmeyerek- hedef belirleriz. Kariyer hedefleri arasında terfi almak ya da kendi şirketini açmış olmak sıkça yer bulur. Evlenmek, arabayı değiştirmek, ev sahibi olmak, zengin olmak, yurtdışı seyahate çıkmak, iyi bir okulda okumak, sınavlarda başarılı olmak da kişisel hedeflerimiz arasındadır. Herkesin büyük ya da küçük, uzun ya da kısa vadeli, kolay ya da zor mutlaka bir hedefi vardır.
Takım ve şirketlerin de hedefleri olmalıdır. Tüm stratejik kararlar bu hedefler doğrultusunda yapılmalı ve çalışanların emek ve odakları tek bir noktada toplanmalıdır. Bunun örneklerini birçok yerde görebilirsiniz. Mesela toplam kalite yönetimi uygulayan şirketlerin çoğunun girişinde tabelalar üzerinde büyük puntolarla şirketin misyonu ve vizyonu yazar. Şirketin ilkeleri ve ulaşmak istediği nihai hedefler açık seçik belirtilir ki, şirketin ne amaçladığı, yaşatılmak istenen kurum kültürünün ne olduğu çalışan çalışmayan herkes tarafından bilinsin. Tüm stratejiler bu ilkeler çerçevesinde oluşturulur. İlkelerin benimsenmesi için çalışanlar eğitilir ve amaca hizmet edecek aktiviteler gerçekleştirilir. Misyon ve vizyon, şirketlerin “ben buyum ve bu olmak istiyorum” dedikleri ulvi ilke ve amaçlardır.
Bir diğer örnek de internette sıkça gördüğünüz manifestolardır. Manifesto kavram olarak toplumsal bir hareketin duyurulması ve savların belirtilmesi üzerine kurulan, bir akımın, bir hareketin oluşunu bildiren yazılara denir. Toplumlara ya da topluluklara ulaşabilmek amacıyla nihai bir amaç ve ulvi bir hedef gösterir. Manifestolar dünya tarihinde olduğu kadar Türk tarihinde de önemli bir yere sahiptir. Kurtuluş savaşımızının ilk yıllarında yayınlanan ve tüm milleti tek hedef üzerinde odaklayan sivas ve erzurum kongreleri kararları bunlardan birkaçı olarak gösterilebilir. Yazılım dünyasında ise manifestolar tanımladığı ilkeler ve prensipler ile yaşanan sorunları çözmeyi hedefler. En bilineni Agile Manifesto ve Software Craftsmanship Manifesto bu alanda sayılabilir.
Yazılım geliştirmek, özellikle de takım halinde yazılım geliştirmek belli bir disipline sahip olmayı gerektirir. Hızla değişen yazılım dünyasına, ışık hızında gelişen teknolojilere, projelerin türlü ihtiyaçlarına ayak uydururken kalıcı, dayanıklı, esnek ve kaliteli yazılım geliştirmek için elinizde size yol gösterecek tek şey yazılım ilkeleridir. Yazılım ilkeleriniz sizin, takımınızın ve kurumunuzun misyon ve vizyonudur. “Ben şu şekilde yazılım geliştiriyorum” diye anlatabileceğiniz kültürdür, disiplindir.
Yazılım geliştiren her takım ve kurum yazılım ilkelerini belirlemeli, takip edeceği disiplini oluşturmalıdır. Çalışanlarından da bu ilkelere uymasını beklemelidir. İlkeleri esnetmemeli, herkesten aynı hassasiyeti beklemelidir.
Eğer yazılım takımınızın bir manifestosu yoksa, hemen birini yaratmaya koyulun. Bu manifesto, hedeflerinizi ve bu hedeflere ulaşmak için uymayı planladığınız prensipleri içermelidir. Örnek olması açısından, yazılım takımlarımız için hazırladığım “Yazılım Geliştirme Manifestosu”nu aşağıda listelemeye çalıştım. Manifestoyu tasarlarken Agile Manifesto, Software Craftsmanship, XP, Scrum ve Kanban’dan esinlendiğimizi belirtmeliyim.
Takımlar için Örnek Yazılım Geliştirme Manifestosu
Müşteriye sık sık demo yapar, geliştirme sırasında kendisinden geribildirim alırız. [Customer Involvement]
Manifestonuzun benim verdiğim örneğe benzemesi gerekmez. Uzun ya da kısa olması gibi bir zorunluk da yok. Sizin yazılım geliştirme kültürünüzdeki ve iş yapış şeklinizdeki hedeflerinizi göstersin yeter.
Manifestonuzu yazmanız yetmez. Bu bilgileri şirketinizdeki tüm yazılımcılara ve aranıza katılan her yeni çalışana anlatmalısınız. 2012’de manifestoyu yarattıktan sonra ilk işim bunu tüm takım ile paylaşmak ve onlara madde madde anlatmak oldu. O andan bu yana da aramıza yeni katılan yazılımcıların ilk gün eğitimlerinde manifestomuzu anlatıyorum. Herkesin takımımızın hedefi olan yazılım geliştirme kültürünü bilmesi ve buna uyması gerektiğini düşünüyorum.
Hedefler ve prensipler uygulanmaz sadece yazıda kalırsa, size yokluğundan daha çok zarar verir. Bu nedenle manifestonuz ışığında yazılım geliştirme süreçlerinizi değiştirmek, düzenlemek ve iyileştirmek zorundasınız. Biz mevcut manifestomuzu 2 kez yeniledik ve daha gerçekçi hale getirdik. Düzenli olarak gözden geçirip yeni eklemeler ve düzenlemeler ile iyileştirmekteyiz.
Belirleyeceğiniz yazılım geliştirme manifestosu size yepyeni bir motivasyon sağlayacaktır. Her maddenin bir anda başarılabilmesi elbette mümkün değil. Ancak disiplinli ve odaklı bir şekilde takip edilirse, yönetiminizin de desteğiyle bir süre sonra daha motive çalışan, daha mutlu müşteri ve daha kaliteli ve başarılı yazılımlara ulacağınız kesin.
Pingback: Yazılım Kültürü ve Takım Standartları - Enes Aysan
Posted at 13:28, 25/01/2020