İyi geliştirici deneyimi
(developerexperience.io)Good Developer Experience
- TL;DR
Geliştiricileri mutlu etmeyi ve bu mutluluğu sürdürmeyi unutmayın.
# İyi geliştirici deneyimi (Developer Experience, DX) nedir?
Geliştirici deneyimi, bir geliştiricinin bir ürünü kullanırken veya geliştirirken yaşadığı deneyimi ifade eder.
Ancak birçok şirkette, UX (User Experience) karşısında öncelik sıralamasında geride kalır. Geliştiriciler de kullanıcıdır ve ürünleri kullanırlar.
Onların memnuniyeti ve mutluluğu, projenin başarısı açısından son derece önemlidir. Mutlu geliştiriciler harika yazılımlar üretir ve ekipten ayrılma olasılıkları daha düşüktür.
Biz iyi geliştirici deneyimini aşağıdaki 4 unsurla tanımlıyoruz.
-
Uygun mimari
Mimari basitse acısını sonra çekersiniz, karmaşıksa acısını şimdi çekersiniz.
Mimari, proje ve ekip ölçeği dikkate alınarak seçilmelidir. İyi bir mimariyi bozmak zordur, kısa geri bildirim döngülerine sahiptir ve dayanıklıdır. -
İyi araçlar
Mümkün olan yerlerde otomasyon önerilir. Tekrarlayan işler yorucudur. -
Geliştirme sonrasını destekleyen süreç
Bu süreç, otomatik bir kontrol listesi gibi çalışmalı ve tutarlı adımlar sunmalıdır. Tanımlı süreçler, ekip eğitimi açısından faydalıdır.
Yeterince büyük bir şirketseniz QA, dağıtım, geri bildirim, onboarding gibi süreçleri kullanın. -
Zararlı olmayan ekip kültürü
Şirketin amacını tanımlayın. Para kazanmak tek hedef olmamalıdır.
Kültür, şirkete ve ekibe kurabileceğiniz en önemli brainware'dir (kafada çalışan yazılım).
Geliştiricilerin verdiği her karar, kurulu brainware üzerinden süzülür.
Eğer bu brainware'e katılmıyorlarsa, onu görmezden gelirler.
# İyi geliştirici deneyimi neden gereklidir?
## İyi geliştirici deneyimine sahip ekipler yüksek üretkenliğe sahiptir ve şu özellikleri gösterir:
-
Etki duygusu
Yaptıkları işin sadece para kazanmakla ilgili olmadığını anlarlar. Kendi işlerinin önemli olduğunu ve başkalarının hayatını iyileştirdiğini bilirler. -
Sahiplenme ve sorumluluk
Başarıdan kendilerini sorumlu hissederler. Her ekip üyesi şirketin başarısına karşı sorumluluk duymalıdır. -
Ortak hedefler
Ekip, departman ve şirketin bütünü ortak hedeflere sahiptir. -
Nezaket ve dürüstlük
Biz buna 'hey bro' kültürü diyoruz. Büyük saygıyı korurken samimiyeti öne çıkarıyoruz. -
Başarısızlığa tolerans
Geliştiriciler cesur olmalı ve risk alabilmelidir. Ancak risk her zaman hesaplanmış olmalı ve geliştiriciler yaptıkları her işin ne kadar soruna yol açabileceğini bilmelidir.
## Kötü geliştirici deneyimine sahip bir kültürün özellikleri:
-
Suçlama
Ekip üyeleri birbirlerini hatalı işler yüzünden suçlar. Bu çok zararlıdır ama sık sık yaşanır. -
Başarısızlığa ağır ceza
Örneğin, son teslim tarihine uymazsanız işten atılabileceğinizi söyleyen bir yönetici gibi... -
Hiç bitmeyen crunch time ve ekibin sürekli aşırı yük altında olması
-
Düşmanlık ve belirsizlik
Ekipler arası sağlıksız rekabet. (Örneğin, bu kişi benden daha iyi olduğu için terfi aldı.) -
Sulanmış sorumluluk duygusu
Büyük şirketlerde, kimsenin gerçekten sorumluluk almadığı hissine kapılabilirsiniz. 'Üzgünüm, ben batırdım' diyebilmek cesaret ister. Sorumluluk alabilmek önemlidir.
# İyi geliştirici deneyiminin çözebileceği sorunlar
- Bilgi birikimi
- Yanlış ürün-pazar uyumu
- Motivasyonsuz ekip
- 'Bu benim sorunum değil' zihniyeti
- Başarısız ürün
- Memnun olmayan müşteriler
- İş ile BT arasındaki kopukluk
- Zararlı ekip kültürü
- Düşük kod kalitesi
- Artan maliyetler
- Anlamsız işler
# İyi geliştirici deneyimi nasıl hayata geçirilir
1980'lerin ortasında Dr. Martin Barnes tarafından oluşturulan 'Scope Triangle' vardır. Bu, üç temel güç arasındaki ilişkiyi gösterir.
Zaman, para, kalite
Bu üçgen, kaliteyi artırmak istiyorsanız para ya da zamanı ayarlamanız gerektiği anlamına gelir. Ancak biz bunun gerçek hayatta işleyiş biçiminin böyle olmadığını düşünüyoruz. Bu üçgene duygusal maliyeti eklemek gerekir.
Eğer geliştiricilerin işi tamamlamak için geç saatlere kadar kalması gerekiyorsa, yatırım yapılan tek şey zaman değildir. Bu yatırımın bir diğer parçası da duygusal maliyettir. Harika bir geliştirici deneyimi, bu duygusal maliyeti kontrol altında tutmaya yardımcı olur. Geliştiricileri mutlu etmek istiyorsanız duygusal maliyeti düşük tutun.
# İyi geliştirici deneyiminde yaygın tuzaklar
- Çok erken bir aşamada geliştiricilere aşırı fazla bilgi vermek
- Daha fazla bilgiye ihtiyaç duyduklarında geliştiricilere çok az bilgi vermek
- Süreçleri aşırı kullanmak, 'her şeye uyar' düşünce tarzına yol açabilir
- Aşırı mühendislik eğilimi
- Agile = geliştiricilere daha fazla iş yaptırmak için bir bahane
1 yorum
Çeviri için teşekkürler!