Mühendisin İlk Projesinin Hikayesi

Şirkette ilk çalışmaya başladığım andan beri ilk projemi bitireceğim anın keyifli heyecanını düşünüyorum.
Beni bu kadar heyecanlandıran şeyin aslında ne olduğunu düşündüm önce. Sonra sizlerle bu yolculuğu hikayeleştirerek paylaşmayı istedim.
Öncelikle neden böyle bir heyecan içinde olduğumdan başlayacağım;

  • İlk kez bir proje, okulda ödev amacıyla yazılmış bir  proje olmayacaktı,
  • İlk kez bir çok insanın çalıştığı bir projenin sadece bir bölümünde görevlendirilmek yerine sıfırdan her aşamasında, adım adım bulunduğum bir proje olacaktı.
  • İlk kez bir şirkette makine öğrenmesinin, veri bilim metriklerinlerinin, modellerin kullanılacağı bir projede yer alacaktım.
  • İlk kez solumak istediğim atmosferde, “data scientist” ve “yazılım mühendisliği” arasındaki o bulanık, birbirine karışmış ve keyifli alanda varlık gösterecektim.
  • İlk kez gerçekten ekip çalışması deneyimleyecek,
  • İlk kez bir şirkette “Mühendis” sıfatımla bir projede çalışacaktım.

Bunlar, yıllarca eğitimini aldığım, emek verdiğim mesleğimin bana armağan edeceği güzel hislerdi.
Bu yüzdendir ki, bildiğim, bilmediğim herşeyi ortaya döküp, çalıştım.

Daha doğrusu çalıştık.
Ekip olarak.
Evet burada önce ekip olmayı öğrendim.
Ekip ne idi?
Neden bir ekibe ihtiyaç vardı?
Birlik, kuvveti, motivasyonu, verimliliği ne kadar arttırırdı?
Tüm bunları deneyimledim önce.

Proje, ben ve benimle birlikte staj yapıp sonrasında birlikte işe girdiğimiz diğer arkadaşım Ömer’e atandı.
Ekibimizde bir Veri bilimcisi(Data Scientist) ve bir Veri Mühendisi (Data Engineer)vardı.
Biz iki yeni mezundan daha deneyimli, daha tecrübeli.

Projeyi ayrıntılı anlatamam şirket politikaları gereğince ama yakın zamanda bir konferansta sunmayı planlıyoruz, belki o zaman detayını paylaşabilirim. Şimdi kapsamında kısaca bahsedeyim;

Fabrikaya yerleştirilen bazı sensör verilerinin analizi ve bu analiz sonucu sensörlerdeki anormal veri durumlarının önceden tahmini, anlık tespiti ve görselleştirilmesi  adımlarını kapsayan bir proje.

İlgilenenlerin de bildiği gibi bu tip projelerde önce veriyi tanımamız, hangi verilere sahip olduğumuzu görmemiz gerekiyordu. Sensörler biz işe girmeden önce takılmıştı ve ilk aşama olarak bu verileri depolamak için NoSQL bir veritabanı kullanılıyordu.

Ancak ekipçe farkındaydık ki, giderek artan verilerin için ;
Veri depolamada kullanılan bu yaklaşım günümüz dünyası için yetersizdi. Bunun  için dağıtık dosya sistemlerinden birinin kullanılması kararı verildi. Hangi sistem için alt yapı oluşturulabileceği uzun uzun konuşuldu, hesaplandı.

Bu aşamada ben de tezimde kullandığım teknolojilerin alt yapısından ve kullanılabilirliğinden bahsettim, detaylarını ekiple paylaştım.
Sunumlar hazırladım, şirketteki sisteme hangi alt yapının kurulmasının uygun olduğunu tartıştık.

Herkes bildiğini, araştırma ile destekleyerek ve fikriyle harmanlayarak ortaya koydu.
Daha sonra belli kararlarlar doğruldusunda işlemlere başlandı. Veriler, veri mühendisi pozisyonunda çalışan arkadaşlar sayesinde yeni sisteme aktarıldı. (O aşamayı da gözlemleyerek tecrübe ettim)
O esnada ben, ekip arkadaşım Ömer ve veri bilimcimiz birlikte, elimizdeki sensör datası örneği ile problemimize nasıl yaklaşacağımızı araştırıyorduk.

“Amacımız doğrultusunda elimizdeki verileri nasıl kullanabiliriz?”

sorusunun yanıtı için, bizim projemize yaklaşım olarak benzer olduğunu düşündüğümüz onlarca makale okuduk. (Makalelerin hepsi İngilizce idi. Bu yüzden dilin önemini bir kere daha belirtmek isterim.)
O projelerde kullanılan yaklaşımların, bizim verilerimize uyarlanabilirliğini tartıştık.

Okuduğumuz yöntemlere ilave yöntemler de ekleyerek denemeler yaptık.

Bir kere…
İki kere…
Üç kere…
Dört kere…

***

Amacımıza ulaşana kadar bu döngüyü bir süre tekrarladık.
Çünkü veri analizi, deneysel bir süreçti.
Denedik.
Sabrettik.
Ve sonunda bir gün uygun yöntemi keşfettik.
Okuduğumuz makalelerin hiç birine benzemiyordu oysa bulduğumuz çözüm yöntemi.
Ancak bunun için üzülmedik.

Çünkü bizi doğru yönteme götüren şey; sadece o an değil, tüm süreçti.

Bilgimiz, eforumuz, zamanımız, ekip içi yaklaşımımız, sabrımız pekişmişti tüm bu süreçte.
Sonra başladık bulduğumuz yöntemin detayların keşfetmeye.
Satır satır irdeledik.
Nerede, neyi, nasıl yapıyoruz inceledik.
Sonra akan (real-time) sensör verilerini, bulduğumuz yönteme uygun biçime getirdik.

Bu arada yeni teknolojiler de kullandık.
Kullanmak istediğimiz teknolojiler hakkında bilgili olan hocalardan birer ikişer günlük eğitimler de aldık.

Sonrasında iş tamamen ben ve Ömer’deydi.
Dedim ya bu iş aslında veri bilimi ve yazılım mühendisliğinin arasında bulanık ama çekici bir yer diye. İşte o yerde iki yazılım mühendisliği mezunu arkadaş, daha önce hiç kullanmadığımız bir framework seçtik, projemizin görsel kısmını yazmak için;
DJANGO.

Django bir Python web framework’ü. Bizim uygulamamızın da bir web ortamında görselleştirilmesi isteniyordu.

Neden Django seçtiniz diye sorarsanız, hem öğrenmek istedik hem de veri biliminde bir çok işi Python kullanarak yapıyoruz, görselimizin de dili Python olsun istedik.
Sıvadık kolları.
Önce projenin gerçek kullanıcıları ile bir araya geldik.
Neler istediklerini, neden istediklerini sorduk.
Onların taleplerini dinledik,
nasıl bir ekran ile karşılaşmak istediklerini sorduk,
nasıl en kolay bu sistemi kullanabileceklerini anlattık.
kullanıcının taleplerinin sınırlarını aşmadan, doğru sorularla onları doğru yaklaşıma yönlendirdik.

Bir yandan da Django dersleri izledik internetten. Ufak çaplı deneme uygulamaları geliştirdik.
Bu sayede elimiz alışıyor, yapıya ısınıyorduk.
Sonrasında projenin tasarım aşamasına başladık.

Ne sunuyoruz,
Nasıl sunmamız bekleniyor,
Peki biz bunun için ne yapacağız?
Önce ekranlarda karar verildi.
Bir ekran için, harita tasarımı gerekiyordu.
Tasarımcımız ile görüşmeler, çalışmalar yaptık.
Haritanın tasarımıyla, ikonların tasarımıyla bizzat ilgilendim.
Sonra ekip arkadaşım ile modülleri paylaştık.
Geliştirdik,
Geliştirdik,
Geliştirdik…

Bu esnada yıpranmadım dersem, size epey düzmece bir hikaye anlatıyor olduğumu düşünmelisiniz. Çünkü bu aşamaların her birinde ayrı bir stres seviyesi oluyor.

Yapamayacağımızı düşündüğümüz çok kısım oldu. -Uğraştık.
Teslim tarihine yetişmez dediğimiz çok yer oldu. -Mesai yaptık.
Yazdığımız kod zaman zaman çalışmadı, ekran tasarımlarımız sağa sola kaydı. -Topladık.
Bu süreçte planlanmayan bir çok şeyi eklemek/değiştirmek durumunda kaldık.

Öyle, ya da böyle bir gün aniden bir telefonla “acil projenin ilk halini canlıya almamız gerekiyor” denildi.
Bu acil ofise dönüp mesai yapmamız demekti.
Sizde işler nasıl ilerliyor bilmiyorum ama burada herşeyin bir planı olduğu kadar plansız olabilecek şeylere de açık olmanız gerekiyor.

Hatta o gün sizler de anlık durumlara alışın diye Instagram’da hikaye paylaşmıştım. Bu gibi acil durumlar bu işin bir parçası. Ve ben bunun bilincindeydim.
Hiç hayıflanmadan ofise geri döndük.
Ben epey heyecanlıydım.
Daha önce ne Ömer ne de ben, bir projeyi “canlıya” almamıştık yani kullanılabilir duruma getirmemiştik.

Yine bir video açtık.
Tüm adımları takip ettik.
Aralarda hatalar da aldık.
Acelemiz de vardı.
Aslında projede tam da bitti sayılmazdı ama ilk sürüm için yeterli düzeyde olması gerektiği gibi çalışıyordu.
Kurcaladık, epeyce kurcaladık,
Eski çalıştığım yerde sevdiğim bir abinin bir lafı vardı;

“Seni bir kuyuya atacaklar, oradan çırpına çırpına çıkmaya çalışacaksın, çıktığında bu işi öğrenmiş olacaksın”

O an kendimi o kuyuda hissettim.
Endişe, telaş ve mutluluk karışımı bir hissin içinde gibi.
Doğum yapan eşini kapıda bekleyen bir erkek gibi.
Köpek korkusunun üzerine giden kadının, bir köpeği sevmesindeki gibi bir his.
Tüm uğraşlar sonucunda,
İlk projemiz hayata geçti.

Bir dahaki projede aynı heyecan ve keyfi alır mıyım bilmiyorum. Ama defterime proje ile ilgili “yapılacaklar listesi” yazmıştım.
O listenin her maddenin karşısında bir tik gördüğümdeki mutluluğumu tarif edemem.

Fakat fotoğrafını çekebilirdim!

Çektim. 🙂

Hikayeme ortak olduğunuz için çok teşekkür ederim. 
Sizler de benimle bu şekilde hislerinizi paylaşırsanız mutlu olurum.

Sevgiler…

“Mühendisin İlk Projesinin Hikayesi” için 5 cevap

  1. İlk projeni tebrik ederim, umarım diğer çalışmalarında da başarılı olursun. Projenin sunumu olduktan sonra daha detaylı bir inceleme blogunu bekliyor olacağız, içeriğini merak ettim. Ayrıca Django’yu nereden öğrendin?

    İyi günler…

  2. Güzel bir yazı olmuş. 🙂 Bu projenin toplam süresi ne kadar sürdü acaba? Bir android geliştiricisi olarak sırf merakımdan soruyorum.

    1. Merhaba Mustafa,

      Projenin bu hale gelmesinin mazisi daha uzun(veri depolamak için kurulacak alt yapı vs.) ancak iyileşmesi ve yayınlanması yaklaşık 6 ay sürdü ve hala destek vermeye devam ediyoruz.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir