Küçük bir yazılım ekibini yönetmek: roller, ritim ve kararlar
Beş kişilik bir ekip, elli kişilik bir şirketin küçültülmüş hâli değildir. Küçük yazılım ekiplerinde işi hızlandıran şey yeni araçlar değil; rollerin, haftalık ritmin ve kararların netliğidir.
İçindekiler6
Kariyerime SEO ve yazılım geliştirmeyle başladım; bugün hem bir ajans ekibini hem de bir ürün ekibini yönetiyorum. İki ekip de küçük. Bu yazıda, küçük bir yazılım ekibini yönetirken en çok işe yarayan şeyleri topladım. Hiçbiri yeni bir araç ya da yöntem adı değil; çoğu, kimin neye karar verdiğini yazıya dökmekle ilgili.
Küçük ekip neden ayrı bir yönetim ister?
Büyük şirketlerin süreçleri, çok sayıda insanın birbirini beklemeden çalışabilmesi için tasarlanır. Küçük ekipte sorun bunun tersidir: herkes her şeyi bilir gibi görünür, bu yüzden hiçbir şey yazılmaz. Ekip büyüdükçe ya da biri ayrıldığında, yazılmamış her şey bir anda görünür olur.
Küçük ekibin avantajı hızdır. Bu hızı korumanın yolu ağır süreçler eklemek değil, az sayıda ama net kural koymaktır. Bir de şunu kabul etmek gerekir: geciken bir işi kişi ekleyerek hızlandırmak çoğu zaman beklenen sonucu vermez.
Geciken bir yazılım projesine insan gücü eklemek, projeyi daha da geciktirir.
Önce rolleri, sonra kişileri tanımlayın
Küçük ekipte bir kişi aynı gün hem geliştirici hem test eden hem de müşteriyle konuşan olabilir. Bu normaldir. Sorun, bu şapkaların hangisinin kimde olduğunun bilinmemesidir. Ben rolleri kişi adıyla değil, sorumluluk ve karar alanıyla tanımlamayı tercih ediyorum.
- Rol
- Ürün sahibi
- Sorumluluk
- Neyin, hangi sırayla yapılacağını belirler
- Son kararı verdiği konu
- Öncelik ve kapsam
- Rol
- Teknik lider
- Sorumluluk
- Mimariyi ve kod kalitesini korur
- Son kararı verdiği konu
- Teknoloji seçimi ve teknik borç
- Rol
- Geliştirici
- Sorumluluk
- İşi tasarlar, yazar ve test eder
- Son kararı verdiği konu
- Görevin nasıl çözüleceği
- Rol
- Yayın sorumlusu
- Sorumluluk
- Yayını ve geri alma planını yönetir
- Son kararı verdiği konu
- Yayının çıkıp çıkmayacağı
Haftalık ritim: az toplantı, net çıktı
Toplantılar küçük ekibin en pahalı kaynağını, yani odaklanma süresini tüketir. Bu yüzden her toplantının tek bir yazılı çıktısı olsun. Çıktısı olmayan toplantı ya mesaja dönüşür ya da kaldırılır.
- Haftanın başında planlama: bu hafta biten ne olacak? Çıktı, kısa bir iş listesi.
- Her gün kısa durum paylaşımı: yazılı da olabilir. Çıktı, takılan işlerin listesi.
- Hafta ortasında demo: biten iş çalışırken gösterilir. Çıktı, kabul edilen ya da geri dönen işler.
- Hafta sonunda retrospektif: ne işe yaradı, ne yaramadı? Çıktı, en fazla iki değişiklik.
Retrospektifi kısaltmak için hazır prompt
Retrospektif notları dağınık olduğunda ilk yarım saat notları toparlamakla geçer. Aşağıdaki promptu, ekibin haftalık notlarını yapıştırarak bir yapay zeka asistanında kullanabilirsiniz. Çıktıyı karar olarak değil, tartışmanın başlangıç noktası olarak kullanın.
Bir yazılım ekibinin haftalık retrospektif notlarını aşağıya yapıştırıyorum.
Görevin:
1. Notları üç başlıkta topla: işe yarayanlar, yaramayanlar, belirsiz kalanlar.
2. Birden fazla kişinin dile getirdiği konuları işaretle.
3. Gelecek hafta denenebilecek en fazla iki somut değişiklik öner. Her öneri için kimin sorumlu olabileceğini ve nasıl ölçüleceğini yaz.
4. Kişileri suçlayan ifadeleri, süreçle ilgili ifadelere çevir.
Kısa ve madde madde yaz. Notlarda olmayan bir bilgiyi ekleme.
Notlar:
[notları buraya yapıştırın]Kod inceleme ve yayın kimseye bağlı kalmasın
Küçük ekiplerde en sık gördüğüm darboğaz şudur: kod incelemeyi ve yayını yalnızca bir kişi yapabilir. O kişi toplantıdaysa ya da izindeyse ekip bekler. Bunun çözümü kişiyi değiştirmek değil, adımları yazmaktır.
- Kod incelemede neye bakılacağını kısa bir kontrol listesine yazın.
- Yayın adımlarını, ekibe yeni katılan birinin uygulayabileceği kadar açık yazın.
- Her yayının bir geri alma yolu olsun ve bu yol en az bir kez denenmiş olsun.
- Bir işi kimin incelediği değil, işin kontrol listesinden geçip geçmediği takip edilsin.
Kararları yazıya dökün
Hangi kütüphaneyi seçtik, neden bu özelliği erteledik, hangi müşteri isteğini reddettik? Bu soruların cevabı yazılı değilse, her yeni kişi aynı tartışmayı yeniden açar. Uzun belgeler yerine, her karar için birkaç satırlık bir kayıt yeterlidir: tarih, karar, gerekçe, kim verdi, ne zaman yeniden bakılacak.
sık sorulan sorular
Küçük bir yazılım ekibinde kaç kişi olmalı?
Sabit bir sayı yok. Ölçüt, herkesin işin tamamını görebilmesi ve günlük iletişimin ayrı bir yönetim işine dönüşmemesidir. Ekip bu noktayı aştığında ikiye bölmek genelde tek ekibi büyütmekten daha sağlıklıdır.
Küçük ekipte proje yönetim aracı şart mı?
Bir yerde işlerin listesi ve durumu görünür olmalı. Bunun hangi araçla yapıldığı ikinci plandadır; önemli olan herkesin aynı listeye bakmasıdır.
Teknik geçmişim yok, yazılım ekibini nasıl yönetirim?
Teknik kararları teknik lidere bırakıp öncelik ve kapsam kararlarına odaklanabilirsiniz. Rollerin ve karar alanlarının yazılı olması bu ayrımı mümkün kılar.
Ekibinizi sıfırdan kuruyor ya da var olan ekibi teslim eden bir yapıya çevirmek istiyorsanız, bu konuda birlikte çalışabiliriz.