Her türlü sektörde özel yazılım şirketleri arasından doğru olanı seçmek son derece kritik ve önemli bir karardır. Eğer doğru özel yazılım şirketini seçemezseniz, çıkmaz sokağa girdiğiniz çok geç farkedersiniz.
Özel yazılım projenizin sekteye uğraması, harcadığınız paranın ve zamanın boşa gitmesi, yatırımınızın çarçur edilmesi demektir.
Yazılım geliştirme işinde 28 yılı geride bıraktım. Özel yazılım geliştirmenin ne kadar karmaşık hale geldiğine defalarca şahit oldum. Çoğu kez orta ve küçük ölçekli firmalar karar vermek için yeterli bilgiden yoksundur.
Özel yazılım şirketleri araştırmanızda dikkat etmeniz gereken önemli noktaları listeledim. Eğer bahsedeceğim noktalara dikkat ederseniz risklerinizi büyük oranda azaltmış olursunuz.
- Önce DNA'sına sonra tecrübesine bakın
- Uzmanlık alanlarını araştırın
- Projenin boyutu eğer izin veriyorsa bir yazılım geliştirici ile çalışmanızı tavsiye ederim.
- Farklı sektörlerden gelen çözüm sağlayabilme tecrübesi
- Pazarlamaya odaklanın
- Programlama hakkında önemsiz sorular sormayın
- Kullandığı yazılım teknolojilerini inceleyin
- Projenizin nasıl host edileceğini öğrenin
- Web sitelerini inceleyin
- Referansları inceleyin
- Eski müşterileri ile görüşün
- Nasıl çalıştığını öğrenin
- Yazılım uzmanı ile projenizin detayları konusunda hemfikir olmalısınız
- Sağlam ve Detaylı bir Sözleşmeniz olmalı
- Garanti ve Destek
- Web sitenize gerçekten sahip olduğunuzdan emin olun
- Önce küçük bir projede deneyin
- Çıkış stratejiniz olsun
- Uzun dönemli düşünün
- Şimdi ne yapmalı ?
Özel yazılım çözümleri arayanlar için 5 önemli adımı öğrendiyseniz, bir yazılım uzmanı seçmek için sorularınız oluşacaktır. Bütün yazılım firmalarının önceki referanslarının etkileyici olması, sizin projeniz ve işiniz için doğru oldukları anlamına gelmez. Bu süreçte yazılım firmalarını şu noktalarda araştırmanız gerekir.
Önce DNA'sına sonra tecrübesine bakın
İyi bir yazılım uzmanı olmanın birinci kuralı, sürekli öğrenme alışkanlığıdır. Öğrenme, teknoloji sevgisi ve bir şeyler yaratma tutkusu, iyi bir yazılım geliştiricinin temel özelliğidir.
Tecrübe hakkında farklı ve tartışmalı bakış açıları bulunuyor.
Tecrübe denince benim aklıma, yazılım uzmanının referanslarına sıkışmadan, zaman içinde kanıtlanmış metotlarla çalışan ve ispatlanmış sağlam ekip çalışması yetenekleri aklıma geliyor. Yazılımın uzmanının kültürel ve teknolojik gelişiminde, iş dünyasına girdiği adan itibaren kaçınılmaz olarak başarı ve başarısızlıkların yarattığı sonuçlar etkili oluyor. Bu tecrübeler sonunda, cesaretli, risklere karşı tedbirli, sorunları aşabilme yeteneğini oluşuyor.
Dahası deneyim, projeyi almadan önce doğru soruları sormasını da sağlıyor.
Müşterinin ne dediğini ve ne yapmak istediğini anlamak, çözümün müşterinin ihtiyaçlarını ne oranda karşılayacağını ve iş hedeflerine ne kadar ulaştıracağını öngörmek tecrübeyle gelen bir yetenek.
Uzmanlık alanlarını araştırın
Özel yazılımın başarılı olması için aradığınız yazılım uzmanında aşağıdaki yeteneklerin bulunması kritiktir:
- Web Tasarımı, kullanıcı arabirimi (ui), kullanıcı deneyimi (ux)
- Yazılım geliştirme
- Dijital Pazarlama
Kapsamlı hizmetler veren bir yazılım firması, yazılımın yaşam döngüsü içerisindeki ihtiyaç duyduğu aşamaları tek noktadan sağlayabilir:
- Tahmini tamamlama süresi
- Başlangıç özelliklerinin anahatları
- Kullanıcı arabirimi ve kullanıcı deneyimi (User Interface UI, User Experience UX)
- Program kodlama
- Test ve Kalite
- Yazılımın kullanıma sunulması, (sürekli bakım ihtiyaçları dahil)
Projenin boyutu eğer izin veriyorsa bir yazılım geliştirici ile çalışmanızı tavsiye ederim.
Tam aksi daha akılcı geliyor değil mi ? Ancak birden fazla yazılım geltiştiricinin çalışabilmesi için iyi bir iletişim trafiği gereklidir. Eğer proje büyükse bu kaçınılmaz olabilir. Ancak projeniz bir yazılım geliştiricinin altından kalkabileceği boyuttaysa zaman ve enerji tasarrufu sağlar. Bir kişi ile yazılımın geliştirme projenizin takibini kolaylaştırır.
Farklı sektörlerden gelen çözüm sağlayabilme tecrübesi
Bir yazılımın geliştricinin referanslarını incelerken, doğal olarak projelerden çok sizin firmanıza benzer firmalarla yaptığı çalışmalara dikkat edersiniz. Doğrudur, telekom, ulaşım ve lojistik, sigorta, hukuk, finans, üretim, ihracat vs vs. Her bir alan yazılım geliştirme ekibinin ihtiyaç duyduğu bilgi düzeyini temsil eder.
Bir önemli avantajı size önceki projelerinde kazandıkları tecrübelerden elde ettikleri hazır çözüm sağlayabilme imkanıdır. Zaman ve para harcama konusunda tasarruf sağlayabilir.
Uzun yıllar çok farklı sektörlerde kurumsal kaynak planlaması (ERP) yazılım otomasyonu, eğitim ve yazılım entegrasyonu üzerinde çalıştım. Tekstil, inşaat, gıda gibi sektörlerin üretim ve muhasebe departmanlarının sorunlara çözümler getirmeye çalıştım. Sektörel deneyimler işlerin nasıl çalıştığını bilmenin sayısız faydasına şahit oldum.
E-ticaret konusunda görüşmemde bir müşteriden "Ertan bey, internetten satışları nasıl muhasebeleştireceğiz?" benzeri bir soru geldi. İnsanların çok farklı noktalarda hiç beklenmedik kaygıları olabiliyor.
Muhasebe, üretim veya pazarlama alanlarında tecrübeler, geliştirilecek yazılımın çözüm yeteneğini arttırıyor, proje başarısına önemli katkıları olabiliyor.
3) Pazarlamaya odaklanın
Eğer web tabanlı bir uygulama geliştirilmesini istiyorsanız, bunun bir ayağı da pazarlama olacaktır. Yazının başında da söylediğim gibi dijital pazarlama projenizin başarılı olabilmesi için önemli bir etken.
Potansiyel müşterilerinizle iletişim kurmak için dijital pazarlama en etkili yollardan bir tanesidir. Çünkü sadece web sitesinin programlanması ile işler bitmez. Potansiyel müşterileriniz sitenizi ziyaret etmez ise yazılım işleri faydasızdır.
İyi bir yazılım uzmanı, zorunlu olmamakla birlikte dijital pazarlamadan anlaması veya hizmet verebilmesi projenizin sonraki aşamalarında da size önemli avantajlar sağlar.
4) Programlama hakkında önemsiz sorular sormayın
Kimileri karşısındaki kişinin bilgisini ölçmek için ezber sorular sormayı tercih eder.
- PHP yayınlandığı yıl neydi ?
- Java programlama dilinin birinci yaratıcı kimdi ?
Yıllardır bu işleri yapan birisi olarak bu soruların yanıtlarını bilmiyorum. Bir zamanlar biliyorsam da artık hatırlamıyorum. Ama bilmek zorunda olduğum noktalar, başarılı bir proje için hangi metotları kullanmam gerektiğidir. Hangi programlama dillerini, hangi yazılım geliştirme disiplinlerini kullanmalıyım, ben bu tür sorulara odaklanıyorum.
Yazılım uzmanını projenize uygunluğuna göre seçin, yetenek setlerine göre değil. Burada projenizin ihtiyaçlarına 360 derece bakmanız gerekir. Bazı yazılım firmalarını ne kadar “kurumsal” olduklarını anlatırlar. Bazıları ne kadar başarılı. Ancak esas önemli nokta, projenizin ihtiyaçları için bazen uygun olan sadece bir kişi olabilir.
Yıllar önce büyük bir tekstil şirketinin yazılım otomasyonunda rakip firma, işleri daha kalabalık bir ekiple yapacağını taahhüt etmişti. Oysa işi yapmak için bir kişi yeterliydi. Müşteriye, daha düşük fiyat verirken daha kalabalık ekiple işi yapacaklarını söyleyerek işi aldılar. Sonra ne oldu dersiniz ? Müşteriden verdikleri sözleri tutmadıklarına dair onlarca şikayet aldım. Sadece bir kişiyi görevlendirmişlerdi.
Yazılım projesinin türü (masaüstü veya web sitesi) ne olursa olsun, işler hep aynı şekilde işliyor.
Burada sizin dikkatli olmanız ve doğru kararları almanız gerekiyor.
5) Kullandığı yazılım teknolojilerini inceleyin
Yazılım teknolojilerinin seçimi kritik aşamalardan bir tanesidir.
Eğer doğru teknolojiler seçilirse:
- Hatalardan maksimum düzeyde arındırılmış proje geliştiribilir
- Projeyi daha kısa sürede bitirebilir
- Proje maliyetini düşürebilir
- Yazılım ekibi farklı noktalardan rahatlıkla yazılım geliştirebilir
- Teslim sonrası bakım masraflarını azaltabilirsiniz.
Ayrıntılı bilgi için modern web geliştirme teknolojileri hakkındaki yazımı okuyabilirsiniz
6) Projenizin nasıl host edileceğini öğrenin
Eğer bir web sitesi projeniz varsa, web hosting konusunu iyi düşünmelisiniz. Yapacağınız anlaşmada aşağıdaki noktaları detayları değerlendirin.
Yazılım uzmanı Web hosting konusunda nasıl yardımcı olacak ? Web hosting fiyata dahil midir ? Yazılım firması bu konuda size nasıl yardımcı olacak mı? Hangi platformları seçmeniz gerektiği konusunda size sağlıklı bilgiler vermelidir. Uzun dönemde bütçenizi sarsmayacak, sağlıklı bir yol bulmanıza yardımcı olmalıdır.
Hangi web hosting platformu kullanılacak ? Web tabanlı yazılım projeniz için kritik noktalardan bir tanesi kullanacağınız platformdur. Web hosting alanında bugün en yaygın platform Linux’tur. Yukarıdaki "Yazılım her platformda çalışabilmelidir" sözümü bir kez daha tekrar etmiş olalım.
Linux sunucular, Facebook veya Google gibi büyük ve başarılı şirketlerin kullandığı sunuculardır. Neden Linux kullanmalı yazımı okuabilirsiniz.
Yüksek performans, güvenlik ve daha uygun fiyatlarla sunucu kiralama, sanal sunucu gibi çözümleri bulabilirsiniz.
Web hosting detaylarını baştan belirlemek, muhtemelen web sitenizin ziyaretçileri arttıkça eklenecek web hosting maliyetlerini de baştan kontrol almanıza yardımcı olacaktır.
Yatırımınız nasıl korunacak ? Web sitenizin düzenli olarak yedeklenmesi, güvenlik takibi detaylar ilk başta pek akla gelmeyen ancak önemli noktalardır.
Pek çok servis sağlayıcının standart paketlerinde yedekleme hizmeti bulunmaz.
Yedeklemenin doğru yapılacağından, bilgi kaybı yaşamayacağınızdan emin olmanız gerekir. Aksi takdirde web sitenize yaptığınız tüm yatırımı veya girmiş olduğunuz bilgileri kaybedebilirsiniz.
7) Web sitelerini inceleyin
Yazılım firmalarının web siteleri inceleyerek uzmanlık alanları hakkında ilk bilgilere ulaşırsınız.
Yazılım son derece karmaşıktır. Bu konuda az bilgi sahip olan birisine, basit biçimde anlatılmalıdır.
Eğer bu konuda teknik laflarla doldurulmuş, “vizyon-misyon” ezberleri ile kafa karıştıran, size net bir mesaj veremiyorlarsa, muhtemelen sizin işinizi de aynı şekilde yaparlar. Bir sonraki yazılım firmasının web sitesine geçin.
8) Referansları inceleyin
Bir yazılım firmasının referansları, her biri müşterilerinin ihtiyaçları ile uyumlu birbirinden benzersiz projelerden oluşmalıdır.
Güçlü bir referans listesi doğru yazılım uzmanını seçmenizde anahtar noktadır.
İlk elden deneyimlerini ve projeniz için gerekli olan tasarım ve programlama ihtiyaçlarınızı karşılaştırmanıza yardım eder.
- Bütün web siteleri aynı şablondan (template) çıkmış gibi mi duruyor yoksa benzersiz görünüme sahip mi ?
- Görsel tasarımlar çekici olduğu kadar fonksiyonel mi ?
Eğer yazılım firması yeni başlamış ise biraz temkinli olun ve proje tamamlamadan bütün ödemeyi yapmayın.
9) Eski müşterileri ile görüşün
Referanslarındaki eski müşterileri ile görüşmek ve yazılım uzmanının nasıl çalıştığı hakkında bilgi almak en sağlıklı yollardan bir tanesidir.
İyi referans verip vermeyeceklerini sormaktan çekinmeyin.
10) Nasıl çalıştığını öğrenin
Projenize çalışmaya uygun olup olmadığını ölçebileceğiniz hususlardan birisi de, yazılım uzmanının nasıl çalıştığıdır.
Verilen işi yönetebilme becerisi, teknik bilgisi, karmaşık işleri çözebilme ve en önemlisi sorumlu davranışlar anahtar noktalardır.
Bu konu projenizin yazılım geliştirme aşamasında ve yayına başladıktan sonra da etkilidir.
Projeniz için bir tek yazılım uzmanı işe alıyorsanız, çalışma şekli projenizin başarısını etkileyecektir.
Sorumlu ve duyarlı davranışlar
- Yazılım uzmanı başlangıçtaki sorularınıza ne kadar kısa sürede cevap verdi ?
- Aramalarınıza zamanında dönüş yaptılar mı ?
Eğer sizinle iş yapma konusunda verdiği sözlere duyarlı değilse, muhtemelen çalışmaya başladıktan sonra da olmayacaktır.
Fonksiyonel özellikler önerme kabiliyeti ve kötü kararlar konusunda konuşma istekliliği
Yazılım uzmanı, bir iş ortağınız gibi size bazı şeylerin kötü fikir olduğunu ve neden öyle olduğunu söylemeye gönüllü olmalıdır.
Yazılım uzmanı değilsiniz ve muhtemelen web teknolojileri, web standartları, tarayıcıların özellikleri, erişim standartları, e-ticaret ve güvenlik standartları, kullanılabilir/kullanıcı deneyimi konusunda en iyi yöntemleri bilmiyorsunuz. Sizin çalışma ortağınız olarak, yazılım geliştirme ve projenin hizmete girme süresinde size güvenilir bir yol gösterici olarak hizmet etmelidir.
Yazılım geliştirme işi doğası gereği, kontrolden çıkabilir, kolayca kayıp gidebilir. İşler bir anda ters yüz olabilir. Burada yazılım geliştrici, işin başında, tüm gerçekleri sizinle paylaşarak meseleyi yoluna koymak için doğru tavırları alması gerekir.
11) Yazılım uzmanı ile projenizin detayları konusunda hemfikir olmalısınız
Pek çok projede teknik detaylar ile proje sahibi arasındaki mesafeden dolayı kopukluklar olur.
Profesyonel yazılım uzmanı, her iki tarafın da anlayabileceği, teknik-jargon laflardan uzak bir metinde yapılacak işi herkesin daha iyi anlamasını sağlar. Bu tür metinlere kullanıcı hikayesi (ingilizce: user stories) deniyor.
Dinleme ve yorumlama yetenekleri Yazılımın geliştiricinin size doğru soruları sorması ve daha derine inerek tam olarak ne söylemek istediğinizi anlaması kadar önemlisi yoktur.
Terminolojiyi yanlış kullanarak yazılım firması bulmak kolaydır.
Ama iyi bir yazılım geliştirici:
- İş hedeflerinizle uyumlu
- İşlevselliği tamamen düşünülmüş
- Proje ile bir bütün olarak çalışacağından emin olmak için zamanını harcar.
12) Sağlam ve Detaylı bir Sözleşmeniz olmalı
Uzun sözleşmelerle gözünüz korkmasın. Ne için para ödediğinizin ve paranızın karşılığında tam olarak ne aldığınızın garanti eden iyi bir sözleşme gibisi yoktur.
Yasaların fikri eser olarak, e-ticaret, güvenlik ve diğer konuları kapsayan pek çok detayı bulunmaktadır. Ancak işi hukuka bırakırsanız yaya kalırsınız.
Yazılım projesinin tarafların hak ve sorumluluklarını belirleyen bir sözleşmesi mutlaka olmalıdır. Burada bazı kritik konular açıklığa kavuşturulmalıdır.
Sözleşmenin aşağıdaki detayları içerdiğinden emin olmalısınız:
- Proje detayları
- Ödeme koşulları
- Zaman çizelgesi
- Eğer mümkünse, projenin fikri haklarının kime ait olduğu
- Proje tamamlandıktan sonra verilecek yazılım desteği
- Size özel üretilmiş bir iş ve erişme hakkınız var mı veya lisans ücreti mi geçerli ?
- Yazılım geliştirme sürecinin bir kısmını firma başka birilerine yaptırabilir mi ? Eğer öyleyse, süreç veya üründe problem olursa bu ne anlama gelecek ?
Bunlar anlaşmadaki sadece birkaç noktayı göstermektedir. Projenize özel detaylarda dikkatli olun.
13) Garanti ve Destek
Projenin çalışır durumda gelmesi artık her şeyin bittiği anlamına gelmez.
Yazılım firmasının üretilen yazılım projesi konusunda sorumluluğu almalıdır.
Destek detayları, projenizin başarıyla hayatını devam ettirmesi için önemlidir:
- Güvenlik yamaları ve teknik arızlar için yazılım desteği bulunuyor mu ?
- Yazılımın ihtiyaç duyacağı yeni ilaveler için belirlenmiş koşullar var mı ?
- Yazılım desteğinin süresi ne kadar ? Bazı teknolojilerin belirli bir süre sonra güncelleme desteği sona erer. Yenileri ile değiştirilmesi gerekir.
Pek çok yazılım firması 1-12 ayı kapsayan, küçük düzeltmeler veya hataların giderilmesi konusunda garantiler sağlamaktadır.
Ben, kendi projelerimde müşterilerime 12 aylık bir süre garanti öneriyorum.
Yazılım uzmanının, mevcut müşterilerinin ne kadar uzun süredir çalıştığını incelemek, müşteri-yazılım uzmanı arasındaki başarılı iş ilişkisini ölçmek için etkili bir yoldur.
Destek konusu bu süreyi daha iyi anlamanıza yardım eder.
Benim, iş tercihim, müşterilerimle yıllarca süren bir iş ilişkisi yönünde. Açıklık ve netlik, uzun süren iş ilişkisinin anahtarı oluyor.
14) Web sitenize gerçekten sahip olduğunuzdan emin olun
Bazı firmalar, kendi sunucularında projenizi yayında tutan ama gerçekte sahip olmadığınız ortamlar yaratabiliyorlar.
Kendi kodunuza, fotoğraflarınıza ve site tamamlandıktan sonraki hakların kime ait olduğundan emin olun.
15) Önce küçük bir projede deneyin
Eğer seçtiğiniz yazılım uzmanının, uzmanlığı konusundan emin değilseniz. Küçük bir projede deneyebilirsiniz. Yeteneklerini, çalışma şeklini daha kolay anlamanıza yardımcı olur.
16) Çıkış stratejiniz olsun
Eğer bir başarısızlık yaşarsanız çıkış stratejiniz olmalı.
Herhangi bir iş ilişkisinde işler raydan çıktı mı neler olacağını bilmek önemlidir.
Yazılım uzmanı ile işlerin çok net biçimde nasıl yürüyeceğinden emin olmalısınız.
Bir arkadaşım başından geçen bir olayı anlattı. Yazılım projesi ile ilgili iki kişiyi işe almışlar. Aralarında bir sözleşme bile yapmamışlar. Projeye ilerledikçe, müşteri olan şirket yeni ilavelerde bulunmaya devam etmiş. Yazılım ekibi bir kısmını gerçekleştirmiş. Ancak iş ilerledikçe karmakarışık bir hal almaya başlamış. İşin büyüdükçe karmakarışık bir hal almış. Her iki tarafın proje bitmesi için sabrı kalmamış. Yazılım uzadıkça sorunları çözemez hale gelmişler. Bu gibi sorunları zaman zaman duyarım. Bir tarafta ödeme yapmış müşteri, diğer tarafta, az ya da çok iş yapmış, amatör yazılım ekibi duruyor.
Müşteri olarak, işler kötüye gittiğinde nasıl çıkacağınızı bilmek, başarısızlık durumunda daha az zararla atlatmanızı sağlar.
Uzun dönemli düşünün
Gelecekteki sitenizin ihtiyaçlarını kestirmek güçtür.
Profesyonel bir yazılım geliştirici ile uzun dönem çalışabilirsiniz. Bu nedenle bir yazılım uzmanı seçerken, fiyata odaklanmak yerine bir iş ortağı aramalısınız.
Umarım bu rehber size yazılım firması seçmeniz için gerekli ipuçlarını vermiştir.
Şimdi ne yapmalı ?
Özel yazılım şirketleri konusnda atladığım bir konu varsa, aşağıda yorumlarda paylaşabilirsiniz.
Eğer bu yazıyı beğendiyseniz sosyal medyada arkadaşlarınızla paylaşmayı unutmayın.