Bitmeyen Özel Yazılım Projeleri
Son zamanlarda artan bir şekilde özel yazılım geliştirme konusunda mutsuz müşteri hikâyeleri ile karşılaşıyorum. Yazılım firmaları ile yatırımcının birlikte harcadığı büyük mesai sonrasında ortaya kocaman bir hayal kırıklığı çıkıyor. Bir süre sonra kullanılmaktan vazgeçilen, aslında tam ihtiyacı karşılamadığı fark edilen, geliştirilmeye kapalı ve bir şekilde hedeflenen sonuçtan uzak işler üretiliyor. Yazılım ve dijital işler konusunda insanlar giderek fikir sahibi olmaya başladı fakat yaşanan sorunun temelinde önemli ölçüde “mecrayı tanımama sorunu“ var. Yazılım çözümüne şekil vermek hem teknik uzmanlık hem de ciddi seviyede iş bilgisi gerektiriyor.
İşi bilmek, ne istediğini bilmek
İşlerin nasıl yapılması gerektiğini tasarlamak, işi iyi bilmekle başlıyor. Birçok yazılım projesinin başarısızlığında kabul edelim ki tüm çabayı etkisiz bırakacak bir neden var : “yapılacak işin bilinmemesi ”. Altın kural budur önce netleştir.;Bir işi tanımlarken, bir işin aşamalarını tarif ederken aktörleri, rolleri ve süreç boyunca karşılaşılacak durumları iyi tanımak ve sağlam bir öngörü gerekiyor. Elbette her kurgunun yanılma payı ve değişim ihtiyacı olabilir. Burada kritik olan, senaryodaki tüm oyuncuların eteğindeki taşları dökmesi, önem ve önceliklerin belirlenmesidir.
Bir yazılım projesini planlarken “şimdilik böyle yapalım”, “daha sonra düşünürüz”, “ haklısınız fakat Ahmet bey böyle istiyor” gibi çalakalem ve işin doğasına aykırı yönlendirmeler havada uçuşuyorsa oradan başarı hikâyesi çıkmaz.
İş yapma şeklini sadeleştirmek iyidir
Birçok insan bir şeyin kaliteli ya da güçlü olması için karışık ve zor olması gerektiğini zannediyor. Çok sevdiğim bir söz var : “Basit olmak karmaşık olmaktan daha zordur”. İşte önemli olan bu basitliği ortaya çıkarmak. Gereksiz süreçlerden arınmak, zaman kaybettiren uygulamaları indirgemek, gerçek hayatla örtüşmeyen kuralları kaldırmak, bugüne dek süregelmiş fakat faydası belli olmayan alışkanlıkları değiştirmek gerekli. Aslında özel yazılım projeleri şirketlerin pozitif dönüşümü için çok iyi bir fırsattır. Hazır bu fırsat elinizdeyken iş akışını, müşteri ve pazarlama odaklı ve zaman kazandıran bir yaklaşımla ele alın. Fazlalıklardan kurtulmak işletmelere iyi gelir ve basit tasarımlar her zaman uzun ömürlüdür.
Yazılım sihirli değnek değil, sizin de işinizi iyi yapmanız gerekiyor.
İşini veya iş fikrini yazılıma, internete taşımak isteyenlerde gördüğüm abartılı bir eğilim var. Sağlam bir yazılım sayesinde işletmenin tüm sorunlarını ortadan kalkacağı veya girişimin tüm hedeflerine ulaşacağı bekleniyor. Bu beklenti daha sonra yazılım sistemindeki bütünlük ve kalite eksikleri ile birbirine karışıyor. Uygulama ve ekranlar belirginleşince yorumlar ve “birde şunu eklememiz lazım” önerileri başlıyor. Yüksek beklenti, sınırsız yorum ve herkesin yorulduğu bir döngüye girdiğiniz de muhakkak bilirkişinin dur demesi gerekir.
Bir yazılım akla gelen her şeyi yapamaz ve yapmamalı. Yazılımdan kimse bunu beklemesin.
Tabi ki burada yazılım üreticisinin “anlaşılan çerçevede ve kabul edilebilir kalite seviyesinde iş teslimi” yaptığını varsayıyorum. Mevcut kapsam gerçekleştirilmeden cepheyi büyütmek en sık yapılan hataların başında geliyor. Unutulmamalı ki bir projenin başarısı, insan kaynakları, pazarlama, içinden geçilen dönem, şirketin mevcut koşulları gibi çok sayıda parametreye bağlıyken tüm yükü yazılıma yüklemek doğru bir yorum değil. Ayrıca yüksek beklenti sahiplerinin beklentisi ile ayırdığı bütçeye bakıp orantılı olup olmadığına dikkat etmesi gerekli. Yazılım işleri disipline eder, kolaylaştırır, sistemli hale getirir, verim kazandırır. Ancak yazılım tek başına başarı getirmez.
Sonuçları gözler önüne sermek
Projeleri planlayan, iş ve süreçleri yorumlayan kişiler de tuhaf bir “büyük resmi görmeme” problemi var. Saatler süren detaylar tek tek tartışılıyor, kırk yılda bir gerçekleşecek ihtimaller için önlemler alınıyor fakat yazılıma farklı rollerde giriş yapanlar için ( patron, müdür, uzman vb )” bir bakışta neyi takip eder, en kritik neler izlenir, bu işletmede neyi ortaya çıkartmak lazım gibi kritik düzeyde sonuçlar gözler önüne serilmiyor, farklı birimler için empati yapılmıyor. Burada gerçekten sihirli kelime “empati”. Bana göre yazılım projesi tasarlanırken sonda değil ilk başta “bu yazılımda en çok neyi görmek neyi takip etmek istersin” sorusunun yanıtı ekranlarda öne çıkarılmalı. Uçaklardaki kokpit ekranı gibi pilot, tüm uçuş boyunca, en temel göstergeleri rahatça takip edebilmeli. Ancak bu sayede halden anlayan, hedef kullanıcı ile gerçek etkileşim alanı oluşturan yazılımlar üretilebilir.
Özel yazılım proje sürecinde dikkat edilmesi gerekenler
Bir iş yazılımı veya bir internet girişimi için özel yazılım sürecine giriyorsanız aşağıdaki notlara dikkatinizi çekerim.
-
Birçok firmanın kullandığı hazır bir yazılım çözümü varsa, birkaç küçük nüans yüzünden kocaman bir proje yükünü üzerinize almayın. Amerika’yı tekrar keşfetmeye çalışmanın kimseye faydası yok. Şayet gerçekten eşine kolay rastlanmayan, size özel süreçlerin kaçınılmaz olduğu, stratejik rekabet avantajı taşıyan durumlar söz konusu ise özel yazılım işte o zaman anlamlı olacaktır.
-
İster adına “ihtiyaç analizi” deyin, ister “iş Planı dosyası” deyin, ne yapılacağını yazıp çizme konusunda kendinize güvenmiyorsanız profesyonel danışmanlık hizmeti almaktan geri durmayın. İki ileri bir geri şeklinde yol almak kaynakları ve enerjiyi darmadağın hale getiriyor. Sağlam bir iş analizi için ayıracağınız zaman, ödeyeceğiniz ücret, yazılım geliştirmek için harcayacağınız para ve zaman konusunda size çok ciddi avantajlar sağlayacaktır.
-
Zaman baskısı yüzünden olmayacak duaya âmin demeyin, dedirtmeyin.
-
Yazılım geliştirmek sabır gerektiren uzun bir yolculuktur. Ortak sinerji ve heyecanla çalışacağınız, ortak dilden konuşabileceğiniz bir ekiple yola çıkın. Çocuk doktoruna beyin ameliyatı yaptırmaya kalkmayın. İhtiyaçlarınız konusunda uzmanlaşmış, saha tecrübesi sizin ihtiyaçlarınızla örtüşen uzmanlarla çalışın.
- Yazılım ekibinin daha önce yaptığı işleri dikkatle inceleyin. İyi tasarlanmış, kullanımı keyif veren projeler kendilerini hemen belli eder. Yazılım ekibi büyük ihtimalle sizin için benzer kalitede işler sunacaktır. Bu kalite çıtasını uzun vadeli hedeflerinizle uyumlu olması önemlidir.
- Genelde işin zamanında bitmemesi için önlem alınır. Aksi durumu da Başarıyı ödüllendirin, zamanında teslim, sorunsuz sistem gibi durumlar için yazılım ekibini motive edin.
- Yazılım üretmenin kendine ait bir matematiği var. Projelerde performans, güvenlik, arayüz ve etkileşim tasarımı, esneklik, test süreçleri gibi çok sayıda yazılım mühendisliği katmanı var. Hedeflenen sonuçlara varmak için işi kuralına uygun ele almak gerekli.