Süreçler mi?, insanlar mı?

Geçenlerde Yazılım Mühendisliği Türkiye grubunda  Krizde Agile Olmak adlı bir konu açılmıştı. Konu Cenk Civici tarafından krizde agile olmanın maliyetleri düşürmede, karlılığı arttırmada,daha hızlı üretimde kullanılabilecek iyi bir yöntem olduğu belirtilerek açıldı. Bu konuda kendisine tamamen katılıyorum. Bu fikir benimde aklıma daha önceden gelmişti. Neden firmalar kriz,yada işlerin sıkıştığı zamanlarda çeşitli sosyal olanaklardan kesinti yapar, daha fazla mesai, kaliteden ödün verme gibi aslında pek fayda sağlamayan yollarak başvururlar hep düşürüm.

Aslında daha kaliteli ürünler, daha iyi bir altyapı, müşterinin ne istediğini bilerek müşteri ile yapılan yazılım,testler ile desteklenmiş daha az hatalı, daha fazla geri dönüşü olan yazılım bu israfı önlemede oldukça faydalı olacak yöntemler fakat çoğu firma tarafından görmezden gelinir.Bu konuda çevik süreçlerin fayda sağlayacağı kesin. Fakat konuda ilerleyen mesajlarda bir arkadaşın verdiği cevap oldukça ilginçti. Arkadaş şöyle diyordu

Süreçler kuşkusuz krizde veya düzlükte maliyetleri azaltıyor.
Peki ya çevik takımın bedeli konusunda birşeyler söyleyemez misiniz?

Güzel bir soru. Peki Agile pratikleri iyi güzelde. Agile takımı oluşturmak için nasıl bireylere ihtiyaç var? Agile süreçleri uygulamanın en büyük zorluğu:

  1. Firma kültürü
  2. Takım elemanları

Burada çok güzel bir noktaya değinilmiş oldu. Genelde süreçleri tanımlarken, hep faydasına uygulandığında getirdiği faydalara değiniriz. Süreçler takip edildiğinde herşey dört dörtlük olacak mı? Süreçleri uygulamak için insanlara mı robotlara mı ihtiyaç var? Malesef süreçleri uygulamak için henüz robotları kullanabilecek bir teknolojiye sahip olmadığımız için insanlarla yetinmek zorundayız. Yani süreçleri işleten insanlar.

Firma konusuna fazla değinmeden geçiyorum. Firmanın Agile süreçlerin faydasını anladığını ve bunlardan maksimum yararlanmak için adım attığını vaysayalım . Genelde bu adım çok zor oluyor hatta hiç olmuyor ama öyle varsayalım :) Agile bir takım kurmak için gereken “Highly Motivated People” insanları nereden bulucaz? Arka bahçemizde bunlardan yetişmiyor ve bu tarz insanları bulmak gerçekten pekde kolay olmuyor bence. Yada benim bulunduðum iş ortamlarında çok fazla rastlayamadım. Takım elemanlarının bir defa en önemli özelliği açık fikirli olmaları gerekir. Sonuçta yazılım geliştirme mantıklarını değiştireceksiniz insanlar zaten en ufak bir değişikliğe bile karşı çıkarken, eski tabuları yıkmak bu şekilde daha efektif çalışılır daha verimli olunur demek hiç ama hiç kolay değil.En basitinden Test Driven Development yapmak istiyorsunuz. Herhangi bir developera söyleyin bakalım test yazacaksın size ne diyecek. “Testleri developer yazarmı,vakit kaybı,…”.Ayrıca hadi test yazacağını kabul etti diyelim. Sadece süreci uygulamak  için yazılan testin ne faydası olacak? Testlerin efektif bir şekilde yazılım geri dönüşünü sağlayacak kıvama gelmesi benim deneyimlerim kadarıyla hiçde kolay değil. En azından ben 2 senedir TDD ile yazılım geliştiriyorum yazdığım testler daha yeni yeni istediğim kıvama ulaşıyor.Agile yöntemler ne kadar alt yapıdan bağımsız uygulanabilir varsayılsada değişime kolay adapte olabilmek için Agile mühendislik pratiklerini uygulamak gerekiyor. OOP,Design Patterns,Principles,SOLID.. bunlardan hiç bahsetmedim.

Bu yüzden faydasını yaşayarak gördüğüm Çevik süreçler dahi olsa içerisinde onu uygulayacak insanlar olmadıkça süreçlerin tek başına başarılı olması çok zor. Çevik takımlar iyi derece motive olmuş, her zaman daha iyisini arayan,istekli, açık fikirli, sürekli öğrenen insanlardan oluşur. Herhangi bir süreci işlettiğiniz bir firmada bu tarz insanlar içeren bir takımın sizce başarılı olma olasılığı nedir? Büyük ihtimalle başarılı olacaklardır. Süreçler ne kadar iyi tanımlanmış olursa olsun size bir noktaya kadar yardım edebilirler. Fakat başarının büyük bir bölümü gerçekten iyi işler yapmaya çalışan takım üyelerinden gelecektir.

Kalitesiz, daha iyiyi aramayan elemanlardan oluşan bir takımı istediğiniz süreçle yönetirseniz yönetin sonuç büyük ihtimalle başarısızlık olacaktır. Bu yüzden süreçlere yapılan yatırımın yarısı kadarını insanlara yatırmanın, kaliteli bir ekip kurmanın süreçlerden daha önemli olduğuna inanıyorum. Ve son olarak da Süreçler yerine insanlar diyerek kapaytıyorum.

8 thoughts on “Süreçler mi?, insanlar mı?

  1. Tuna Toksöz

    Sanırım insanlar. İnsanlar test yazmasa da güzel yazılım çıkartabilir, ya da test yazsa da kötü yazılım.
    Süreçler her ne kadar önemli olsa da, süreçlerde aslolan sanırım insanın kendisi.

  2. Pingback: Yazılım Mühendisliği » Martin Fowler’ın Yazıma Cevabı

  3. Enes

    Abi bu zor şartlarda insanlar mutlu olmazsa nasıl motive olacaklar. Insanı mutlu edersen üründe sağlam olur kanısındayım.Insanın çevik olması önemli ama o kurum için çevik olması daha önemli.

  4. Fatih

    selam,
    peki firma kaliteli insanı nasıl elde edecek veya varolan elemanı nasıl kaliteli veya proje için verimli hale getirebilir(getirebilirse)?

    Siz de çevrenizde göremiyor olmalısınız ki yüksek motivasyonlu insanları nereden bulacağınızdan yakınıyorsunuz :)

  5. M. Cihat Altuntaş Post author

    Çoğu firmanın kaliteli elemanı elde etme ve tutma konusunda sıkıntılar yaşadığını düşünüyorum. Özellikle bazı firmalar bunu şirket politikası haline getirip, yeni mezun al, biraz çalıştır, sonra ayrılsın döngüsü ile ilerliyor. Kaliteli bir eleman için paranın sadece yeter şart olduğunu düşünmüyorum. Alacağı elemanın insiyatif alabilecek olması, kişisel gelişimine firmanın kaltıda bulunması, çalışana kişisel olarak değer vermesi… gibi birçok durum etkili olabilir. Konu ile alakalı Joel Spolsky’nin “Recruiting the Top 1 Percent” adında çok güzel bir yazısı var okumanı tavsiye ederim.

    Dediğin gibi bende çevremde çok fazla yüksek motivasyonlu insan göremiyorum. Bu yüzden belki kendi firmamı kurarsam bu tarz yazılımcıları kimse toplamadan ben toplayacağım :)

  6. Pingback: » Martin Fowler’ın Yazıma Cevabı

  7. Pingback: Martin Fowler’ın Yazıma Cevabı « Dumlupınar Üniversitesi ( DPÜ ) Bilgi ve Bilişim Kulübü

Comments are closed.