- 6 Şubat 2021
- Yayınlayan: Erkan Sarıkaya
- Kategori: AGILE
Mesaj 1 : Her zaman daha iyisi vardır.
Mesaj 2 : Eklediğin her bir satır kod israftır.
Mesaj 3 : Amaç, hedef çok önemli ve olmalıdır ama yolun sonu da değildir, o bir yeni referanstır. Odaklanmayı sağlar, yolda tutar.
6-7 ay önce Pandemi sürecinde, hackerrank’de 30 Days Challenge yolculuğuna çıktım ve tamamladım.
Problemleri anladıktan sonra çözüm üretmeye çalışıyorsun. İçlerinden bir tane problem örneğini aşağıda bulabilirsin.
1. FAILED & FIX
Kod yazdıkça denemeler yapıyorum, compile ettikçe hatalarımı anlayıp düzeltiyorum.
Motto ‘yu hatırladınız : “test et, hata yap, düzelt, tekrar“
XP (Extreme Programming) pratiklerinden biri de budur : TDD (Test Driven Development)
2. WORKING BUT …
Ah şu “ama” lar olmasa 🙂
Denemeler sonunda “Çalışan Yazılım/Çözüm” bulundu. Süper çok sevindim.
Ama…
İstenen sonucu veriyordu ama müşteri memnun değildi 😉 çünkü performansı kötüydü. 32 satırlık kod timeout alıyordu.
Kodu daha performanslı nasıl yazarım derken 28 satırlı bir halini oluşturdum ama yine timeout. 4 satır 4 satırdır. 🙂
Çünkü eklenen her bir satır israftır.
3. Done, Success
Sonra biraz araştırdım, forumları okudum, çözümler gördüm, ve anladım.
Sonuç : 13 satırla en iyi performanslı hali çıkmıştı.
Bu son halini görmesem, bulamasam hackerrank’e yazacaktım. Compiler hatalı diye 🙂
Evet, daha iyisi olana kadar en iyisi Agile Manifestonun 2. değerinde belirtildiği gibi elinizdeki “çalışan yazılım/çözümler“
Daha iyisi yoktur heralde demeyin. İleride çözüm bir satıra da düşebilir 😉
“return Math.maximumSum(sumArray, m);“
Buraya kadar bir yerlerde “Çalışan yazılıma dokunma” demiş olabilirsiniz. Bu, geçmişte yaşadığımız acı tecrübelerin, hata yapma korkumuzun ve güvensizliğin sonuçları olabilir mi acaba?
4. Keep GOING
Önemli olan şu: Kendini, potansiyelini farket, iyi bir yolculuğa çık, keşfet ve sürekli öğren ve geliş.
Kalp attığı müddetçe döngüsel olarak böyle devam eder, etmeli.
Lean, Kanban ve Agile yaklaşımının, Çevik Zihniyetin ve diğer öğretilerin özünde yatan da budur : “Döngüler” ve “Süreklilik“.
Yani amaç sürekli yolda olmaktır. Yolda öğrenmek, sürekli gelişmek, ara hedefleri bitirmek (Done) ve böylece verimsizlikleri ortadan kaldırmaktır.
Cepler doldukça, yetkinlik artar ve artık karmaşık problemlere çözüm bulmak kolaylaşır, hemen denemeye başlarsın, oyun oynar gibi eğlenceli hale gelir. Çözecek problem ararsın.
Bazıları buna tecrübe der, uzman der, master der, ünvan verilir, rütbe takılır. Sonra ünvanlar yetmez yenileri bulunur; expert, senior expert, principal, senior principal 😉 Sonra tek tek bu ünvanların rol ve sorumlulukları talep edilir, bir kaç kereliğine ortalığa zorla çıkarılır. 😉
Hepimiz biliyoruz ki, özünde ünvanların hiç bir önemi yoktur.
Sen varsındır. Havalı olmasına gerek var mı?
“Developer” : “Geliştiren” ve hep “Amatör“
Erkan sana söylüyorum? 🙂 Ne dersin?