Çeviklik

14-9-2009

“Agile” kelimesi her ağıza sakız olmuş durumda, ben de parmağımı pastaya bulaştırmak istedim.

Çevik yapılar, duruma göre kendi adapte edebilen, hızlı şekilde çözüme ulaşan, durumu daha kompleks bir hale* getirmeyip basitleştiren yapılardır. Bu birey olabilir, bir yazılım geliştirme metodolojisi olarak düşünülebilir ya da bir kurumun yapısı olabilir.

Çevikliği maksimum düzeye kavuşturmak için yapılması gereken iki kritik şey var.

Al, Çal, Kaçır

(Ç)almak ya da outsourcing.

Outsourcing

Outsourcing tüm sorumluluğu başkasına atmak olarak kabul edilebilir.

Mesela bir blog açacaksanız “Wordpress” kullanmak çalmaktır. Kendiniz wordpress’ i download edersiniz, sunucunuza kurar ve kullanırsınız. Hazır bir sistemi çalıp kullandınız. Outsourcing ise blogger.com’ dan blog açmak ya da Wordpress.com üzerinden bedava bir blog almaktır.

Outsourcing çeviklikte her zaman ilk adım olmalı, buradaki kritik nokta devrettiğiniz işin üzerinde ne kadar kontrole ihtiyaç duyduğunuzdur. Örnek olarak eğer kendinize özel bir web suncusu kullanmak zorundaysanız basit bir hosting firmasından, basit bir hesap almak işinizi görmeyecektir. Outsourcing’ de yapabileceğiniz en büyük hata “ana işinizi” başkalarına devretmektir.

Mesela bir web tarayıcısı geliştiriyorsanız rendering engine’ ini geliştirmek yerine başka bir yerden alıp kullanmak yanlış olacaktır. Not düşmek gerekir iş modeli sadece devretmek üzerine kurulu firmalar istisnadır, mesela IE’ nin altyapısını kullanıp arabirimini geliştiren ya da farklılaştıran firmalar var. İkinci bir not düşecek olursak bu tip firmaların hiçbirinin uzun vadede bir başarısı olmamamıştır.

Aynı şekilde rendering engine’ ini dışarıdan programcılara outsource etmekte bir o kadar yanlış olacaktır, buna rağmen Gzip encoding’ i oturup yazmanız da bir o kadar saçma olacaktır. Gzip library’ sini outsource etmek değil çalmanız gereklidir ama o konuya biraz sonra geleceğiz.

Web 2.0 hikayesinin sosyal medya’ yı hayatımıza sokması, kişisel bilgilerin öneminin azalması, insanların internet sitelerine daha fazla güvenmesi ile SaaS (software as a service) konsepti ve oursourcing / devretme olanakları inanılmaz şekilde yükseldi. Yükselmeye de devam edecek. Bu yükseliş bizim için iki anlam ifade ediyor;

1. SaaS işinin geleceği çok iyi olduğundan dolayı bu sektörde iş yapmak

2. Kendi işimizde olabildiğince bu yüksek kalite hizmetleri kullanmak

SaaS’ ın büyümesi ve outsourcing kavramının popülerleşmesi belki son senelerde gördüğümüz internetteki kaliteli iş modellerinin ve firmaların çoğalmasındaki kritik nedenlerden biri olabilir. Yeni model firmalar kendi CRM sistemlerini kurmuyorlar, SalesForce kullanıyorlar, SVN Serverlarını kurmuyorlar, xp-dev’ den SVN server ediniyorlar, artık proje yönetim sistemi kurmuyorlar, BaseCamp kullanıyorlar.

Bu da onlara enerjilerini geçekten umursadıkları işe yönlendirme fırsatı sunuyor. Ek olarak maliyetlerin düşmesi de cabası.

Kurumların, bu tip içerideki yönetim sistemlerinin kurulumu, bakımı ve güncelliği için inanılmaz vakitler harcadıkları dönemler vardı. Hala Microsoft, Adobe gibi firmalar bu tip sistemleri kullanmıyor. SalesForce gibi ekstrem uçtaki hizmetler çıkmadıkça kullanmayacaklar da.

Bunun nedeni bu tip büyük firmaların bu tip konularda yakabilecekleri paralara sahip olmaları ve burada ekstradan yakacakları 1M$, sistemin onlara özel olmasındaki avantajlardan dolayı zaten uzun vadede kendini amorti edecektir. Ancak bu tip firmalar ile 1-150 kişi arasındaki firmaları karşılaştırmamak lazım.

Firmaların doyum noktaları vardır, doyum noktasından sonra para harcama ve iş yapma modelleri değişir. Mesela bir yazılım firmasının doyum noktası ana yazılımlarının piyasadakilerden daha çok iş yaptığı ve yakın bir takipçisinin olmadığı noktalarda olur. Mesela Skype buna güzel bir örnek.

Bu noktaya gelmiş bir yazılım firması genelde yazılıma sadece saçma özellikler ekler, elindeki büyük kadroyu mütemadiyen çalıştırması gereklidir ama yapacak işi yoktur. Yazılıma tema, animasyon gibi kimsenin umrunda olmadığı sadece %1 için bir anlam ifade eden şeyler eklerler ya da bazı MS Office sürümleri gibi sadece görsel değişiklikler yapıp yeni bir versiyon daha satmaya çalışırlar.

Özetle küçük ve çevik bir firma artık en basit işten en komplike işe kadar herşeyi outsource edebilir hale geldi. Önemli olan outsource edeceğiniz şeyleri ve outsource edeceğini kişileri, firmaları iyi seçmek.

İlk başta outsourcing işi pahalı gibi gözükse de aksine çok daha ucuzdur. Yatırım daha azdır, yönetim istemez, değiştirmek basittir, disaster recovery gibi konular sizin değil başkasının derdi olur. Vakit ciddi bir kaynaktır ve bir şeye yatırım yapma, yönetme ciddi bir kaynak gideridir. Eğer hala vakit, bakım-takip ve para arasındaki ilişkiyi matematiksel olarak kuramıyorsanız zaten kişi veya firma olarak burada anlattıklarımdan daha ciddi sorunlarınız var demektir. Önce o noktayı kavramak lazım ama oradaki ilişki başka bir yazı konusu, burada detaylandırmayayım...

(Ç)almak

Çalmak outsource edemediğiniz de yapmanız gereken şey. Mesela bir blog’ a ihtiyacınız var bu ama hali hazırdaki blog sistemleri sizin siteniz ile iyi entegre olamıyor, bu durumda gidip baştan blog sistemi yazmazsınız, hali hazırda yazılmış bir blogu kullanır ve onun üzerinde özelleştirme yaparsınız, işte bu çalmaktır.

Bir iş yapacaksınız çalışan bir iş modelini alabilirsiniz. Baştan tüm modeli oluşturmanıza gerek yok, ama eğer kendiniz çok daha gelişmiş bir iş modeli geliştirdiyseniz ve işinizi buna dayayacaksanız tabii ki bunu yapın. Çalma ile Geliştirme arasındaki çizgiyi doğru çizmek lazım.

Son örnek olarak mesela kodlama standartları dokümanı oluşturacaksınız, kendiniz sıfırdan başlamayın gidip benzer bir doküman bulun daha sonra bunu kendi takımınıza göre özelleştirin.

Çalmayı küçükten büyüğe her boyutta yapabilirsiniz, hazır bir uygulamayı alıp değiştirebileceğiniz gibi bir algoritmayı kendiniz tekrar keşfetmeye çalışmak yerine pseudocode’ unu bulup onun üzerinden yazmanız daha mantıklı olacaktır.

Dikkat edilesi

Çalarken dikkat edilecek şeyler var,

- Gereksinimlerden daha kompleks sistemleri hazır diye entegre etmeye çalışmak
Eğer ana sayfada 3 haber başlığı ve metin göstermek istiyorsanız Wordpress’ i implemente etmeye çalışmayın, kendiniz yazın. Bedava her zaman bedava demek değildir. Sahipliğin getirdiği bir masraf vardır ve kompleks sistemler de bu yük ile gelir. Dolayısıyla **basit tutun.

- Çaldığın şeyi bilmek
Eğer bir kodu ne yaptığını tam bilmeden çalıyorsanız şöyle saçma durumlar oluşabilir.

Daha önceden Hayatınızı değiştirecek 62 öneri yazımda da söylemiştim “Mükemmeliyetçilik” outsourcing’ in ve çalmanın en büyük düşmanıdır ve bunu yenmek çok zordur. Mükemmeliyetçilik ile ilişkili diğer bir kötü huyda kontrolcülüktür. Koda sahip olmak, HTML çıktısını istediğin gibi kontrol etmek, herşeyi bilme ve kontrol etme arzusu da sizi bunları yapabilmekten uzak tutacaktır. O yüzden bu tip huylardan kurtulmaya çalışmak lazım.

Çalın, outsource edin, basit düşünün, üretin.

*over-engineering
** KISS - Keep It Simple & Stupid

Recent Blog Posts

See all of the blog posts