SlideShare une entreprise Scribd logo
1  sur  25
Verimli Yazılımcı 
Olabilmek 
Burak Selim Şenyurt 
Kıdemli Yazılım Danışmanı 
ING Bank - Yazılım Altyapı Ekibi 
http://www.buraksenyurt.com
Hedef Kitle 
Junior Developer <= SUNUM <= Consultant
Biz Yazılımcılar
Çoğu Zaman 
Böyleyiz
Bazen de böyle
Kimi zaman müşteri talepleri 
karşısında şaşkın
Kimiz Zaman Einstein
Aynı kulvarda sürekli yarışırız
Hep hayal ederiz
Ama gerçek 
dünyayı da 
iyi biliriz
Ama ailemiz bizi şöyle bilir 
• Her tür bilgisayar tamiri yapılır 
• Silinen bilgileriniz kurtarılır 
• Facebook hesabı açılır 
• Format atılır 
• Virüsleriniz temizlenir 
• Modeminiz takılır 
• Excel’ de Site Yönetimi Uygulaması 
hazırlanır
Peki nasıl verimli oluruz? 
Peki nasıl verimli oluruz?
Yazılımcı kendini 
rahat hissetmek ister
Ergonomi önemlidir! 
Ergonomi önemlidir!
Kulaklık 
yazılımcının 
en önemli 
eşyasıdır.
Enerji İçeceği Değil 
00-05 Arası
Doİnyain bımir Ödnoenmalnidıimr şarttır
Yalın Masa!
Yalın 
düşünebilmek 
avantajdır
Bazen zorlu şartlarda çalışırız
En zoru doğru kararı verebilmektir.
Rol Model
Söz Sizde
Burak Selim Şenyurt 
http://www.buraksenyurt.com 
Herkes Serbest

Contenu connexe

En vedette

Introduction to OpenBricks: an Embedded Linux Framework
Introduction to OpenBricks: an Embedded Linux FrameworkIntroduction to OpenBricks: an Embedded Linux Framework
Introduction to OpenBricks: an Embedded Linux FrameworkBenjamin Zores
 
ELC 2010 - GeeXboX Enna: Embedded Media Center
ELC 2010 - GeeXboX Enna: Embedded Media CenterELC 2010 - GeeXboX Enna: Embedded Media Center
ELC 2010 - GeeXboX Enna: Embedded Media CenterBenjamin Zores
 
Bir .Net Geliştiricisinin Ruby ile İmtihanı
Bir .Net Geliştiricisinin Ruby ile İmtihanıBir .Net Geliştiricisinin Ruby ile İmtihanı
Bir .Net Geliştiricisinin Ruby ile İmtihanıBurak Selim Şenyurt
 
CloudOpen 2014 - Extending Cloud Automation, When OpenStack Meets Ansible
CloudOpen 2014 - Extending Cloud Automation, When OpenStack Meets AnsibleCloudOpen 2014 - Extending Cloud Automation, When OpenStack Meets Ansible
CloudOpen 2014 - Extending Cloud Automation, When OpenStack Meets AnsibleBenjamin Zores
 
ABS 2014 - Android Kit Kat Internals
ABS 2014 - Android Kit Kat InternalsABS 2014 - Android Kit Kat Internals
ABS 2014 - Android Kit Kat InternalsBenjamin Zores
 
Linux Sürücü Geliştirme (Linux Device Driver Development)
Linux Sürücü Geliştirme (Linux Device Driver Development)Linux Sürücü Geliştirme (Linux Device Driver Development)
Linux Sürücü Geliştirme (Linux Device Driver Development)kyasar
 
Design Of A Usb Device Driver (Overview)
Design Of A Usb Device Driver (Overview)Design Of A Usb Device Driver (Overview)
Design Of A Usb Device Driver (Overview)allankliu
 

En vedette (20)

Introduction to OpenBricks: an Embedded Linux Framework
Introduction to OpenBricks: an Embedded Linux FrameworkIntroduction to OpenBricks: an Embedded Linux Framework
Introduction to OpenBricks: an Embedded Linux Framework
 
ELC 2010 - GeeXboX Enna: Embedded Media Center
ELC 2010 - GeeXboX Enna: Embedded Media CenterELC 2010 - GeeXboX Enna: Embedded Media Center
ELC 2010 - GeeXboX Enna: Embedded Media Center
 
Bir .Net Geliştiricisinin Ruby ile İmtihanı
Bir .Net Geliştiricisinin Ruby ile İmtihanıBir .Net Geliştiricisinin Ruby ile İmtihanı
Bir .Net Geliştiricisinin Ruby ile İmtihanı
 
CloudOpen 2014 - Extending Cloud Automation, When OpenStack Meets Ansible
CloudOpen 2014 - Extending Cloud Automation, When OpenStack Meets AnsibleCloudOpen 2014 - Extending Cloud Automation, When OpenStack Meets Ansible
CloudOpen 2014 - Extending Cloud Automation, When OpenStack Meets Ansible
 
Gizli Tehlike : AntiPatterns
Gizli Tehlike : AntiPatternsGizli Tehlike : AntiPatterns
Gizli Tehlike : AntiPatterns
 
ABS 2014 - Android Kit Kat Internals
ABS 2014 - Android Kit Kat InternalsABS 2014 - Android Kit Kat Internals
ABS 2014 - Android Kit Kat Internals
 
Linux Sürücü Geliştirme (Linux Device Driver Development)
Linux Sürücü Geliştirme (Linux Device Driver Development)Linux Sürücü Geliştirme (Linux Device Driver Development)
Linux Sürücü Geliştirme (Linux Device Driver Development)
 
Design Of A Usb Device Driver (Overview)
Design Of A Usb Device Driver (Overview)Design Of A Usb Device Driver (Overview)
Design Of A Usb Device Driver (Overview)
 
BusyBox for Embedded Linux
BusyBox for Embedded LinuxBusyBox for Embedded Linux
BusyBox for Embedded Linux
 
File systems for Embedded Linux
File systems for Embedded LinuxFile systems for Embedded Linux
File systems for Embedded Linux
 
Embedded Linux - Building toolchain
Embedded Linux - Building toolchainEmbedded Linux - Building toolchain
Embedded Linux - Building toolchain
 
Embedded Linux Kernel - Build your custom kernel
Embedded Linux Kernel - Build your custom kernelEmbedded Linux Kernel - Build your custom kernel
Embedded Linux Kernel - Build your custom kernel
 
Linux systems - Getting started with setting up and embedded platform
Linux systems - Getting started with setting up and embedded platformLinux systems - Getting started with setting up and embedded platform
Linux systems - Getting started with setting up and embedded platform
 
Embedded Android : System Development - Part III
Embedded Android : System Development - Part IIIEmbedded Android : System Development - Part III
Embedded Android : System Development - Part III
 
Embedded Android : System Development - Part IV
Embedded Android : System Development - Part IVEmbedded Android : System Development - Part IV
Embedded Android : System Development - Part IV
 
Data Structures & Algorithm design using C
Data Structures & Algorithm design using C Data Structures & Algorithm design using C
Data Structures & Algorithm design using C
 
Embedded Android : System Development - Part I
Embedded Android : System Development - Part IEmbedded Android : System Development - Part I
Embedded Android : System Development - Part I
 
Embedded C - Optimization techniques
Embedded C - Optimization techniquesEmbedded C - Optimization techniques
Embedded C - Optimization techniques
 
Embedded Linux on ARM
Embedded Linux on ARMEmbedded Linux on ARM
Embedded Linux on ARM
 
Embedded C
Embedded CEmbedded C
Embedded C
 

Plus de Burak Selim Şenyurt

Plus de Burak Selim Şenyurt (13)

Monolitik Uygulamalarda Teknik Borçlanma ile Mücadele (Teori)
Monolitik Uygulamalarda Teknik Borçlanma ile Mücadele (Teori)Monolitik Uygulamalarda Teknik Borçlanma ile Mücadele (Teori)
Monolitik Uygulamalarda Teknik Borçlanma ile Mücadele (Teori)
 
Beş Dakikalik Yolu Bir Saatte Gitmek - Bir AntiPattern Macerası
Beş Dakikalik Yolu Bir Saatte Gitmek - Bir AntiPattern MacerasıBeş Dakikalik Yolu Bir Saatte Gitmek - Bir AntiPattern Macerası
Beş Dakikalik Yolu Bir Saatte Gitmek - Bir AntiPattern Macerası
 
Monolitik Yapılarda Teknik Borçlardan Kurtulmak
Monolitik Yapılarda Teknik Borçlardan KurtulmakMonolitik Yapılarda Teknik Borçlardan Kurtulmak
Monolitik Yapılarda Teknik Borçlardan Kurtulmak
 
Bugün Yarınların için Ne Yapacaksın?
Bugün Yarınların için Ne Yapacaksın?Bugün Yarınların için Ne Yapacaksın?
Bugün Yarınların için Ne Yapacaksın?
 
Kaosu Körüklemek
Kaosu KörüklemekKaosu Körüklemek
Kaosu Körüklemek
 
Yazılımda Sağlam Adımlar Atmak
Yazılımda Sağlam Adımlar AtmakYazılımda Sağlam Adımlar Atmak
Yazılımda Sağlam Adımlar Atmak
 
Anti-Patterns
Anti-PatternsAnti-Patterns
Anti-Patterns
 
C# Akademi 2005
C# Akademi 2005C# Akademi 2005
C# Akademi 2005
 
Netron Techweek 2007 WCF
Netron Techweek 2007 WCFNetron Techweek 2007 WCF
Netron Techweek 2007 WCF
 
Yazilim Zirvesi 2008
Yazilim Zirvesi 2008Yazilim Zirvesi 2008
Yazilim Zirvesi 2008
 
C# 4.0 new features - innova
C# 4.0   new features - innovaC# 4.0   new features - innova
C# 4.0 new features - innova
 
Bankacılık ve SOA
Bankacılık ve SOABankacılık ve SOA
Bankacılık ve SOA
 
Trakya Üniversitesi Workshop
Trakya Üniversitesi WorkshopTrakya Üniversitesi Workshop
Trakya Üniversitesi Workshop
 

Finans Sektöründe Verimli Yazılımcı Olabilmek

Notes de l'éditeur

  1. Konu  : Verimli Yazılımcı Olabilmek İçerik : Yüksek tempoda çalışılan, iş baskısının yoğun olduğu ve hata toleransı sıfıra yakın bir dünya da, anlaşılması zor finansal enstrümanlarla boğuşan bir yazılımcı, nasıl daha verimli olabilir? Gelin yıllara dayanan gözlemlerimizi birlikte inceleyelim.
  2. İzleyeceğiniz sunumda Junior(İşe yeni başlayan geliştiriciden) seviyeden Consultant(Danışmana) kadar uzanan süreçteki izlenimler ela alınmaktadır. Bu izlenimler elde edilirken, yaşanan tecrübeler ve çevresel gözlemler göz önünde bulundurulmuştur. Teknik detaydan ziyade insan psikolojisi üzerine yoğunlaşılmış daha verimli olunması için gerekebilecek temel nitelikler sadece öneri olarak sunulmuştur.
  3. Burada anlatılanlar kanun hükmünde kararname değildir. Kendinize göre bir yol çizebilir buradaki bilgilerden yararlanarak kariyerinize yön verebilirsiniz.
  4. Biz yazılımcılar nasıl bireyleriz? Genel karakteristik özelliklerimiz nelerdir? Bilmek ister misiniz?
  5. Genellikle bir şeylere kızarız. Sinirliyizdir. Çok pozitif gözüksek bile…
  6. Bazen zor şartlarda çalışırız. Bu şartların baskısını outsource çalıştırıldığımız durumlarda çok daha fazla hissederiz. (Netron zamanında cam sehpa üzerinde çalıştığımız günleri, Citibank’a outsource olarak gittiğimiz zaman ki kesonsuz tahta masamızı olan örnek gösterebiliriz)
  7. Bazen müşterinin(ki bankalarda genelde işin sahibi olan iş birimidir bu kişiler) heyecanla anlattıkları karşısında afallar, şaşırırız. Nitekim ilgili isteği yazılımsal olarak nasıl gerçekleştirebileceğimiz konusunda en ufak bir fikrimiz yoktur. O an için kendimizi evrenin derinliklerine fırlatılmış bir uydu gibi yalnız hissederiz.
  8. Kimi zaman iş biriminden gelen talepleri Einstein gibi algılar ve Over Engineering(bir anti-pattern’ dir) yaparız. KISS(Keep it stupid simple), YAGNI(You Arent Gonna Need It) gibi ilkeleri dikkate almayız. Sonuçta mükemmel sistemi yaratmaya çalışırken asıl hedeften uzaklaşırız. Okuyun : The Pragmatic Programmer – Andrew Hunt, David Thomas, Addison-Wesley
  9. Sektör giderek büyümektedir. Ancak son yıllarda aynı kulvarda koşan ve benzer işleri gerçekleştiren bir çok yazılımcı vardır. Sadece Mühendislik dallarından değil başka branşlardan da bu alana intikal eden yazılımcılar mevcuttur. Bundan bir 20 yıl önce zor olan web sitesi geliştirmek artık çocuk oyuncağı haline gelmiştir. Fark yaratacak ürünlerde veya zorlu süreçlerde sürekli rekabet halindeyizdir. Hatta pek çok firma bu atıl iş gücünü daha kolay taramak «sadece ABC mühendisliği mezunu» bireyleri tercih etmektedir.
  10. Her yazılımcının hayalidir üstü açık bir araba, pilotluk kursuna gitmek, belki bir tekne, hatta kocaman bir teleskop…Özetle geniş bir hayal gücümüz vardır. Youtube’ dan izlediğimiz bir süper otomobil videosu bizi o aracın sahibiymişiz gibi sevindirebilir.
  11. Her ne kadar hayal dünyamız çok geniş olsa bile bir noktadan bir noktaya gitmenin en zahmetli yolunu gayet iyi biliriz.
  12. Genelde finans sektöründe çalışan yazılımcılar sıkı ve katı kuralların işlediği ortamlarda yaşar. Kimi zaman kıyafet ağır gelir, kimi zaman üst yönetim baskısı. İster outsource görevlendirelim ister inhouse çalışalım, işin içerisine finansal riski yüksek mevzuatlar girince yapılanların sorumluluğu da fazlasıyla yükselir. Kurumların değil bir dakika, bir saniyelik hata yapma yüksü yoktur(çalıştığınız bankanın ATM’ lerinin 1 gün süreyle müşterilerine hizmet veremediğini düşünün, ya da internet şubenizin yarım saat çalışmadığını) Stresin bol olduğu bir dünyadır finansal yazılım işleri. Anlayamadığımız iş kuralları bütününün, kağıt üzerinde dahi zor işletilen süreçlerin, yazılım ile işletilmeye çalışıldığı bir dünyadır. Kimi zaman kapı girişinde otomatik silahlı nöbetçilerin olduğu, kimi zaman basit bir Web Servisinin bin bir güvenlik politikasını uygulaması gerektiği ortamlardır. Rakipler sürekli hareket halindedir ve müşteri ihtiyaçları inanılmaz bir hızla değişmektedir. Buna ayak uydurmak ya da fark yaratacak hamleleri gerçekleştirmek zordur. Ancak iş birimleri genellikle bu hedefleri belirler ve yazılımcılar bu hedefleri istenen sürelerde gerçekleştirebilmek için bazen hafta sonlarını, gecelerini masa başında geçirirler. Mesaisi boldur anlayacağınız.
  13. Geliştirdiğimiz onca yazılım ürününe rağmen ailemizin sık sık, «bilgisayarım çok yavaşladı şuna bir format atsana», «elinde windows 8 var mı?», «Facebook’a da oyun oynayamıyorum?», «şu excel’ de Sayıları yazıya çevirip bastırmam lazım» gibi sorularına maruz kalırız?
  14. Sizlere sürekli olarak kitap okumanızı, sık sık blogları takip etmenizi, bol bol kod yazmanızı ve sabahtan akşama kadar haldır haldır çalışmanızı, sosyal hayatınızı bir kenara bırakmanızı veya büyük bir disiplin altına girmeniz gerektiğini söylemeyeceğim. Sadece biz geliştiriciler için değil, pek çok meslek grubu için de söz konusu olabilecek tavsiyelerde bulunacağım.
  15. Maalesef pek çok iş yeri katı kıyafet kuralları uygulamaktadır. Bir yazılımcının tam gün takım elbise ile düğüne gider gibi oturmasına hiç anlam veremem. Müşteri ile birebir kontak halinde olmayan yazılımcıların bu şekilde sıkılması çok anlamsızdır. Nitekim son yıllarda bizim gibi kurumlar kıyafet esnekliği konusunda hoş görülü davranmaktadır. Katı kurallar yerine aşırıya kaçmayacak şekilde rahatlık söz konusudur. Tüm bunlar geliştirici daha rahat ve öz güvenli çalışabilsin diyedir.
  16. Günün uzun bir bölümünü sandalye de geçiririz. Rahat bir koltuk verimliliğimizi doğrudan olumlu yönde etkiler. Yine de pek çok profesyonel şirket(örneğin biz) masa başında uzun süre kalan çalışanlar için sağlıklarını korumak adına bildiriler yayınlarlar. Masa başında yapabilecekleri egzersizlerden bahseder bunları sık sık hatılatırlar.
  17. Yazılımcının olmazsa olmazlarındandır kulaklık. İş yerinde, yolda…Her zaman müzik dinlemek için kullanılmaz. Kimi zaman bir tekonolji sohbeti veya sesli kitap dinlenir.
  18. İnsan bedeninin sabah erken vakitte kalktığında kendisini zinde hissetmesinin birkaç kuralı vardır. Bunlardan birisi de bünyenin 00 ile 05 saatleri arasında mutlaka uyku halinde olması gerekliliğidir.(Burada uyku halinden kasıt 00da yatağa girip 01 veya 02 gibi uykuya dalmak değildir. Gerçekten 00 ile 05 arasında deliksiz uykuda olmaktır)
  19. Hızlı bir bilgisayar olmasının öneminden ama yavaş ve eski bir bilgisayar bulundurmanın da yararından bahsedelim. Örnek hikayemizde ise Visual Studio ortamında servisi çalıştırırken aldığımız <%5 memory hatasını anlatalım.
  20. Herkesin kendine göre bir masa düzeni vardır. Masanın yalın olması iyidir. Masa üzerinde göz yoracak materyaller olmaması, monitorün göze olan uzaklığı ve yüksekliğinin iyi ayarlanması, kabloların çok fazla ortalarda görünmemesi vb hem sağlık hem de verimlilik açısından önemlidir. Kimi şirketler ergonomi notkasında bu kullanımlara ilişkin bildirimleri çalışanları ile paylaşmaktadır.
  21. KISS ve YAGNI gibi ilkeleri benimsemek, bir fotoğrafçı gibi asıl konuya odaklanıp çevredeki gereksiz unsurları ortamdan uzaklaştırabilmek…Kısacası yalın düşünebilmek önemlidir. Yalın düşünce tarzı öğrenilebilecek bir felsefedir ve yazılım dünyasında önemli bir yere sahiptir.
  22. Özellikle yaz dönemlerinde bina içinde kazak gerekebilir. (Çalışma arkadaşımızın sıcakla olan imtihanı anlatılır)
  23. En zor şey karar vermektir. Doğru kararı verebilmenin aslında bilinen pek çok bilimsel yolu vardır. Profesyonel olarak araştırmak gerekir.
  24. Birey olarak örnek alabileceğimiz özellikle yaptıkları çalışmalar ile takip edebileceğimiz kişiler vardır. Bu kişilerin ille de ünlü olması gerekmez. Her ne kadar rol modeller daha çok ergenlik dönemi için konuşulsada aslında kariyer planlaması açısındanda önemlidir. 3 Rol Model bulmak önemlidir. Kendimizden yaşça büyük, bizimle akran ve bizden yaşça küçük birisi.
  25. Son söz siz de. Kafada oluşan soru işaretleri mutlaka vardır.