Yazılım Projelerinin Kötü Alışkanlıkları — 2 | Erteleme

Alihan Koç
5 min readOct 4, 2020

--

Evet geldik serimizin ikinci yazısına. İlk yazımızda Mükemmele Bağımlılık konusunu işledik. Aşağıya linki bıraktım.

Erteleme hastalığı hepimizde muhakkak vardır muhteşem bir iradeye sahip değilsek. Lakin bir önceki konuda bahsettiğimiz gibi mükemmele bağımlıysanız erteleme kaçınılmaz olacak.

Erteleme kötü bir hastalık. Çok net bir sonucu var. Ertelenirse proje zamanında bitmez. Zamanında bitmezse para ve zaman kaybederiz. Çok net. Burada ertelemekten kastımız projeyi ertelemek değil aslında. Projede yapılacak aşamaları ertelemekten bahsedeceğiz.

Çok sevdiğim için yine bir örnek üzerinden gidelim. Muhteşem mükemmel bir SaaS projeniz var. Projenizde test yazacaksınız. Ancak test yazmak zahmetli bir iş. Abi testi sonra yazarız bir şekilde şimdi çalıştıralım da para kazanalım dediniz. O testi bir şekilde yazan çok az kişiyle karşılaştım. Onlar da yarım yamalak yazdılar.

Bu işin avantajları ve dezavantajları var. Avantajı sadece bir tane. O an o işten kurtulmak! Dezavantajlara gelecek olursak;

  • İşi erteleyince sonra ne yapacağını unutacaksın.
  • İşi erteleyince sonra yapması daha zor gelecek.
  • İşi erteleyince sonra iş daha da büyür, çünkü projenin başında yapılacak işle sonrasında yapılacak iş farklıdır. İlk başta 50 tane test yazmak gerekiyorsa sonra 500 tane test yazman gerekecek. İş büyüdükçe daha da erteleyeceksin.
  • İşi erteleyince o işi yapması gereken kişi işten ayrılırsa yeni gelecek kişi o işi kendine göre baştan tasarlayacak. Zaman maliyeti git gide artacak.
  • İşi erteleyince başka işler de ertelenmek zorunda kalacak. Mesela yazdığınız testleri otomatik çalıştıracak CI otomasyonunu da ertelemek zorunda kalacaksın.
  • İşi erteleyince aklın hep o işte kalacak, yapmaya karar verdiğiniz başka işi daha düşük performansla yapacaksın.

Böyle 100 tane madde yazılır belki. En önemli dezavantajları bunlar olsa gerek. Peki neden erteleriz?

Photo by Evan Dennis on Unsplash

Yazının başında bahsettiğim gibi eğer mükemmele bağımlıysanız ve bir iş ya mükemmel olsun ya da olmasın diyorsanız ve o işi mükemmel yapacak vaktiniz yoksa ertelersiniz. Hiç gelmeyecek olan daha geniş bir zamanda yapmak için.

Bir başka sebep bilgi eksikliğidir. O işi yapmayı bilmiyorsanız ertelersiniz. Önce öğreneyim o arada başka işleri yapayım dersiniz. Fakat yöntem bu değildir. Diğer işleri durdurup bu işi öğrenip bitirip sonra diğer işlere geçmelisiniz.

Daha başka bir sebep zaman kısıtıdır. Dezavantajlarda bahsettik, sonradan bu işin daha fazla zaman alacağını o an kestiremeyiz. Yapılacak çok iş yapacak az zaman vardır. Erteleriz.

Sebeplerden biri de aşırı heyecanlı olmaktır. Kastım şu; proje bir an önce bitsin çalışan bir şeyler göreyim dersiniz. O güzelim fikri ayağa kaldırıp çalıştığını görüp gurur duymak istersiniz. Heyecanlı doğru bir kelime mi bilmiyorum buraya oturmadı sanki, hevesli de olabilir. Nasıl anlatayım bilemedim bu paragrafı. Umarım anlamışsınızdır.

Yazılım geliştiriciler zor işleri sever. Kendini zorluklarla denemek ister. Kolay görünen işleri de nasıl olsa yaparım bir ara diye erteler. Bu da başka bir sebep. Sonradan çok zor geleceğini bile bile lades deriz. Ben de derim. İtiraf geldi. 😆

Belki de Türkiye yazılım ekosistemindeki en büyük problemlerden biri plansız iş yapmaktır. Proje yönetimi konusunda yerin dibine inmiş hatta magmaya ulaşmış vaziyetteyiz. Lavların arasında proje yürütüyoruz ateş çemberi hafif bir tabir olur. 🔥 Proje yöneticilerinin büyük çoğunluğu fikir sahipleridir bu memlekette. Kendi fikirlerini yönetmek isterler. Bu yüzden de işler yürümez. İşi profesyonel bir ele bırakmak nedense zor gelir. Eeee sonuç olarak iyi yönetilemeyen projelerde işler ertelenir.

Çok başka sebepler de var. Mesela arkadaşın her işi erteliyordur sen de ertelersin. Zaten hayatının her alanında her işi erteliyorsundur sende kronik hastalıktır. O zaman zaten ertelersin. Sağlıklı bir yaşam tarzın yoktur, uykusuz iş yaparsın yetiştiremezsin, ertelersin. Yorgun olursun ertelersin. Falan feşmekan.

Yazılımcının çok bilgili olması bu işi iyi yapması için yetmez. Bu iş konsantrasyon işi, hayatın da düzenli olmalı. Benim gibi gecenin bir yarısı makale yazıp sabah çalışmaya çalışmamalısın mesela. Düzenli uyku, düzenli beslenme. Bunlar birer iyi örnek değil. Olması gereken bu. Should değil yani must.

Photo by Kaung Myat Min on Unsplash

Kendimden örneğe geçeyim. Bir projedeyiz. Projede resim yükleme işi çok fazla. Son kullanıcılar bol bol resim yüklüyor. Bizim de bu resimleri boyutlandırmamız lazım. Boyutlandırmayı da asenkron yapmamız lazım. Yani adam yükleme yapınca cevap almak için boyutlandırma bitsin diye beklememeli. Yapılacak iş belli. Resim yükleme işi olunca onu bi yere kayıt et, boyutlandırma işini kuyruğa yaz, kullanıcıya tamam kardeş senin resim yüklendi de. Sonra kuyruktan ne yapıyorsan yap.

Tabi projenin başında üşendik kuyruk muyruk işlerini sonradan yaparız dedik erteledik. O ara kullanıcı resmi yüklediği anda boyutlandırdık. Cevap süresi uzadıkça şikayetler yağdı. Dedik napacaz, boyutlandırmayalım şimdilik olduğu gibi kayıt edelim nasıl olsa disk alanı problemimiz yok dedik, kuyruk muyruk işlerini sonra yaparız dedik ve bir daha erteledik.

İnsaf be, 100 MB fotoğraf mı yüklenir raw mı yükledin be insan. Son kullanıcılar böyle şeyler yaptılar. Şaka maka disk alanı doldu 1 haftada. Tabi bir de o resimleri gösterirken de felaketler yaşandı. 💥 Sonra dedik bu kuyruğu tutalım yoksa büyük patlayacağız. Tuttuk. Projede tabi ertelenen başka işler de vardı bu resim yükleme boyutlandırma işini bir servise çevirmemiştik, resim yüklenen bir çok yer vardı hepsi kendi kendine çalışıyordu birbirinden bağımsız. Bu resimler nerelerde yükleniyor onları bulduk, uyarladık, geçmiş resimleri boyutladırdık falan derken projeyi ağlattık. Böyle de berbat bir amatörlüğümüz var. Biz de yaptık yani böyle şeyler.

Çözüm nedir peki?

Ertelemekten vazgeçmek kolay iş değildir. Bu işe hayatının en mikro düzeydeki parçalarından başlamasın. Mesela çok işin olduğu için akşam yemeğini ertelememelisin. Çocuğunla oynamayı ertelememelisin. Sabah alarmı ertelememelisin. Kitap okumayı ertelememelisin. Test yazmayı ertelememelisin. Bir günde kurtulmak mümkün değil, öyle bir huy değil gerçekten.

O yüzden yapılacak ilk iş alarmı ertelememek. İpin ucunu tuttun mu gerisi gelir. Umarım. 😆 Ertelemeyeceksin işte. Başka bir çözümü yok.

Bu yazı da bu kadar. Sorularınızı hello@alihankoc.com.tr eposta adresimden iletebilirsiniz. Herkese iyi günler. 💌

--

--