Yeni raporumuz yayında! Yazılımcıların gözünden Yapay Zeka (AI) Raporu 2024 Hemen göz atın→

Yeni raporumuz yayında! Yazılımcıların gözünden Yapay Zeka (AI) Raporu 2024 Hemen göz atın→

Agile Metodolojisi

Haziran 27, 2019

LaunchCode’daki Agile Proje Yönetimi

Başarılı bir proje kurmak çok emek ve ciddi boyutta azim gerektirir. Ancak bir projenin kurulumunda başarılı olmak için çok çalışmaktan da fazlasına ihtiyaç duyduğunu az sayıda kişi fark edebilir. En başarılı developerlar ve developer ekipleri projelerini sistematik şekilde üretenlerdir ve Agile metodolojisi konseptlerini kullanmayı benimseyenlerdir.
Her şeyi mümkün olduğunca basit tutmaya ve sadece kullanıcı için en fazla öneme sahip olan faktörler üzerinde çalışırlar. Kulağa mantık dışı gelebilir fakat bu kişiler üretmedikleri şeyleri maksimize etmeye odaklanırlar.

İlk bakışta bu insanların strateji kurmaya ve sürekli proje oluşturmaya dair doğuştan gelen bir yeteneğe sahip oldukları düşünülebilir. Fakat aslında bu kişiler Agile metodolojisinde geçen birtakım konseptleri benimsemişlerdir.

“Agile”, teknoloji sektöründe oldukça ün kazanmış olan popüler bir kelimedir. Görünüşte, Agile aşırı karmaşık olabilir ama aslında doğacında oldukça basittir. Agile metodolojisine göre daha basit şekilde kurulan bir yazılım, kullanıcıların ihtiyaçlarını daha iyi karşılayabilecek niteliktedir. Agile’da aslında her şey tamamen bu fikirden ibarettir.

LaunchCode’un ülke genelinde teknoloji sektörü dalında ücretsiz eğitim ve maaşlı strajyerlik imkanları sunabilmesini sağlamak için, LaunchCode yazılım ekibi her gün Agile metodolojisini kullanmaktadır. Agile’ı gerçekten de çok seviyoruz. Bir ekip olarak daha iyi projeler üretmemizi, zamanımızı daha verimli kullanmamızı ve diğer insanlara yardım etmemize olanak tanıdığı için işimizden fazlasıyla keyif almamızı sağlıyor.

LaunchCode yazılım ekibi ve teknoloji dünyasının da çoğu tarafından benimsenen bu Agile konsepti sizin projenize de katkı sağlayabilir.

Gelin birlikte bu Agile metedolojisine yakından bir göz atalım.

Agile nedir?

Agile, 2001 yılında bir grup yazılım geliştiricisinin biraraya gelip dünyanın nasıl yazılım kuracağını değiştirmeye karar vermesiyle ortaya çıktı. Bu grup, Agile manifestosu adında bir doküman yazdı. Agile manifestosunu developerlar için bir “bağımsızlık ilanı” olarak düşünebiliriz. Amaçları developerların ruhlarını bağımsızlaştırırken aynı zamanda da kullanıcıların ihtiyaçlarını daha etkili ve verimli olarak karşılamaktı.

Bu developerlar toplamda 12 tane prensibi kaleme aldılar. Bu prensiplerin hepsi birbirinden harika fakat biz bu yazıda Agile manifestosunda yer alan sadece iki konsept üzerine odaklanacağız:

1. Tam olarak ihtiyacı olan şeyi üretebilmek için müşteriyle yakın çalış.
2. Developerların verimli ve mutlu çalışmalarından emin ol.

Agile konseptini anlamak için tarih boyunca yazılımların nasıl geliştirildiğini de anlamamız gerekir. Geleneksel anlamda yazılım, Waterfall metodunu kullanarak üretiliyordu. Waterfall metodunda öncelikle uygulamanızda olmasını istediğiniz tüm özelliklerin genel bir planını
çıkarıyorsunuz. Hatta özelliklerin hangi sırada tamamlanacağına bile bu adımda karar verebilirsiniz. Sonraki adımda planladığınız tüm özellikleri teker teker kuruyorsunuz. Tüm özelliklerin kurulumu bittikten sonra projeniz tamamlanmış demektir ve artık kullanıcıya sunabilirsiniz.

Waterfall metodu kulağa oldukça cazip gelebilir. Derin ve detaylı bir işlem. Geleceği planlamanıza olanak sağlıyor. Hatta bazı developerlar için doğal olarak tercih edilen bir çalışma stratejisi bile olabilir. Fakat her teknik projede olduğu gibi bazı aksaklıklarla karşılaşmanız olası. Öncelikle bazı şeyler yolunda gitmediğinde ne yapacaksınız? Örneğin
planladığınız özelliklerin bazılarını kurmak beklediğinizden de uzun sürüyorsa işe yarayan bir uygulamanız olacak mı? Kullanıcı o uygulamayı kullanmaya değer olarak görecek mi? Tamamlanan özellikler buglardan yoksun ve iyi çalışır nitelikte mi? Sürekli teslim tarihini yetiştirmeye çabalayan bir developer olarak işinizden ne kadar keyif alacaksınız?

Agile metdolojisi, sizi alışılmışın dışında düşünmeye zorlar. En mükemmel proje yerine, başlangıçta mükemmel olmayan bir projeyi sunarsınız. Onlar için en önemli özelliklerin ne olduğunu kullanıcılara sorun. Kullanıcılardan en fazla gelen özelliğe öncelik vererek bunu tamamlayın. Bu özelliği kullanıcılara iletin ve hakkında ne düşündüklerini sorun. Sonra kullanıcılar için en önemli olan ikinci özellik üzerinde çalışın, kullanıcıya sunun ve yine düşüncelerini sorun. Diğer özellikler için de aynı bu işlemleri tekrar edin.

Agile metodolojisinin iki önemli avantajı vardır.

Birincisinde zaman geçtikçe tutarlı olarak projenizi sunuyor ve hakkında yorum alıyorsunuz. Yani projeniz tamamen bitmiş olmasa bile büyük bir ihtimal fonksiyonel ve çalışır durumda olacak. Bu iyi bir şey.

İkincisinde ise Waterfall metoduna göre yapmış olabileceğiniz projenize başlangıçta eklemiş olduğunuz bazı özelliklerin önemli olmadığını hatta dikkat dağıtıcı şeyler olduğunu tespit edebilirsiniz. Agile metodunda ise bu tip önemli olmayan özellikler üzerine daha önce hiç odaklanmadığınız için zamandan kazanırsınız. Ayrıca uygulamanız daha az karmaşık ve dağınık olur.

Agile

Pratikte Agile

İster profesyonel kariyerine ilk adım atmaya hazırlanan bir acemi developer olun; ister deneyimli yazlım mühendisi olun Agile metodu, bu sektörde çalışan herkes için yazılım geliştirmeyi eğlenceli ve verimli bir hale dönüştürmeyi amaçlıyor.

Bir proje kuran, bir uygulamayı piyasaya süren veya dünyayı değiştirmeye çalışan herkes için LaunchCode’dan Agile ile ilgili ipuçlarını aşağıda bulabilirsiniz:

Basitlik

Agile metodunun en önemli prensiplerinden biri basitliktir. “Basitlik – yapılmayan işleri en yükseğe çıkarma sanatı – olmazsa olmazdır.”

Kullanıcı Hikayeleri

Kullanıcı hikayelerini kullanarak özelliklerinizi bir çerçeve içerisine alın. Bir özelliği kullanan kişileri ve bunu neden kullandıklarını düşünün. Hedeflerinizi küçük ve başarılacak eylemlere göre belirleyin.

Örneğin bunu söylemek yerine:

“Bir e-ticaret sitesi kur.”

Bunu söyleyin:

“Jane, satışta olan her ürünün bir fotoğrafını görebilmeli.”

“Jane, isme ve renge göre ürün araması yapabilmeli.”

ya da “Jane, kredi kartı bilgilerini kullanarak bir ürünü satın
alabilmeli.”

Kullanıcı hikayeleri sayesinde büyük kapsamlı bir projeyi küçük parçalara bölerek bu parçaları teker teker kullanıcılara sunma şansına sahip olursunuz. Hikayeler bir kullanıcı bakış açısından yazılacağı için, uygulamayı kullanacak genel kullanıcı kitlesi yerine o tek kullanıcının ihityaçlarını göz önünde bulundurmanız daha kolay olur.

YAGNI Prensipi

(Ona ihtiyacınız olmayacak.) Durun! O özelliği uygulamanıza eklemeden önce o özelliğe büyük bir ihtimal ihtiyacınızın olmayacağını kendinize lütfen hatırlatın. Öncelikle sadece ve sadece en önemli olan özellikler üzerinde çalışın. Çünkü “küçük” veya “basit” olarak görülen
özellikler bile tamamlanması fazla zaman alabilir veya projenizi karmaşık bir hale getirebilir. Sadece olmazsa olmaz olarak gördüğünüz özelliklere odaklanın.

Bir An Önce Teslim Edin

Projeniz büyük bir ihtimal insanlara yardımcı olmak amacıyla üretildi. Yani insanların onca zamandır beklediği şeyi onlara teslim edin artık! Mükemmel olmasa bile çalışıyor durumda olduğu sürece hemen kullanıcılara ulaştırın! Github’a koyun. İnternete sürün. Uygulama mağazasında güncellemesini yapın. Bir arkadaşınızla paylaşın. LaunchCode’a kaydolun. Projenize dünyadan gelen tepkileri gördüğünüzde olumlu bir şekilde şaşıracağınızdan eminiz.

LaunchCode’da Agile

LaunchCode’da; website, aday yönetimi ve eğitim yazılımı da dahil olmak üzere tüm yazılım sistemlerinde çalışan altı developer ve bir ürün yöneticisi var. Ekip dahilinde öncelik vermemiz gereken şeyleri belirlemek için iş sorumluluklarımızı öneme göre sıralarken Agile ve Scrum konseptlerini benimsiyoruz. Aynı zaman içerisinde yaklaşık olarak üç ile beş arasında farklı projemiz olabiliyor. Öncelik verilecek işleri ürün yöneticimiz kullanıcı
hikayelerinin etkisini baz alarak belirliyor.

Belirli özellikleri kullanıcıya bir an önce sunmak için iki hafta yoğun çalışma sürdürüyoruz. Her özellik bir kullanıcı hikayesi olarak yazılıyor ve bu kullanıcıya isim bile veriyoruz. Karmaşıklığına, riskine ve emeğine göre her kullanıcı hikayesine bir puan veriyoruz. Özellikleri
tamamladıkça her hafta kaç puan aldığımızı hesaplıyor ve bu veri doğrultusunda gelecek haftalar boyunca kaç puan alacağımızı tahmin ediyoruz. Pivotal Tracker online yazılımı yardımıyla kullanıcı hikayelerininin öncelik sırasını önemine göre belirleyebiliyoruz. Developerlar en önemli kullanıcı hikayesini seçiyor ve bu hikayede yer alan özelliği kullanıcılara sunuyor. İşlem kendini bu şekilde sürekli olarak tekrarlıyor.

Ekibimiz günlük olarak biraraya gelip ayaküstü muhabbet yapıyor. Ekipteki herkesin neler üzerinde çalıştığını öğrenmek, günlük hedeflerini dile getirmek ve işlerini yapmalarına engel olan faktörleri belirtmek açısından hepimiz için harika bir fırsat. Her iki haftalık yoğun çalışma süreci sonrasında ise nelerin yolunda gittiğini ve nelerin daha da geliştirebileceğini
tartışmak için bir toplantı yapıyoruz. Böylece süreçten biz de dersler çıkarıyor ve sürekli olarak projelerimizi daha da ileriye taşıyoruz. Bu strateji bizim ekibimiz için işe yarıyor ve tüm bu bahsettiklerimizin genel olarak herkes için iyi bir tavsiye olduğunu düşünüyoruz.

Herkese keyifli kodlamalar dileriz.

Orijinal Kaynak: Launch Code – The Agile Process

Kriterlerine uygun pozisyonlarla eşleşmeye hazır misin? Hemen ücretsiz profilini oluştur.

Recent Posts

Go to Top