Kanban ve Trello ile Yazılım Geliştirmeyi Yönetmek İçin Başlangıç Kılavuzu
Yayınlanan: 2022-03-11Herkes proje yöneticisidir. İster yeni bir uygulama geliştirmeyi yönetiyor ve girişiminizi büyütüyor olun, ister milyar dolarlık yeni bir kurumsal proje üzerinde çalışıyor olun, ister kendin yap peyzaj düzenlemesi ile bahçenizi canlandırmaya çalışıyor olun, her zaman bir proje yönetiyorsunuz.
Projenizin başarısı birçok faktöre bağlıdır, ancak projelerin başarısız olmasının en yaygın nedenlerinden biri, yönetim eksikliği veya tamamen kötü proje yönetimidir. Ekibiniz ne kadar küçük olursa olsun veya gereksinimleriniz ne kadar net bir şekilde belgelenmiş olursa olsun, ekibinizi doğru bir şekilde yönetmezseniz projeniz başarısız olmaya mahkumdur.
Çevik proje yönetimi, modern yazılım geliştirme projelerine yaklaşmanın yaygın olarak kabul edilen bir yöntemidir. Ama Çevik gerçekten ne anlama geliyor?
Çevik ilkelere daha derin bir dalış için, Çevik Proje Yönetimine İlişkin Nihai Kılavuzumuzu okumanızı öneririm.
Bu yazımızda Kanban ile çevik proje yönetiminin temellerini anlatacağız.
Çevik prensiplerden anlayan deneyimli bir proje yöneticisi olsanız bile, hafızanızı tazelemeli ve temel kavramları kendinize hatırlatmalısınız. Yazılım geliştirmedeki yenilik döngüleri sürekli olarak hızlanmakta ve proje yönetimini her yinelemede daha karmaşık hale getirmektedir. Çevikliğin temel ilkelerine geri dönmek ve temel ilkeleri sağlamlaştırmak her zaman önemlidir. Ne de olsa tekrar, tüm bilgilerin anasıdır.
Kanban, herhangi bir Çevik yazılım geliştirme projesini yönetmenin en kolay yöntemlerinden biridir. Aynı ofisten veya birkaç saat dilimine yayılmış dağıtılmış ekipten çalışan yerel bir geliştirme ekibini kolayca yönetebilirsiniz.
Kanban bir süreç değildir. Ekibin yerleşik operasyonel faaliyetlerinde minimum değişiklikle herhangi bir süreci yönetmenin bir yoludur.
Kanban ilkelerini işinize uygulamak için iki basit kuralı uygulamanız gerekir:
- Sürecinizi görselleştirin.
- Devam eden işi sınırlayın.
Sürecinizi Görselleştirin
Veri görselleştirme, bilgileri evrensel ve anlaşılması kolay bir şekilde aktarmanın hızlı ve kolay bir yoludur. Resimlere bakarken, insan beyni aynı anda birkaç bilgiyi işleyebilir. Bazı araştırmalar bunun bir metni okumaktan 60.000 kata kadar daha hızlı olabileceğini söylüyor.
Bir süreci görselleştirmenin en popüler yolu Kanban Panosu'dur. Kanban Panosu, işleminizdeki bir durumu temsil eden her bir sütunla dikey olarak birkaç sütuna bölünmüş bir panodur.
Basit bir yazılım geliştirme panosunun nasıl görüneceğine bir göz atalım. İlk olarak, geliştirme özelliklerimiz için durumları tanımlamamız gerekiyor:
- Yapılacaklar - özellik geliştirilmeyi bekliyor
- Geliştirme - bir geliştiriciye özellik atanır ve üzerinde çalışır.
- Kalite Güvencesi - özellik incelemede
- Dağıtıldı - özellik kabul edildi ve uygulama sürümüne dahil edildi
Buna dayanarak, panonuz aşağıdaki düzene sahip olmalıdır:
Bireysel görevleri görselleştirmek, yapılması gereken işi temsil eden basit bir kart (bir Post-it gibi) oluşturmak kadar kolaydır. Görevi adlandırabilir, atanan geliştiricinin adını, son tarihini ve diğer ilgili bilgileri bu karta ekleyebilirsiniz.
Bu kartı Kanban Panosundaki bir sütuna eklediğinizde, örneğin belirli bir geliştiricinin belirli bir tarihte teslim edilmesi gereken ve şu anda geliştirilmekte olan belirli bir görev üzerinde çalıştığını görselleştirdiniz.
Devam Eden Çalışmayı Sınırla (WIP)
İnsan çoklu görev bir yanılsamadır. Bir veya iki şeye aynı anda dikkat etmek yerine, beynimiz çok hızlı bir şekilde aralarında geçiş yapıyor.
Bu, yazılım geliştirmede başka herhangi bir yerden daha belirgindir. Geliştiriciler aynı anda yalnızca bir kod parçası üzerinde çalışabilir ve başka bir özelliğe geçmek gecikmelere neden olur ve konsantrasyonlarını ve performanslarını etkiler.
Bu, aynı anda yalnızca bir atama sayısını sınırlamanız gerektiği anlamına gelmez. Geliştirme karmaşık ve yaratıcı bir iştir, bazı görevlerin tamamlanması daha fazla ve diğerlerinin tamamlanması daha az zaman alır ve geliştirici bir şeyi veya birini beklerken her zaman bir gecikme olur. Önemli olan, atanan görevleri kaos yaratmayacak makul bir sayı ile sınırlamaktır (bu genellikle bir seferde üç ila beş atamadır).
Geliştirme ekibinizin iki geliştirici ve bir QA mühendisinden oluştuğunu varsayarsak, panonuz aşağıdaki Devam Eden Çalışma sınırlarına sahip olabilir:
- Yapılacaklar - Sınırsız
- Geliştirme - Altı kart limiti (Her biri en fazla üç görevle sınırlı iki geliştirici)
- Kalite Güvencesi - Üç kart limiti (1 QA mühendisi maksimum üç kartla sınırlıdır)
- Dağıtılmış - Sınırsız
Bir proje yöneticisi olarak, Yapılacaklar listesinin uygun şekilde önceliklendirilmesini ve görevlerin gerektiğinden daha kısa sürede geliştiricilere atanmasını sağlamak sizin görevinizdir.
Düzgün yönetilen bir Kanban Kurulu, bir bakışta proje durumunuzun net bir resmini verecektir. Geliştiricilerinizin yeterince işi olduğunu, atamaları yapıldıktan sonra üstlenebilecekleri yeni görevler hazırladığınızı ve QA mühendisinizin gözden geçirmek için yeni görevleri beklediğini görebilirsiniz.
Kanban Panonunuzu Yönetmek için Trello'yu Kullanın
Trello, web tabanlı bir Kanban proje yönetimi uygulamasıdır. Ekip üyeleri ve hatta birden fazla ekip ve proje arasında kolay, gerçek zamanlı işbirliği sağlar.
Trello'da bir pano oluşturmak için "Yeni pano oluştur ..." menü öğesini tıklayın ve panonuz için bir başlık belirleyin.
Boş bir tahta ile başlayacaksınız. Kanban kartlarınız için sütunlar oluşturmak için “Liste ekle…” kutusunu kullanın.
Listelerden herhangi birinin altındaki “Kart ekle…” seçeneğine tıklayarak kolayca bir görev oluşturabilirsiniz. Oluşturduğunuz her kart, bir ekip üyesi tarafından yürütülecek bir görevi temsil etmelidir.
Trello'daki kartlar birçok şekilde özelleştirilebilir:
- Bir görevi yürütmekten sorumlu ekip üyelerini atayın
- Eklemek istediğiniz belirli gruplara göre renk kodlayın
- Teslim tarihlerini ayarla
- Ek ekle
- Bir görevi oluşturan daha küçük öğelerin ilerlemesini izleyebileceğiniz bir kontrol listesi gibi özel alanlar ekleyin
- Ekip üyeleri bir kart hakkında yorum yapabilir ve yapılan herhangi bir değişiklikten herkes haberdar edilir.

Kanban'da görselleştirme her şeydir, işte bir kartın tahtada nasıl göründüğü:
Ayrıntılı görünümü açmadan sadece karta bakarak şunları görebilirsiniz:
- GitHub Code Repository kurulum görevi Yapılacaklar listesinde yürütülmeyi bekliyor.
- Görev 27 Ocak'a kadar.
- Görevin bir açıklaması var.
- Görevle ilgili bir yorum var.
- İki maddelik bir kontrol listesi var ve bu maddelerin hiçbiri şu anda tamamlanmadı.
- Görev, daha sonra onu alacak olan kullanıcı DS'ye atanır.
- Görev, bir grup yeşil renk kartına aittir, bu, proje başlamadan önce gerekli olduğu anlamına gelir.
Geliştirme Çalışmasının Zamanını ve Karmaşıklığını Tahmin Edin
Belirli bir görevi tamamlamak için gereken çabayı ve zamanı anlamadan bir projeyi planlamak ve yönetmek imkansızdır. Ancak, yazılım geliştirmede yapılması en zor şeylerden biri, yeni bir yazılım ürünü veya özelliği sunmanın ne kadar süreceğini belirlemektir.
En popüler Çevik ilkelerden biri olan Scrum, ister zamana ister "karmaşıklık noktalarına" dayalı olsun, büyük ölçüde tahminlere dayanır.
Ekip, görevin kapsamını belirlemek için önemli ölçüde zaman harcamalıdır.
Bunun nedeni, Scrum'ın belirli bir grup görevin tamamlanmasının beklendiği zaman kutulu aralıklara dayalı olmasıdır. Teslimatı planlamak için, o zaman kutusu için planlanan tüm işleri tam olarak anlamanız gerekir.
Kanban, süreli teslimatlara güvenmez ve isterseniz günlük teslimatı planlayabilirsiniz. Akışı optimize etmeye dayanır, bu da ekibin odak noktasının Devam Eden Çalışma sütununu mümkün olan en kısa sürede tamamlayıp boşaltmak olduğu anlamına gelir.
Ekip, işi önceden tahmin etmek için çok fazla zaman harcamaz. Bir geliştirici, Yapılacaklar listesinden bir sonraki öğeyi alacaktır; mümkün olan en kısa sürede tamamlayın; ve başka bir görev seçin.
Bu, bir ekibin iş yüklerinin hacmini tahmin etmemesi gerektiği anlamına gelmez.
Son tarihleri güncellemek ve doğrulamak için haftalık veya günlük aramalarınızı kullanabilirsiniz.
Bununla birlikte, küçük bir ekip için, geliştiricilerin herhangi bir anda en yüksek öncelikli görev üzerinde çalıştıklarından ve bir geliştiriciyi çalışmalarını duraklatmaya zorlayan herhangi bir darboğaz olmadığından emin olmak daha önemlidir.
Sonunda projeniz büyüyecek ve geliştirme çalışmalarının miktarını daha ayrıntılı olarak tahmin etmeye başlamanız gerekecek. Bu duruma geldiğinizde Çevik Proje Yönetiminde Yazılım Maliyet Tahmini kılavuzumuzu okumak için biraz zaman ayırın.
Olması Gereken Yönetim Uygulamaları
Şimdiye kadar sürecinizi görselleştirmenin ve Devam Eden Çalışmayı sınırlamanın önemini ve projenizi yönetmek için Trello'yu nasıl kullanacağınızı öğrendiniz.
Bir yazılım projesi sadece kartlar ve sütunlarla yönetilemez. Bu nedenle, Çevik en iyi uygulamaları da uygulamak önemlidir:
Düzenli bir ekip toplantısı düzenleyin.
Ne yapıldığını gözden geçirmek ve gerekirse biriktirme listesini (Yapılacaklar listesi) hassaslaştırmak ve önceliklendirmek için bunu en az haftada bir yapın. Bu sayede tüm ekip güncellemeleri aynı anda alacak ve fikirler paylaşılabilecek. Bu toplantılarda, sonunda teknik olmayan geri bildirim sağlamak için bir proje paydaşının (Müşteri, şirket CTO'su veya ürün ekibinden karar verebilen ve soruları yanıtlayabilen herhangi biri) olması önemlidir.Bireysel ekip üyeleriyle sürekli iletişim sağlayın.
Bu, herkesin günlük işini çok daha kolay hale getirecek. Bu toplantıları veya senkronizasyonları çok kısa ve basit tutun, sadece favori sohbet programınızdaki hızlı bir güncelleme yapacaktır. Ekibinizle yaptığınız ~15 dakikalık günlük toplantı olabilecek günlük check-in'ler yapmak yararlıdır. Bu toplantıda, her ekip üyesi birkaç saniye konuşur ve şunları belirtir:
- Dün üzerinde çalıştıkları şey.
- Bugün üzerinde çalışmayı planladıkları şey.
- Karşı karşıya oldukları zorluklar veya darboğazlar.
Görüşme sırasında not alın ve olası sorunları (engelleyiciler, göreve yanlış odaklanma, beklenmeyen teknik zorluklar) bulmaya dikkat edin ve ekiple birlikte çalışın.
Yazılım Geliştirme Projenizi Bootstrap
Her yazılım geliştirme projesi farklı olsa da, hemen hemen hepsinde bulacağınız belirli görevler vardır. Bir yazılım geliştirme projesine başlarken planlamanız gereken görevlerden bazıları şunlardır:
Kod sürümü oluşturma ve bir havuz kurun.
Değişiklikleri izlemek ve kodu izlemek, özellikle birden fazla kişinin aynı kodu güncelleyeceği projelerde işbirliği yaparken son derece önemlidir.
Kod sürüm oluşturma için en popüler hizmetlerden biri GitHub'dır. GitHub, Git'in tüm dağıtılmış sürüm kontrolü ve kaynak kodu yönetimi (SCM) işlevlerini sunan web tabanlı bir Git veya sürüm kontrol deposudur.
Hata izleme, özellik istekleri, görev yönetimi ve her proje için wiki'ler gibi erişim denetimi ve çeşitli işbirliği özellikleri sağlar.Bir veritabanı yedekleme ilkesi tanımlayın.
GitHub gibi hizmetleri kullanmak, kodunuzun düzenli olarak yedeklenmesini sağlayacaktır.
Veritabanları, genellikle sürüm oluşturma sisteminizin bir parçası değildir ve ayrıca sık veritabanı yedeklemeleri ayarlamanız gerekir.
Geliştirme süreci hataya açıktır ve geliştirme sırasında hata yapmak ve yanlış verileri güncellemek kolaydır. Böyle bir sorun ortaya çıkarsa, bir yedeğe sahip olmak sizi zahmetten kurtaracaktır.İşbirliği araçlarını ve dosya paylaşımını ayarlayın.
Proje dokümantasyonu, fonksiyonel spesifikasyonlar, tasarım dosyaları ve proje geliştirme sırasında kullanılan diğer dokümantasyon ve dosyalar sürekli güncellenir ve ekibinize dağıtılmalıdır.
Bu dosyaları paylaşmak için bir dizi farklı hizmet kullanabilirsiniz. Google, bu soruna basit ve uygun maliyetli bir çözüm sunar. Dosyaları paylaşmak ve dosyalar üzerinde ortak çalışmak için Google Drive, Google Dokümanlar, Google E-Tablolar ve diğer Google uygulamalarını kullanın.Ayrı geliştirme ve test sunucuları kurun.
Geliştirme süreci her zaman devam etmelidir.
Geliştiriciler, uygulama testinin sonuçlarını beklememeli ve Kalite Güvencesi tamamlanmış işlevleri incelerken atamaları üzerinde çalışmaya devam etmelidirler.
Aynı zamanda müşteri, geliştirme ekibini beklemeden uygulamanın mevcut durumunu istediği zaman kontrol edebilmelidir. Düzenli olarak güncellenen özel bir test sunucusuna sahip olmak, bu süreçteki tüm darboğazları ortadan kaldıracak ve ekibinizin kesintisiz çalışmasını sağlayacaktır.Haftalık ekip aramaları için sabit bir zaman ve günlük ekip aramaları veya sohbetler için sabit bir zaman tanımlayın.
Tüm ekip üyelerinizin çağrılar ve toplantılar için takvimlerinde bir zaman planlaması yapmasını sağlayın. Bu, ekibinize iş kesintisi olmadan sabit bir program sağlar.
Götürmek
Proje yönetimi karmaşık ve çoğu zaman oldukça stresli bir faaliyettir. Buna yapı eklemek ve proje durumunu her zaman görünür ve doğru kılmak bu stresin çoğunu hafifletir. Kanban yöntemini ve Çevik ilkelerini uygun araçlarla birleştirmek size çok zaman kazandıracaktır.
Bununla birlikte, proje yöneticisi olarak sizin projeyi yönetmek için ayırmanız gereken zamanı telafi edecek hiçbir araç veya metodoloji yoktur.
Ve bir projenin küçük olması, mutlaka daha az zamanınızı gerektirdiği anlamına gelmez. Bu zihniyet, büyük bir baş ağrısı için harika bir reçetedir.
Projenizin düzgün bir şekilde yönetilip yönetilmediğini doğrulamanıza yardımcı olacak basit bir kontrol listesi:
- Süreciniz uygun şekilde görselleştirildi mi?
- Her ekip üyesi için Devam Eden Çalışma sınırlı mı ve en aza indirgeniyor mu?
- Ekibinizin düzenli olarak planlanmış bir toplantısı var mı – haftalık veya günlük?
- Kanban panonuz düzenli olarak güncelleniyor mu?
- Yerinde bir kod deponuz var mı?
- Veritabanı yedeklemelerini planladınız mı?
- Ekip iletişimi ve işbirliği araçlarını kurdunuz mu?
- Geliştirme ortamınız test, kabul ve üretimden ayrı mı?
Bu listenin kesin olmaktan uzak ve bitmiş olduğunu unutmayın; Bu sadece başlangıç.
Lütfen yorumlarınızı bırakın ve ipuçlarınızı ve uygulamalarınızı, yazılım geliştirme ekiplerini güçlendirme konusunda hiç bitmeyen yolculuklarına yeni başlayan proje yöneticileriyle paylaşın.