Wednesday, November 1, 2000

Yazılım Şirket Çeşitleri

Bu yazımızda, yazılım üreten şirketlerin hangi kategorileri oluşturduğunu, bu kategorilerin tarihini birkaç örnek ile göstermeye çalışacağız. Kategorilerden birisi olan "ürün şirketi", rahatça bilinen ve tasvir edilen bir şirket olsa da, öteki şirket türü, danışman şirketi, yaygın olarak bilinmeyen yazılım şirketleridir. Yazının bilgilendirici olacağını umuyorum.

Ürün şirketi ile başlayalım.

Ürün şirketleri

Microsoft, Oracle gibi büyük şirketler, paket program olarak ürün piyasaya sürerler. Direk ev kullanıcısı, ya da programcılara hitaben altyapı olarak kullanabilek bu ürünler, parakende fiyat ile piyasada satılır. Ya da, Oracle'ın kullandığı oldukça çetrefilli bir lisans (fiyatlandırma) kuralı eşliğinde ürün müşteriye satılır.

Ürün yazılım şirketleri, bir paketi piyasaya sürmeden önce, uzun süreli bir ar-ge dönemi süresince büyük paralar harcarlar. Mesela Oracle veri tabanı, ya da Microsoft Windows işletim sistemi, milyonlarca dolarlık programcı ve testçinin zaman harcayarak ortaya çıkardığı bir sonuçtur (sürekli bozulsa da (!)).

İlginç olan, ilk geliştirme seviyesi aşıldıktan sonra, paket programlar kopyalanma, ya da normal sanayii'nin anladığı şekilde, üretim/çoğaltma safhasında neredeyse yok denecek bir miktar harcanmasıdır.

Yazılım tabanlı ekonomik modele 'yeni ekonomi' denmesinin de sebeplerinden biri budur. Kıyaslayacak olursak, bir maden ocağı ortada olan belli miktardaki bir kaynağı çıkartıp, piyasaya sürerek getiri kazanmaya uğraşır. Eğer maden ocağı daha fazla üretim yapsın der isek, daha fazla elemen işe koyulması gerekir. Fakat bunun anlamı aynı zamanda maliyat fiyatlarının 'artması' demek olacaktır. Belli bir arttırımdan sonra eldeki kâr kaybolmaya başlayacağı için de, maliyet, üretim miktarı gibi ayarların dikkatli gözlenmesi gerekir, nitekim ekonomide bu kuramın 'düşmekte olan getirilerin kuramı (theory of diminishing returns) olarak anılmasının sebebi budur.

Fakat yazılımda, ürün şirketleri için yazılımın kopyalanması safhası çok ucuzdur, hatta şimdi İnternet sayesinde sıfıra yakındır. Bu yüzden herhangi bir firma piyasaya derhal (en önce) çıktığı anda, sıfır üretim maliyeti sayesinde süratle kopya çıkartarak, piyasayı anında tekelleştirmesi mümkün olmaktadır. Nitekim, Microsoft'un mahkemelik olmasının sebebi de biraz da açıdan alınmalıdır. Yazılım sektöründe, dişe-diş, pastayı eşit paylaşmış olan rakiplerin kavgası yerine, bir tekelin ötekini yıkarak geldiği bir savaş vardır, buna değişik zamanlı tekellerin savaşı denebilir.

Programcılar Açısından Ürün Şirketleri

Ürün şirketleri, bir kod bazı ile uzun süre beraber kaldıkları için, tekrar-tekrar kullanır (reusable) kodlama yapmaya daha özen gösterebilirler. Danışman şirketlerinde tanıştığımız, tekrar kullanılan kodlama tekniklerini en çok ilgi gösteren kimseler, ürün geçmişi olan programcılar oluyordu. Tabii daha farklı olan danışmanlık ortamı, bu arkadaşlara genelde biraz garip gelibiliyor. Yazılıp/atılan kodlama, uzun süreli bakılan/genişletilen kodlar ortamından tabii ki değişik olmaktadır. Danışman şirketleri yazının geri kalan kısmında işleyeceğiz.

Bu fark dışında ürün şirketleri de sürekli tümleştirme tekniklerini kullanırlar, mesela Microsoft projelerinde günlük bütün kod bazını derleyen ayrı bir makina vardır diye duyumlar almıştık. Tabii Extreme Programcılık yöntemi, bu sayıyı çok daha sıklaştırmıştır.

Ürün şirketlerinde bir kötü taraf, zamanla programcının aynı konu üzerinde sürekli çalışması ile ortaya çıkan 'aşırı uzmanlaşma' durumudur, bu durumda bir nevi at gözlüğü takılmış gibi sadece bir konuya odanlanma olayı ortaya çıkabilir; Fakat eğer ürünün gelişmesi uzun sürecek ve gelişerek yeni teknolojiler eklenecek ise, bu durum o kadar kötu olmayabilir. Her halukârda, XP'nin eşleme tekniği ve sandalye değiştirme taktikleri ile bu aşırı uzmanlaşmanın önüne geçilebilir.

Danışman Şirketler

Bu tür yazılım şirketi çoğu kimse için (hatta çoğu programcı için bile) tam bir muammâdır, bu yüzden özellikle işlemek istedik.

Önce tarih.

Danışman şirketlerin tarihi, en azından Amerika'da, 'vergi danışmanlık' tarihi ile yanyana gider.

Bunu da anlamak için Amerika'nın vergilendirme sistemini bilmek gerekiyor. ABD'de birçok vergi kanununun oluşturduğu, yılların da verdiği değişim, lobilerin kendi sektörleri için Kongre'den geçirttikleri ekler (rahatlıklar) yüzünden ortaya çıkan tam bir keşmekeş durumu vardır.

Bu keşmekeşin içinden çıkmak bir süre sonra bir uzmanlık haline gelmiş, ve bu tür danışmanlık yapan şirketler holdinglerin kapısını çalmaya başlamıştır. Danışmanlar, müşterileri olan şirketlere vergilerini nasıl vereceklerini, aynı zamanda da, nasıl daha az vereceklerini öğretmek için vergi sistem açıklarını, müşterilerinin bulundukları sektörü gözeterek önemli bir servis sağlamaya başlamışlardır. Bu danışman şirketlerin sunduğu vergi tavsiyesi, bir bakıma holdinglerin kârlılığı üzerinde direk bir etki teşkil ediyordu.

Bu şekilde vazgeçilmez hale gelen danışmanlar, bir süre sonra vergi danışmanı olarak girdikleri şirketlere yan ürünler de pazarlamaya başladılar.

Bu yan ürünlerden birisi (ya da servis demek daha uygun olur) "stratejik tavsiye" türünden bir danışmanlık idi. Holdinglerin işletmesini ilerletmesi için getirilmesi mümkün olan iyileştirmeler, bir şirketin nasıl düzenleneceği, karar mekanizmasının nasıl isleyebileceği, vs. gibi tavsiyeler hep bu şemsiye altında sunulmaya başlanmıştır. Vergi tavsiyesi için zaten müşterinin kapısından girmiş olan danışman, bir yandan da açık gördüğü yerlerde bu tür yeni danışmanlığı pazarlamakta zorluk çekmemiştir.

Tabii, stratejik danışmanlık, 80'li yıllardan sonra beraberinde teknolojik danışmanlığı da otomatikman getirmiştir.

ABD televizyonlarında çıkan bir IBM reklamının da söylendiği gibi, artık şirket başkanlarının (CEO'ların) aldıkları her karar, mutlaka teknolojik bir değişiklik yani yeni bir yazılım projesi içermektedir. Gitgide yazılıma bağımlı olan şirketler, eğer yeni bir düzenleme yapmak istiyor iseler, yeni bir yazılım değişikliği de yapmaya mecbur kalmaktadırlar.

Bu açığı kapatmak için danışman şirketler, ek bir servis olarak yazılım danışmanlığını da dağarcıklarına ekleyerek yelpazelerini genişletmişlerdir.

Zamanla, bu üç danışmanlık çeşidi bazen tek başlarına görülmeye başlanmıştır. Günümüzde, kimi şirket sırf yazılım danışmanlığı, kimisi sırf stratejik, kimisi de sadece vergi danışmanlığı yapabilmektedir. Tabii eskiler, ya da beş büyük diye anılan şirketler hala tüm servisleri birarada taşımaktalar. (Taşımakta idiler demek daha da doğru olabilir, çünkü son zamanda meydana gelen şirket bölünmeleri bu durumu biraz değiştirmiştir).

Danışman Şirketlerin Düzeni

Sırf yazılım danışmanı olan bir şirketi ele alalım. Bu şirketlerin atmosferi genelde şöyledir.

Bütün hayat proje etrafında döner. Gelişen teknolojilerinde etkisi ile proje bitme süreleri iyice düşmüştür, ve bu yüzden kim nerede, kim hangi projede gibi konuşmalar duyarsınız. Sürekli bir hareket vardır.

Kültür olarak, danışman şirketlerde çalışan kişiler, programcı seviyesinde bile, teknolojiyi allandırıp pullandırmakta en büyük ustadırlar. Çünkü, söyle ya da böyle müşteri karşısına çıkacaktırlar, ve bu yüzden teknolojiyi satmak zorundadırlar. Teknoloji satmakten kastımız, kendilerinin XYZ teknolojisini kullanarak getireceği çözümü satmaktır. Genelde danışman şirketlerin kendi ürettiği bir ürün yoktur.

Artı olarak danışman şirketlerin en iyi tarafı, dinamik ve sürekli devirdaim olan teknoloji bilgisidir. Her proje 6-7 ayda bittiği için, bu her seferinde yeni bir yazılım projesine silbaştan başlanacak demektir, ve bu yeniden başlama sırasında bir önceki projeden gelen, halâ taze olan bilgilerden muhakkak yararlanılır. Mesela kaynak kod idare sistemi kuruluşu, sürekli tümleştirme makinasının kuruluşu, programcıların ihtiyacı olan Unix kullanıcı hesaplarının sıfırdan kurulması birkaç projeden sonra artık süratle yapılır hale gelirler.

Ek olarak, bir de her projenin getirdiği yenilikler vardır. Danışman programcı, her yeni projede, sürekli değişmekte olan teknolojiden yeni bir tanesini denemeye fırsat bulabilir. Sıfırdan başlandığı için ekleme yapmak zor olmaz. Tabii, yeni teknolojiyi öğrenme için harcanacak (kaybedilecek) zaman göz önünde tutulmalıdır. Eğer danışman her projede yeni bir teknoloji ile uğraşılıyorsa, bir süre sonra öğrenmeyi öğrenir, ve yeni teknolojileri daha süratli bir şekilde yutabilmeye başlar.

Tabii herkesin öğrenmesinin bir sınırı vardır; bu yüzden en çok değişik teknoloji ile haşır neşir olmuş danışmanın bile bir 'favori' teknoloji demeti mevcuttur. Bu demet, ne kadar sektörde kanıtlanmış ve geleceği olan teknolojilerden ise, o kadar iyidir, çünkü bu daha kalıcı olacak ve öğrenildiği zaman danışmanı daha değerli halde en uzun süre tutacak bilgiler toplamıdır. Bu yüzden danışman programcıların kafasından, kişisel bazda, sürekli olarak hangi teknolojiler yeşeriyor, hangisinin geleceği var sorusu mevcuttur. Mesela daha kariyerinin en başında, en büyük yol ayırımı yapılır; Microsoft'mu, Unix'mi sorusuna cevap verilir. Amerika'da çoğu danışman bu soruya Unix cevabını vermişlerdir. Her iki yol da, ötekinden çok ayrı uzmanlık gerektirdiğinden, bu seçim çok önemlidir ve genelde bir programcı (bazen danışman şirketleri de) bu iki yoldan sadece birinde uzmanlaşır.

Satış

Burada, sabit zaman/fiyatlı proje usulü çalışan danışman şirketlerinden bahsetmemiz gerekecek. Extreme programcılık hakkındaki yazılarımızda bu şirketlerden biraz bahsetmiştik. Şimdi, sabit modelin satış sürecine getirdiği gerginlikten bahsetmemiz gerekecek.

Netice itibarı ile, danışman şirketin elindeki tek kaynak insandır. Ortada ürün, arazi, gibi demirbaşlar mevcut değildir. Patent yoktur. Bu yüzden satış sürecinde de, satış görevlisinin elinde bir insana dolaylı öteki dolaysız bağlı olan iki sübap vardır. Fiyat ve Zaman.

Bu iki faktör haricinde, mesela Kod kalitesi satış süreci sırasında pek göz önüne alınmaz. Demek ki, satışı kapabilmek için, müşteriye "daha hızlı" ve/veya "daha ucuz" proje satabilmek önemlidir. Eğer danışman şirket 'aç', projeye (yani paraya) muhtaç ise, satış görevlisi bu indirimi yapmak için büyük bir istek duyacaktır.

Potensiyel bir problem işte burada ortaya çıkmaktadır, çünkü satış görevlisi genellikle teknik adam değildir. Bu sebeple yaptıği bu seçimin perde arkasındaki programcılar üzerine getireceği yükten habersiz olabilir. 90'lı yıllarda bu birçok kez olmuş bir vakâdır, faturayı ne yazık ki haftada 70 saat çalışmak zorunda kalan programcılar ödemiştir. CTP, Sapient gibi şirketlerin çalışma durumu 90'lı yıllarda bundan ibaretti. Bu şirketlerdeki programcıların yaş ortalamasınında 30'dan aşağı olması tabii ki raslantı değildir, belli bir yaştan sonra bu tür bir tempoyu kaldırmak zor olmaktadır.

Özetle, öğrenek için iyi bir ortam oluşturan danışman şirketler, tempo olarak hızlı, ve sabit bazda çalıştıkları zaman gerginlik yaratan ortam oluştururlar.

Tabii başka yazıda bahsettiğimiz gibi, eğer danışman şirket belli bir ürün demeti üzerinde uzmanlayı (odaklanmayı) başarır ise, o zaman daha az zamanlı ve fiyatlı proje satmayı başarabilir, ve programcıyı daha az öğütür.

1 comment:

Harun Çetin said...

Teşekkürler. Yazılarınız ve blogunuza koyduğunuz dokumanlar gerçekten bilgilendirici ve doyurucu. Başarılarınızın devamını dilerim.