Merhaba arkadaşlar bu yazımda bir çok yazılımcının kafasını kurcaladığına emin olduğum bir konu ; mükemmeliyetcilik konusunda bir kaç satır karalamak istiyorum.
Öncelikle mükemmel olmak ne demektir : Kusursuz olmak , her şeyin ile ideal kişi olmak , en çok para kazanan insan olmak , en iyi kariyere sahip insan olmak , herşeyi düzenli olan bir insan olmak , zamanı en etkili kullanabilen kişi olmak. .
Esasında mükemmel olmak göreceli bir kavramdır ve kişiden kişiye değişir. Ancak bana sorarsanız mükemmel olmak diye bir şey insan için bana pek de inandırıcı gelmiyor. Bir özelliği iyi olan birisinin diğer özelliği kötü olabiliyor.
Bu bir telefon , bilgisayar alırken de böyle değilmi dir. İstemiş olduğunuz özelliklerden mutlaka bir tanesi eksiktir. Ya şarjı az gider , ya kamerası kötüdür vs.vs.
Bu yazılımcı içinde böyle her konuda mükemmel olacak uzman olacak diye bir şeyden bahsetmemiz pek de olası değil. Mutlaka belli konularda eksiklerimiz olacaktır. C# biliyorsunuzdur çok iyi ancak Java bilmiyorsunuzdur. Oracle biliyorsunuzdur sql bilmiyorsunuzdur.ASP.NET biliyorsunuzdur Silverlight bilmiyorsunuzdur. Veya şöyle diyelim bir problem çıktığında yazılımcı kısa bir sürede problemi çözüyor ancak en iyi çözüm yolu ile çözemiyor.
Kendimden örnek verecek olursam google'a çok defalar yazılımda mükemmel olmaklı alakalı sorular sordum. Forumlarda aradım ama Cem Yılmazın da dediği gibi Hepsi İçimizde :) Akışına bırakıp , çok okuyarak , çok projede bulunarak gerekli tecrübeleri elde edebileceğimi biliyorum ancak hiç bir zaman tatmin olmayacağımdan da eminim
Bazılarına göre en iyi çözüm yolu en hızlı olan çözüm yoludur. Ancak bu çözüm ilerde geliştirilmeyecekse. Geliştirilip değiştirilecek bir kod parçası ise mutlaka değişimlere ve gelişimlere açık esnek yani en iyi çözümü uygulamak daha doğru olacaktır.
En iyi çözüm , en iyi tasarım da projeye , ortam şartlarına göre değişir zaten bu da sezgisel olarak ortaya çıkar. İlerde minimum refactoring yapmak ideal olanıdır.
Burada çok da nasıl en iyiyi buluruz konusunda detaylara inmeyeceğim. Ancak bulduğum birkaç linki sizinle paylaşmak istiyorum.
http://www.kodaman.org/yazi/daha-iyi-yazilim-gelistiricisi-olmak
http://www.serdardemir.net/daha-iyi-yazilim-gelistiricisi-olmak-icin-ipuclari-nedir.html
http://turkce.focusoncode.com/programlama-hastaliklari-i-mukemmeliyetci-kod-yazimi/
http://www.fussilet.com/mukemmeliyetcilik-sagliga-zararli-t20681.0.html
1-Kitap Okuyun
2-Listelere Üye Olun
3-Açık Kaynak Araçları Kullanmayı Öğrenin
4-Sürüm ve Konfigürasyon Yönetimi Konusunda Bilgilenin
5-Bir Bilene Sorun
6-Seminerlere Katılın
7-Yeni İnsanlarla Tanışın
8-Blog Yazın/Okuyun
9-Refactoring Nedir Öğrenin
10-İnsan İlişkilerini Sıcak Tutun
11-Değişime ve Yenilenmeye Açık Olun
12-Firma Kültürünü Öğrenin
13-Kişisel Bilgisayarınıza Yazılım Araçlarını Kurun
14-Açık Kaynak Projelere Katılın
15-Hayal Kurun
16-Kod Teftişi
Yazılım geliştirken sürekli daha iyiyi araştıran bulmaya çalışan birisi bu pratiği artık günlük hayatına da ister istemez adapte ediyor. Her konuda en iyi çözümü bulmaya çalışır halde buluveriyor kendisini. Her şeyde mükemmeli aramak gerçekten de insanın psikolojisini bozabilir burada ince bir çizgi var ve bu çizgiyi dengede tutmak gerekir. Sonuçta sağlık hepsinden önemli.