26 Ocak 2007 Cuma

Entropi

Termodinamik okuyanlar bilir:
Evrende maksimum düzensizlik ve minimum enerjiye olan eğilim birbirini zıt yönde destekler.
Yani siz bir sistemi ne kadar düzenlemeye çalışırsanız; sistem en az sizin çabanız kadar (ve muhtemelen çok daha fazla) düzensizliğini arttıracaktır.

Bu durum fizikte, ısı dinamiğinde, akışkanların davranışlarında böyle olduğu gibi güncel hayatınızda; projelerinizde; sosyal çevrenizde; uluslar arası ilişkilerde de aynen geçerlidir.

Siz ne kadar "düzenli" olmaya çalışırsanız çalışın; bir yerleri ne kadar derleyip toplamaya gayret ederseniz edin; farkında olmadan bambaşka bir yerde çok daha yoğun bir düzensizlik oluşturacaksınız.

Diyelim bir proje üzerinde çalışıyorsunuz. Projenin gelişimi esnasında yapılacaklar listenizin devamlı olarak şişkinleştiğini; önemli kilometre taşlarını ertelediğinizi; yani sürekli vites küçülttüğünüzü fark edeceksiniz.

Örneğin, diyelim birkaç hafta içinde altı aydır geliştirip durduğumuz ürünümüzü hizmete açıyoruz. Yani önümüzde önemli bir kilometretaşı var.

Ancak kimse bu kilometre taşının farkında değil:

Bakıyoruz ki ortalıkta lanse edilmeye hazır olgun bir ürünümüz yok. Neyseki kalite kontrol ve testten sorumlu ekip arkadaşlarımız işlerini iyi yapmışlar ve yüzlerce yapılacak işimiz (ya da yazılım projeleri için: megabaytlar dolusu bir bug veritabanımız) var.

Kötü haber ise; ekibinizde kimse bu bug (hata) veritabanına aylardır elini bile sürmemiş. Ve siz birkaç gün içerisinde ürününüzü lanse etmekten bahsediyorsunuz.

Girişimci olarak bir karar almanız gerekirse
Gerekirse sabah akşam çalışılacak; ama bu veri tabanındaki tüm hataları ayıklamış olacağız!
diyerek bir savaş açabilirsiniz.

Ancak altı aylık birikmiş bir hata yığınını elinizde bir tabur yazılımcı olsa yine de birkaç haftada ayıklayamazsınız. Ve işin ilginci siz bu hataları ayıkladıkça sağdan soldan yeni yeni hatalar mantar gibi türeyecektir (tecrübeyle sabit).

Yani kazanan her zaman entropi olacaktır.

Tüm bug'lara teker teker savaş açmak mı?
Tamam, açalım. Elimizde kayıtlı 352 bug var. Bir o kadar da kayıt dışı olanı var bu böcüklerin.

Diyelim ki mucizevi bir şekilde her hatayı ortalama 15 dakikada çözdük. Tam tamına 88 adam x saatlik bir iş gücü demektir bu!

Ve hiçbir hata 15 dakikada ayıklanamaz.

Tüm bunların yanısıra, yöneteceğiniz insanlar, yapacağınız diğer işler varsa ve son birkaç haftasonunuzu tam kapasite bu hata ayıklama savaşına verdiyseniz ve yine de pek bir değişiklik yoksa; bir şeylerin yanlış gittiğini fark edeceksiniz.

Yazılım hataları işin sadece bir yüzü. Bir de bu hata ve değişikliklerin yansımaları var:
  • Pazarlama dokümanlarınız güncelliğini kaybetmiş; güncellemeniz gerekli.

  • Kullanıcı arayüzünüz değişmiş; bu değişikliğin yardım sayfalarına, sık sorulan sorulara; ürün tanıtımına ve diğer pazarlama materyaline yansıtılması gerekli.

  • Test senaryolarınız tarih öncesinden kalma. Güncellenmeleri ve lansman öncesi yeniden test yapılması gerekli.
Ve elinizde tek güvenilir kaynağınız: "hata veritabanı"nız.

Fakat; 352 bug ve 88 adam*saatlik iş mi? Durun bir dakika. Daha lanse edecek bir ürünüm var benim!

...

Böylesi bir felaket senaryosu karşısında soruna analitik olarak yaklaşmazsanız dağ gibi büyüyen sorunlarla baş başa bulursunuz kendinizi.

Öyleyse bir süreliğine katı ve kuralcı yönetici kimliğimizi bir kenarı bırakalım ve farklı bir şapka takalım:

352 x (15 dakika) = "imkânsız"

Bu (hayli makul ve iyimser) tahmin bile korku ve endişeden insanın kanını dondurmaya yetiyor.

Bir kez bu korkuyu üzerinden attı mı, mantıklı düşünebiliyor insan:

Peki o zaman ne yapmalı?

Benim önerim: Hemen başlayın!
Fakat, daha test etmediğim yüzlerce senaryo var.
Boşverin. Genel bir test yapın. Hemen şimdi. Ve başlayın.
Dur, dur, dur... Dinle. Ürün detayları dosyası (spec) henüz tamamlanmış değil. Hem yarın sabah dokuzda....
Sus! Sessiz... Otuz sayfa da yazsan bir paragraf da yazsan nasıl olsa senden başkası okumayacak. O zaman özet bir paragraf yaz ve hemen başla!

...

Bir yapılacaklar listeniz olabilir. Sizce bu listedeki maddeler "bir gün elbet" yapılacağı için mi ordalar?

Kesinlikle hayır!

Yapılacaklar listeniz sizin aslında "erteleme" listenizdir. Yapacağınız işi yapılacaklar listenize koyup, kendinize içinizden geldiğince erteleme hakkını veriyorsunuz.

Eğer varsa böyle bir listeniz bir göz gezdirin bakalım:
  • Kaç tane maddeyi ne zaman eklediğinizi bile unuttunuz?

  • Kaç tane maddenin nasıl yapılacağı konusunda en ufak bir fikriniz bile yok?

  • Kaç maddenin aslında yapılıp yapılmadığını bile bilmiyorsunuz?
Başlamadığınız sürece hiçbir şey olmaz.

...

Önce imkansızlıkları inceleyelim. Bu yazıya konu olabilecek iki tür imkansızlık var:
  • Ya yapacağınız işin boyutu öylesine büyüktür ki fazla bir zihinsel efor gerektirmese bile verilen zamanda yapılamsı olanaksızdır.

  • Ya da yapacağınız iş karmaşıktır; yoğun bir analiz gerektirir ve verilen zamanda yapılması imkansızdır.
Yapmanız gereken iş, sıkıcı ve çok da olsa beyninizi parçalayacak kadar zor da olsa yapmanız gereken tek bir şey var:

Başlamak!

Bu mudur yani? Bu kadarcık mı önerin?

Evet, budur. Başlayın. Ertelemeyin, beklemeyin, bahane üretmeyin, hemen ve şimdi başlayın.

İkna olmadınız mı?

Şu yapılacaklar listenize bir daha dönün.
  • Kaç tane "acil" ve "son derece önemli" olarak işaretlediğiniz görev üç aydır orada?

  • Peki altı aylık acil ve önemli görevler?

  • Ya bir yıldır orada duranlar?
Can sıkıcı değil mi?
İyi de başlasam bile nasıl bitireceğim ki...
Kendinizi eleştirmeyin.

Listenin en tepesindeki hatayı okumakla başlayın. Geride kaç tane hata kaldığını düşünmeyin bile. Ve bu hatayı düzeltmekle başlayın işe.

Bakın ilerler gibi oldunuz. Bir iki hata daha ayıklayın. Sanki biraz ivme kazandınız değil mi?

Ve bu durum kendinize olan güveninizi tazeledi:
İlerleme + İvme = Güven

Arada farklı şeyler de yapın


İster bitmez bir can sıkıcı işler listeniz olsun; isterse beyninizin fosfor ve oksijen gereksinimini üçe katlayan karmaşık bir problem; zihninizin tıkandığı, yaptığınız işin gerçekten size olanaksız geleceği anlar olacaktır.

O zaman; başka bir işle uğraşın.

Kendi alanımdan örnek verirsem:

Veritabanı kodlarken kritik bir noktada kitlendiniz ve nereye gideceğinizi kestiremiyor musunuz? O zaman kullanıcı arayüzü ile uğraşın.

Kullanıcının arayüzle en kolay nasıl etkileşeceğini bulmakta sorun mu yaşıyorsunuz? O zaman yarım bıraktığınız "arama motoru" özelliğinin nasıl daha hızlı ve verimli çalışacağını bulmaya çalışın.

Kod yazmaktan ve tasarım yapmaktan sıkıldınız mı? O zaman pazarlama planlarını güncelleyin; yardım dosyalarını elden geçirin.

Öncelikle takıldığınız/sıkıldığınız noktada odağınızı değiştirmek beyninize oynaması için yepyeni bir oyuncak vermek demektir. Ve beyin yeni zorluklara / yeni haberlere / yeni eğlencelere; kısacası yeni her türlü bilgiye bayılır.

Daha da önemlisi; siz uğraştığınız zorlu problemi bir kenarı bıraktığınızı düşünseniz de beyniniz arka planda bu olanaksız sorunu çözmek için çabalar durur. Onun için çoğu zaman ilham uyurken, duş alırken, gezinirken... yani beklenmedik anlarda insanın karşısına çıkar.

Beyniniz üzerinde çalıştığınız sorunun ne kadar önemli olduğunu bilir ve bir çözüm bulana kadar bu sorunun üzerinde çalışmaya devam eder. Ve gereken çözümü bulur da. Siz kapasitenize ve gücünüze inanın yeter.

Entropi her zaman kazanır.

Hayatı bazen kendimi ve yaşayışımı parça parça düzenlemek için kurulmuş bir "yapılacak işler" dizisi olarak görüyorum.

Bütüne bakıldığında, fark edilecek olan, bu görevler dizisinin yapılması olanaksız ve çok yoğun çaba gerektirecek olmasıdır.

İşin gerçeği; dünya takip edebileceğinizden çok daha hızlı bir ivme ile değişiyor.

Hiç yorum yok: