
Konuklar: Ahmet Çınar, Betül Ahat
85. bölümümüzde konuğumuz DS-Logictics ekibi oldu. Ekip yapısını, projelerini, teknoloji stack seçimlerini ve çok daha fazlasını konuştuk! Trendyol Talks'da Trendyol'daki kültürümüzü, kültürümüzden beslenen iş yapış biçimlerimizi ve ritüellerimizi konuşuyoruz. Trendyol Talks podcast kanalımızı takip etmeyi unutmayın!
Transkript
Selam ekip, ben Collection Favors ekibinden Kübra.
Ben Storefront Web Search ekibinden Cengiz.
Teknoloji ekiplerini tanıdığımız ve süreçler, teknolojiler gibi konuları konuştuğumuz Selam Ekip Podcast serisinin 85.
bölümünde DS Logistics ekibiyle birlikteyiz.
Bu ekibi tanıyıp ekip yapısı, kullanılan teknolojiler, pratikler gibi konuları konuşacağız beraber.
Hoş geldiniz öncelikle.
Hoş bulduk. Kendinizden bahsedebilir misiniz?
Kısaca tanıtabilir misiniz kendinize?
Ben başlayayım.
Ahmet, ben yaklaşık 7 senedir Trendyol'dayım.
Trendyol lojistik ekibinde çalışıyorum.
Lojistikle kastımız aslında Trendyol'un operasyonel sahalara hizmet verdiği bir tribe gibi düşünebiliriz.
Hem fulfillment ekiplerine hem orderla alakalı olan ekiplere hem potansiyel olarak text delivery gibi ekiplere çalışma alanımız var.
Endüstri mühendisiyim.
Bu alanda doktora yaptım.
Arada bir kaçak İstanbul hukuk eğitimim var diyeyim.
Ben sözü Betül'e devredeyim.
Selamlar. Betül ben de.
Ben de endüstri mühendisliği mezunuyum.
Yaklaşık iki yıldır Trendyol'dayım.
Ben de Data Science Logistics ekibinde Ahmetlilerle beraber çalışıyorum.
Tekrar hoş geldiniz. Bugün belli ki diğer bölümlerden bir tık daha farklı olacak bir bölümle karşı karşıyayız.
Bayağıdır aslında böyle...
İçi dolu dolu.
Yani her bölümümüzün içi dolu dolu.
Fakat şimdi doktora dendi, işte bugün bahsedeceğimiz konularda birazcık daha böyle advanced konular.
Bir önceki bölümümüz de öyleydi bu arada.
Bu bölümde de dolu dolu bir bölümle her bölümde olduğu gibi beraberiz.
Hoş geldiniz tekrardan. Şimdi ben şeyle başlamak istiyorum.
DS Logistics Tribe'ın radyomundaki sorumluluk alanları tam nelerdir?
DS derken bu arada Data Science olarak.
bahsediyoruz değil mi? Evet.
Data Science ekipleri genelde Trendyol'da Data Science'ın tribe'ları dediğimiz aslında gruplar biraz business ekiplerinin çalışma alanlarına göre konumlandırılmış
durumda. Yani Data Science'ın içerisinde işte bir listing tribe var, recommendation tribe var.
İşte yani bir search'e geldiği zaman ne yapılıyor, hangi ürünü tavsiye edeyim gibi.
İşte seller tribe var, core commerce tribe var gibi düşünebiliriz.
Biz de aslında daha çok sipariş verildikten sonraki dünyanın içerisinde olan logistik tribe'yiz.
Biraz ismimiz de teknolojinin de aslında operasyona bakan, bütün operasyona bakan ekibi de Trendyol teknolojide logistik diye geçiyor.
Biz de böyle bir eş kademelenme gibi aslında varız.
Bu ne demek? Yani logistik, Trendyol'daki logistik ekibi.
TECS ekiplerine hem delivery ekiplerine hem de bütün depolardan, fulfillment centerlardan sorumlu olan ekiplere hizmet veren, işte burada data science pratiklerini ayakta tutmaya çalışan, depo içi süreçleri optimize eden, replenishment
gibi, uluslararası taşıdığımız şeylerin desileri gibi bütün böyle end-to-end süreçleri yöneten bir tribe gibi düşünebiliriz.
Biz buradaki şeylerde işte süreçleri iyileştirmek, costları, maliyetleri minimize etmek, daha...
efektif yapılar tasarlamak, işte prediction'lar yapmak, optimizasyon algoritmaları tasarlamak gibi hem teknoloji ekipleriyle hem de iş birimleriyle koordineli çalışan bir grubuz diyebilirim.
Ahmet, anlattıklarından çok yoğun bir ekip olduğunu zannıyorum.
O sebeple şeye soracağım, ekip dağılımınız nasıl?
Yani kaç kişi var bu ekipte ve nasıl ilerliyor?
Şu anda 6 kişiyiz ama bu hafta bir arkadaşımız daha aramıza katılacak.
Toplamda 7 kişi olacağız. Bir de sprint planlarında bize destek olan bir product manager'ımız var.
Süper aslında baktığımız zaman kompakt bir ekip yine.
Trendum genelinde zaten birçok ekip böyle 7-8 kişilik ekip var.
Böyle 10 kişi yaşayan ekip çok fazla duymamıştık.
Eskiden mesela bizim client ekipleri birazcık böyle...
Kalabalık ekiplerdi işte 12-13 kişilik falan ekiplerdi.
Artık yavaş yavaş duyduğum her ekip işte 8 kişilik, 7 kişilik falan ekipler oluyor.
Böyle kompakt ekipler olması aslında hem daha yönetilebilir hem işte iş süreçleri açısından daha iyi yönetilebilir.
Hem de bence takım dinamikleri açısından da güzel bir pratik oluyor.
Çalışma sürecini de sistemlerini de direkt olarak etkileyen bir durum bence.
Burada peki sizin çalışma sisteminiz nasıl?
Sprint koşuyor musunuz?
Nasıl bir roadmap çıkarıyorsunuz?
Burada neler yapıyorsunuz? Tüm projelerimizde aslında payer olarak çalışıyoruz.
İki kişinin bir tanesi daha projenin sahibi, asıl geliştirmeyi yapan kişi gibi düşünebiliriz.
Diğeri de ona destek olan, yapılanları gözden geçirecek, geliştirmeye doğrudan katkısı olmasa bile fikir olarak destek verecek kişi şeklinde çalışıyoruz.
Bazen tabii bu iki kişi aynı anda aktif olarak geliştirme de yapabiliyor.
Direkt peer coding yaptığımız yerler de olabiliyor.
Genel çalışma şekli olarak da haftalık sprintler koşuyoruz.
Haftalık sprint planlama toplantılarımız oluyor.
Burada hem işlerin önceliklerine göre hem eforuna göre o hafta yapacağımız işleri ekip olarak birlikte karar veriyoruz.
Planlamanın dışında her günün başında daily toplantılarımız oluyor.
Burada bir önceki gün neler yapmıştık.
O gün ne yapmayı planlıyoruz, bunları konuşuyoruz.
Bu sayede ekipteki herkes diğer kişilerin de yaptığı işlerden genel ilerleyiş hakkında bilgi sahibi olmuş oluyor.
Eğer bir sorun yaşadıysak veya daha detaylı bakalım dediğimiz yerler olursa da zaten gün içerisinde tekrar toplanıyoruz.
Bir de böyle haftalık bir brainstorming saatimiz var.
Burada da biraz böyle...
üzerine beraber kafa yoralım dediğimiz, işte beraber oturup bakalım veya uzun vadede neler yapabiliriz gibi düşündüğümüz konuları tartıştığımız, böyle fikirlerimizi ortaya döktüğümüz bir saatimiz oluyor.
Ben de biraz şeyden bahsedeyim.
Tribe'ın roadmap'ini nasıl belirliyoruz, nasıl projelerle çalışıyoruz, işte quarter'lı veya yearly hedeflerimiz nelerdir gibi.
Şimdi Data Science ekibi teknolojinin bir parçası olduğu için teknolojiyle uyumlu bir...
felsefesi var ama bir taraftan da biz business ekipleriyle çok iç içe yaşıyoruz.
Bu iç içe yaşamaklığının getirdiği bazı işte business problemini çözme gibi bir hedefimiz var.
İşte genelde böyle teknoloji süreçlerine bakarsak business ekiplerinin bir isteği oluyor.
Neyin yapıldığı definition of done dediğimiz şey çok net oluyor.
İşte bunu yapmanı istiyorum. Şunu şuradan şuraya götürmeni istiyorum.
Bizim genelde problemlerimizde biraz algoritmik ondan sonra işte süreçlerin iyileştirilmesi, bir çözümün daha kaliteli, daha iyi bir noktaya gitmesi olduğu için aslında biraz böyle muğlak bir taraf var.
Dolayısıyla aslında bizim roadmap'imiz bir taraftan business'la ilişkili olan bir roadmap, bir taraftan da data science olarak bizim kendi içimizde yaptığımız bir roadmap oluyor.
Böyle iki taraflı bir şey gibi düşünebiliriz.
Bunlar nasıl ortaya çıkıyor?
İşte business'ın diyelim ki önümüzdeki dönem uluslararası bir golf bölgesine veya...
Euro bölgeye bir replenishment konusu var.
İşte bir depo açacağız, o depodan buralara ürün besleyeceğiz gibi bir temel tartışma var.
Business'ın bir isteği bu. Dolayısıyla business'den bize böyle bir konu geliyor.
Böyle bir replenishment'ın işte forecast'inden, replenishment kararlarından, sürecin tamamının yönetilmesinden nasıl ilerleyebiliriz gibi.
Bizim roadmap'lerimizin bir kısmı business'ın bu istekleriyle geliyor.
Bir kısmı da bizim...
Kendi yapmak istediğimiz işler veya hala hazırda mevcut sistemler içerisinde entegre olan algoritmalarımızın daha da iyileştirilmesi şeklinde ilerleyebiliriz.
Yani Data Science'ın böyle sürekli bir iterasyon yapma, belli ki performans metriklerini daima iyileştirme gibi bütün Data Science'ın bizim de aynı şekilde bir hedefi var.
Bir de bizim ayrıca böyle takımımızda şöyle bir hedefimiz var.
İşte algoritmalarımız var.
Sistemler her gün bu algoritmalarla özellikle Fossilman sistemleri bu algoritmalarla yönetiliyor.
Buraya nasıl şey yapabiliriz, ne ilerletebiliriz, yani bunu nasıl iyileştirebiliriz konularında böyle açıklarımız olunca işte diyoruz ki arkadaşlarımıza data ile bulun, başlıklar çıkarın, roadmap'lerimize ekleyelim diyoruz.
Dolayısıyla bir taraftan da böyle kendi yarattığımız roadmap'ler var.
İşte bu şekilde iki şekilde ilerliyor.
Tabii bizansın isteklerini önceliklendiriyoruz çoğu zaman roadmap'lerde ama böyle iki kanatlı bir roadmap de diyebilirim.
Peki abi burada şey sormak istiyorum.
Biraz daha aslında anladığım kadarıyla bazı durumlarda deneysel de ilerlemeniz gerekebiliyor.
Yani geleneksel çözümlerin dışına çıkıp böyle doğaçlama yaptığınız işte daha önce yapmadığınız bir şeyi denediğiniz şeyler de oluyor anladığım kadarıyla sanırım.
Burada deneysel yaklaşıma nasıl bir bakış açınız var yani burada?
Hani çok tercih ettiğiniz bir durum mu?
Yoksa hani gelenekselin çok dışına çıkmak istemiyoruz.
Çünkü işte ne bileyim insanın da açık bir durum olabilir.
Ya da tam tersini mi söylüyorsunuz?
Hani biz zaten özellikle deneysel ilerlemeye çalışıyoruz falan.
Bir de mesela böyle şeylere ne kadar ihtiyacınız oluyor?
Ne kadar hani ne sıklıkla böyle şeyler oluşabiliyor?
Biraz ben cevaplayayım sonra belki Betül de eklemeleri varsa buraya temas edebilir.
Çünkü bence önemli bir konu bu. Şimdi data science ekiplerinin yaptığı işlerde deneysellik.
Yani bunu mesela biraz daha formal bir dille ifade edersek işte A-B testler, simülasyonlar, offline değerlendirmeler gibi düşünelim.
Bunlar aslında işimizin birer tabii birer parçası.
Yani bir algoritma geliştiriyoruz biz.
Bu algoritmanın kendisinin eziz sistemlere göre daha iyi...
olduğunu belli bir dataset üzerinde ve belli bir prosedür altında göstermemiz lazım.
İşte bu A-B test olabilir problemin tabiatına göre.
Problemin tabiatına göre offline değerlendirmeler olabilir.
İşte aynı dataset'e iki tane farklı algoritmayı uygularsınız.
Belli metrikler altında yeni önerdiğiniz algoritma daha iyi sonuçlar verir.
Veya simülasyonlar olabilir.
Şimdi bizim çalıştığımız tribe çerçevesinde A-B test biraz zor bir konu bizim için.
Çünkü A-B test'te bir Konuyu mesela işte Recommendation gibi şunun ön yüzdeki bir ürünü bir grup müşteriye gösteriyorsunuz, bir ürünü bir grup müşteriye gösteriyorsunuz.
Dolayısıyla çok elbitesli açık bir platform.
Bizim konumuz, çalıştığımız alan biraz ona çok müsait değil.
Çünkü biz temelde günün içerisinde gelen siparişlerin alokasyonundan, toplanmasından, pickinginden yani böyle sequential bir dinamikle arka arkaya algoritmalar çalıştırıyoruz.
Bir algoritmanın output'u diğer algoritmanın input'u oluyor ve günün sonunda bir metrik takip ediyoruz.
Dolayısıyla A-B yapabilmek biraz zor bir konu ama biz bunları nasıl ilerletiyoruz?
Simülasyonlarla ilerletiyoruz veya algoritmaların offline değerlendirmeleriyle ilerletiyoruz.
Bir şekilde yaptığımız ve önerdiğimiz her şeyin belirli metrikler açısından daha iyi olmasını garanti etmeye çalışıyoruz.
Biraz betülleriz.
Belki eklemek istediği bir şeyler olur.
Ben de tam olarak aynı şeyleri söyleyebilirim herhalde.
Yani gerçekten bizim en temelde zorlandığımız noktalardan bir tanesi birbirinin benzeri iki ortamı oluşturamıyor olmamız.
Yani iyi bir test yapabilmemiz için birbirine benzer, birbirine benzer özellikler gösteren iki günü veya iki depoyu almamız gerekiyor diyelim ki.
Ama hiçbiri tam olarak birbirinin aynısı olmuyor.
Tam olarak iyi bir şey mi yaptık, kötü bir şey mi yaptık?
Bunu anlayabilmek için farklı teknikler kullanmamız gerekiyor.
Genelde simülasyon çalışıyoruz bu anlamda.
Ama deneysel ilerlememizi engel oluyor mu?
Deneysel ilerlemeyi aslında birazcık teşvik etmemiz gerekiyor.
Çünkü asıl böyle ilerleme kat ettiğimiz yerler biraz daha böyle...
Hani disruptive diyebileceğim böyle deneysel biraz da belki uçuk şeyler deneyeceğimiz yerler.
Ama şeyi de tabii göz önünde bulundurmamız lazım.
Yani burada sonuçta bir operasyonun parçası olarak çalışıyor buradaki algoritmalarımız.
Hani operasyonu durdurma pahasına deneysel bir şeyler yapalım diyemiyoruz.
Dolayısıyla hani birazcık şeye dikkat etmemiz gerekiyor.
gitmek gerekiyor. Ama deneysel bir şeyler de yapmamız illaki gerekiyor.
Orada yine önlemlerimizi almaya çalışıyoruz.
Yani alternatif çözümler mutlaka bulunduracak şekilde denemeleri aslında teşvik ediyoruz diyebilirim.
Süper valla. Yani data science tarafı birazcık daha böyle işte akademi tarafına da özellikle zaten akademi tarafına yatkın bir alan olduğu için, o taraftan gelen bir alan olduğu için
biraz merak etmiştim. Buradaki süreçleriniz, ilerlemenizi çok güzelmiş gerçekten.
Ellerinize sağlık. Peki burada aslında sizin olduğunuz tribe tarafı işte logistik tarafında birçok alan var burada.
Yani işte fulfillment, consolidation, delivery gibi birçok alanlar var.
Bu alanlara siz data science perspektifinden baktığınız zaman ne gibi zorluklar oluyor, ne gibi zorluklar yaşıyorsunuz ve bunlar için neler yapıyorsunuz, bu zorlukları nasıl aşıyorsunuz?
Burada ben birazcık konuya gireyim.
Şimdi bizim aslında temel zorlandığımız konulardan biri şu oluyor.
Bu şeyler, prosesler çok anlık kararların verilmesi gereken süreçler içeriyor.
Mesela fulfillment'dan bahsedeyim.
İşte bir sipariş geldi. Siparişin anlık olarak stokta nerede bulunacağıyla alakalı bir karar mekanizması vermek gerekiyor.
Şimdi böyle olunca bizim birkaç aşamada şeyimiz var.
Hızlı çalışan bir algoritma yazmamız lazım.
İkincisi bu algoritmanın performans açısından yani KPI açısından bir şeyler vaat etmesi lazım.
Üçüncüsü bunlar query zamanda veya işte nasıl diyelim runtime'da çalışan şeyler olduğu için sistemleri kırmaması lazım.
Dolayısıyla işte diğer DS ekiplerinde olmayan bir pratik olarak biz işte testler yazıyoruz.
İşte deminki soruda bahsettiğin incidentlar olursa yani mesela normalde bir diaspratiğinde işte bir ürün öneriyorsun sen o ürün alınmadı bir sıkıntı yok ama ben bir alokasyon yapacağım yapamadım ne olacak?
Onun cevabı yok. Dolayısıyla buralarda böyle bir problemin tabiatından kaynaklanan bir şey var, zorluk var.
Bunları böyle daha çok işte algoritmalarımızı belli zamanlarda işte 2-3 saniyede çalışacaksa çalışacak gibi yapıyoruz.
Dolayısıyla her zaman ideal algoritmanın peşinde değiliz.
Çalışan bir akışın içerisindeyiz.
İşte testleri yapıyoruz.
Bizim fail etme şansımız yok.
Çünkü sürecin ilerlemesi lazım.
işte doğru KPI'leri artırmamız lazım ilerlemek için.
Bir de tabii bunların hem teknoloji ekipleriyle hem de işte iş birimleriyle çok koordineli şekilde çalışması lazım.
Teknoloji ekibiyle nasıl bir kontrat üzerinde anlaşacağız?
Bizans ekibiyle nasıl bir kontrat üzerinde anlaşacağız?
Bizim algoritmalarımızın sonuçları aslında sahadaki insanların hayatlarına etkiliyor.
Yani biz mesela iyi bir liste önerirsek diyelim ki sahadaki bir işçi 80 dakikada o listeyi toplayacağını 65 dakikada toplayabilir.
Aslında saving yapıyoruz. Bu onun hayatını da kolaylaştırıyoruz.
Hem de kendi şirketimiz için de iyi bir şey yapmış oluyoruz.
Dolayısıyla aslında sahayı da dinlememiz lazım bir açıdan biznes olarak.
Bir de bazı işte data problemleri oluyor.
Onları aşmamız gerekiyor.
Biznesin isteğini doğru şekilde adreslememiz gerekiyor.
Bazen biznesin isteği tam olarak böyle bir performans metri yine tahvil edemiyorsunuz onu.
O zaman nasıl böyle...
Yakın samalar yapmalıyız diye onun üzerine düşünmemiz gerekiyor.
Ve bu tür aşamalarda işte bunları yaşadığımız bazı zorluklar bunlar.
Bunları işte temel aşma yöntemimiz şu.
İterasyonlar yapıyoruz. Cross ekiplerle problemi doğru anladığımıza emin olmaya çalışıyoruz.
Üzerine ekleye ekleye ve sonuçları da göstererek hem POC çalışmalarıyla hem iterasyon sonucunda algoritmanın sonuçlarını...
gösterip cross check ederek bunları ilerlemeye çalışıyoruz.
Ne kadar aşıyoruz emin değiliz ama güzel metriklere baktığımız zaman özellikle ben bu döneme bakıyorum böyle güzel iyileşmeler var.
Sanki biraz aşıyormuşuz gibi de hissediyorum.
Peki ben şeyi de merak ediyorum.
Mesela bu algoritmaları geliştirirken ya da seçerken yani nasıl bir life cycle'dan geçiyorlar?
Yani hepsi aynı şekilde mi ilerliyor yoksa farklı farklı şekillerde mi?
Yani probleme özgü bir çözüm üretiyoruz diyebilirim.
Genelde böyle yeni bir işe başlıyorsak, sıfırdan o işe bir geliştirme yapacaksak aslında en önemli adım ilk başladığımız adım problemi anlamak oluyor.
Hani bu çok basit. gibi gözüküyor olsa da aslında çok kritik bir adım diyebilirim.
Burada işte nereye ulaşmak istiyoruz?
Nasıl kısıtlarımız var?
Bunları çok iyi anlamamız gerekiyor ki ona uygun olacak şekilde bir çözüm sunabilelim.
Genelde bu adımda bir miktar data analizi de yapmak gerekiyor ki hani problemi daha iyi anlayabilelim gibi.
Mesela şeyden bahsedebilirim hani bazı problemleri Sipariş geldiği anda çözmemiz gerekiyor.
Çünkü buna bağlı olarak müşteriye gösterdiğimiz bilgiler değişebiliyor.
O yüzden bu tür problemlerde mesela hız çok önemli.
O bizim için çok ciddi bir kısıt.
Burada bir değişiklik yapacaksak, bir geliştirme yapacaksak o hızdan ödün vermeden algoritmalarımızı iyileştirmemiz gerekiyor.
Ama farklı bir problemde böyle bir kısıtı olmayabilir.
Belki siparişleri biriktirip...
toplu bir şekilde karar veriyor olabiliriz.
Dolayısıyla hangi çerçevede bir çözüm sunacağımızı biliyor olmak ve onunla uygun çözümler sunuyor olmak aslında en kritik noktalardan bir tanesi.
Bir diğeri takip edeceğimiz metrikleri belirlemek oluyor.
Burada yine genel biznes ekipleriyle birlikte çalışıyoruz.
Buradaki amacımız da biz ne yaparsak...
Tamam bu iş iyi oldu, iyi yaptık diyebileceğiz veya artık bununla devam edelim diyebileceğiz.
Bunu belirlemek diyebilirim.
Sonraki kısımlar aslında bunların üzerine inşa ettiğimiz daha teknik kısımlar diyebiliriz.
Daha çok böyle işte geliştireceğimiz algoritmanın teknik tasarımını yapmak, projenin çerçevesini belirlemek veya sonrasında çözümün implementasyonunu yapmak gibi devam ediyoruz.
Canlıya aldıktan sonra da...
Demin bahsettiğim metriklerimizi takip ediyoruz.
Beklediğimiz gibi iyileştirme görebildik mi?
Ne kadar iyi gidiyor?
Veya hani bir desteğe ihtiyacımız var mı?
Bunları takip ediyoruz.
Kullandığımız algoritma olarak da aslında hani sınır yok.
Demin de bahsettik böyle deneysel şeyler de yapabiliyoruz.
Çünkü birazcık bunu şey gibi düşünebiliriz.
Biznes problemi çözmeye çalışıyoruz.
Ve o problem nasıl bir çözüm gerektiriyorsa aslında ona uygun olacak şekilde bir algoritma geliştirmeye çalışıyoruz.
Bu bazen matematiksel model kullanmak ve en iyi çözümü...
bulmak şeklinde olabilir.
Bazen demin bahsettiğimiz gibi işte daha hızlı karar vermemiz gereken yerler olabilir.
O zaman daha hüristik algoritmalar kullanabiliyoruz.
Bazen işte tahmin üretmemiz gerekebiliyor.
Oralarda daha çok böyle makine öğrenmesi modellerinden yararlanıyoruz.
Ama hani yöntem olarak aslında ucu açık bir alan.
İlla şunları kullanacağız diye bir kısıtlamamız yok.
Metriklerimizi iyileştireceğiz sürece herhangi bir yöntem olabilir aslında bizim kullanabileceğimiz.
Süper yani burada aslında hedefe yönelik ilerlemeniz.
Ya şeyi ben seviyorum birçok takımda aslında bu var.
Böyle taşa yazılmış şeyler yerine işte aslında bu deneysel olarak sorduğum soru da bana benzer bir şeydi.
Yani taşa yazılmış böyle kurallar yerine çözüme odaklı ilerlemek oldukça güzel.
Bunu birçok ekipte görebiliyoruz zaten.
Burada bir önemli olan nokta, bir ayrı önemli olan nokta da iterasyon tarafı, itere etme.
Sizin ekipte, projelerinizde İterasyon kültürünü nasıl uyguluyorsunuz?
Tabii her zaman böyle sıfırdan bir geliştirme yapmıyoruz.
Demin biraz o çerçevede konuştuk ama çoğunlukla da belki mevcut işlerimizde iterasyonlar yaparak devam ediyoruz.
Neden buna ihtiyaç duyuyoruz?
Bazen biznes ihtiyaçları değişkenlik gösterebiliyor.
Özellikle operasyonda bunu çok sık yaşıyoruz.
Bazen de zaten mevcutta çalışan bir algoritmamızda Aslında biz bu işi şöyle yapsak daha iyi olurdu dediğimiz yerler olabiliyor.
Böyle bazı hipotezler üretip ilerlettiğimiz yerler olabiliyor.
Burada akla sorusu gelebilir.
Madem daha iyisini yapabilecek durumdaydık neden baştan böyle ilerlemedik gibi bir şey de düşünülebilir.
Ama daha önce de muhtemelen konuşulmuştur.
Trendyol'da bir iterasyon kültürü var.
Her şeyi böyle dört dörtlük yapalım, işte gerekiyorsa bir yıl bekleyelim ama mükemmel olsun, her şeyini düşünmüş olalım gibi bir mantıkla çalışmıyoruz.
Onun yerine daha kısa sürede en minimum gereklilikleri sağlayacak şekilde bir algoritma oluşturmaya çalışıyoruz ki bir an önce canlıya çıkabilelim, onu gözlemleyelim
ve... onun üzerine ekleye ekleye devam edelim şeklinde ilerliyoruz.
Bunun da çok faydasını görüyoruz.
Başta böyle insanı rahatsız ediyor olsa da uzun vadede aslında faydasını görüyoruz diyebilirim.
Çünkü hem kısa zamanda...
Yaptığımız şeyin meyvelerini görmeye başlıyoruz.
Bu bizi öncelikle motive etmiş oluyor.
Hem de bir sorun varsa bunu erkenden görmüş oluyoruz.
Ona göre onu düzeltip yolumuza devam ediyoruz.
Bir de yani genel olarak tren diyor çok dinamik bir ortam aslında.
O yüzden hani mükemmeli yapalım.
diye beklemek yerine ilgilendiğimiz problemin şu anki haline bir çözüm sunmaya çalışıyoruz.
İleride değişirse de bunu adapte olabilecek şekilde tasarlamaya çalışıyoruz ki dinamizmin gerektirdiği şekilde değişikliklere de ayak uydurabilelim.
O yüzden genelde en minimumla başlayıp onun üstüne yeni şeyleri ekleye ekleye devam ediyoruz diyebilirim.
Genel çalışma şeklimiz tamamen iterasyonlar üzerine kuruldu.
Peki bu algoritmalarla beraber hangi teknolojileri kullanıyorsunuz?
Yani data scientist deyince zaten ilk aklımıza gelen Python ve SQL oluyor.
Biz de ekip olarak hem algoritmalarımızda hem yaptığımız analizlerimizde en çok Python ve SQL'i kullanıyoruz.
Canlıda çalışan algoritmalarımızda da daha çok böyle optimizasyon ve prediction işleri yapıyoruz.
Makine öğrenmesi modellerinden kullanıyoruz.
Bunları servisleştirmek amacıyla da farklı ekiplerle teknik olarak iletişim kurduğumuz yerler olabiliyor.
bize sağladığı altyapıları kullanıyoruz.
Diğer ekiplerle Kafka mesajları üzerinden haberleşiyoruz diyebilirim.
Burada aslında sizin yaptığınız işlerde işte algoritmalarda, kullandığınız algoritmalarda bildiğim kadarıyla işte birkaç tane zaten şey var.
Mesela makine öğrenmesi tarafı var.
İşte optimizasyon tarafı var falan.
Burada bu makine öğrenmesi kullandığınız algoritmalar ile optimizasyon tarafında kullandığınız algoritmalar arasında bir fark var mı?
Yani burada ikisi için de soruyorum.
Belki farklı algoritmalar için de konuşabiliriz.
Burada nasıl bir fark var ve nasıl kullanılıyor?
Bunu biraz açabilir miyiz acaba?
Bu benim çok sevdiğim bir şey, konu.
Yani bunu tartışmayı çok seviyorum.
Şimdi aslında bir data scientist'in hayatı datalardan bir pattern çıkarmak ve bu pattern üzerine yeni daha önceden görmemiş bir data işte meşhur train setinden
bir algoritma öğrenmek ve test setine uygulamak gibi bu makine öğrenmesini bütün yani hem makine öğrenmesi hem işte derin makine öğrenmesi hem işte bu elelen modellerin hepsinin temelinde yatan şey bu yani var olan
bir datadan öğrenen bir algoritma yani öğrenme felsefesi de şu o datanın gösterdiği patterni anlayabilmek ve görmediği bir dataya anlamlı bir sonuç üretebilmek.
Bütün makine öğrencilerinin temelindeki felsefe bu.
Bu neyi gerektiriyor?
İşte bir daha önceden verilmiş kararların karar verilmese de belli bir patenlerin olduğu bir düzlem gerekir.
Optimizasyon algoritmaları ise o andaki bir dataya yani optimizasyondan kastımız da şu tabii de optimizasyon çok geniş bir kavram.
Bizim optimizasyondan kastımız aslında linear programlama, integer programlama gibi, instruments'liğinin bir pratiği olan optimizasyondan bahsediyoruz.
İşte bir diyelim ki rotayı daha ideal bulabilmek veya işte bir çizelgeleme problemini daha iyi yapabilmek veya işte bir yatırım kararını daha iyi vermek gibi optimal kararların verildiği matematiksel
sistemlerden bahsediyoruz. İşte bu ikisi arasında aslında temel de...
Makine öğrenmesi algoritmaları da temelde aslında konveks olmayan problemlere verilen bir takım şeyler aslında.
Suboptimal optimizasyon algoritmaları onların temelinde de yatan o yapı var.
Ama ikisi arasındaki fark bir optimizasyon modeli o anda kendisine gelen datadan ideal bir karar vermeye çalışır.
Bunu optimize halledebilirse optimize vermeye çalışır.
Eğer optimize olarak çözemezse işte bir optimale yakın bir çözüm bulmaya çalışır zamanla alakalı.
Ama makine öğrenmesi algoritması işte bir yerden öğrenir, gelen dataya bir sonuç verir.
İkisi arasında böyle temel bir fark var.
Dolayısıyla ikisinin getirdiği bazı avantajlar, bazı dezavantajlar var.
Bir makine öğrenmesi algoritması eğer bir business çok fazla kısıtlı bir business ise, yani işte kapasite problemleri var, ne bileyim farklı istekler varsa, genelde ona adapte olması biraz zor oluyor.
Optimizasyon algoritmaları burada daha işe yarıyor.
Ama böyle live stream'de işte query time'de cevaplar verecekseniz de optimizasyon algoritmaları çok yetersiz kalıyor.
Çünkü modeli yaratmak bile bazen birkaç dakika sürüyor.
Dolayısıyla onları birazcık oyundan dışarı çıkıyor diye düşünebilirsiniz.
İkisinin kullanıldığı yerler, seviyeler işte taktik seviyede mi, stratejik seviyede mi yoksa operasyonel seviyede mi problemler olacak.
Bunlar biraz değişiyor işin tabiatına göre.
Şimdi bir strive olarak bazı tahmin yapmamız gereken yerler var.
O arada makine öğrenmesi algoritmaları.
kullanıyoruz. Bazen ideal kararlar vermemizi gerektiren işte maliyet minimizasyonu açısından veya işte verimliği artırmak açısından belli zamanımızın olduğu yerlerde bu optimizasyon algoritmalarını, matematiksel modelleri
falan kullandığımız yerler var.
Böyle biraz temelde böyle biraz bunların arasındaki farka değinmiş olayın bu şekilde.
Ben bir de şeyi merak ediyorum.
Laf arasında demiştiniz yani biz daha çok işte sorunlara çözüm üretiyoruz.
O şekilde ilerliyor işte bütün işte algoritmalar, denemeler falan.
Peki böyle yıl içinde bizim hani hedefler belirliyoruz ve ona böyle quarter bazlı ilerlemeye çalışıyoruz.
Peki siz bu hedefleri nasıl belirliyorsunuz?
Yani sorunlar önceden nasıl belli mi yoksa çıktıkça böyle değiştiriyor musunuz quarter bazında?
Genelde yıllık hedefler...
tayin etmeye çalışıyoruz.
İşte çalıştığımız iş birim yani bizim algoritmalarımızı biraz şöyle product şeklinde düşünelim.
İşte mesela fulfillment business'ın içerisinde picking product'ı, alokasyon product'ı, B2C'ye değen tarafları, B2B'ye değen tarafları, işte konsolidasyon business'ın içerisinde toplama
süreçleri, tahmin süreçleri gibi.
Bunların içerisinde aslında yaptığımız bütün algoritmalar business'ın belli KPI'larına karşılık geldiği için hedeflerimizi biraz algoritma...
Algoritmaları iyileştirerek bu KPI'larda işte onların durumu neyse mesela maksimize etmemiz gereken bir KPI mıdır, minimize etmek mi?
O duruma göre %5'i iyileştirmek, %10'u iyileştirmek gibi aslında direkt algoritmaların biznesi olan etkisini artırıcı hedefler almayı çalışıyoruz.
Bazen yeni biznesler de tabii karşımıza çıkıyor.
O zaman o biznesi kurmak, temel bir algoritma oraya entegre edip işte...
teknoloji ve biznes ekibiyle iletişimini sağlamak ve canlı sistemlerin bir parçası yapmak gibi hedefler alıyoruz.
Bazı hedeflerimiz de işte cross ekiplerle olan işbirliklerini artırmak, daha böyle farklı yaklaşımlarla sistemleri challenge etmek, nasıl iyileştirebiliriz, nasıl değiştirip dönüştürebiliriz
üzerine giden hedeflerimiz oluyor.
Tabi bireylerin kendilerine özgü hedefleri de oldu takımın dışında.
İşte onlarda nedir, ne kadar farklı algoritma kullandık, ne kadar iterasyon çıktık, hedeflerimize ne kadar yaklaştık gibi.
Individual özelinde de takip ettiğimiz hedefler oluyor, öyle düşünebiliriz.
Kısmen kendi belirlediğimiz, yani data science'ın temelinden aldığımız şirketin biznesiyle uyumlu olan, kısmen de kendi algoritmalarımıza işte bunu nasıl iyileştiririz, dataları inceleyip
oradan bir bağlam nasıl çıkarabiliriz diye düşündüğümüz bir şekilde akıp ilerliyor.
Süper, süper.
Yani ekstra olarak üzerine ne diyeyim bilemedim.
Herhangi bir yorum yoktu ama dinlemesi yani en azından böyle süreçlerinizi bu şekilde ilerletmeniz, hedeflerinizi bu şekilde kategorize etmeniz oldukça güzel.
Ben biraz daha şeyi merak ediyorum.
Şimdi biz her ekibe işte observanti tarafıyla alakalı, monitoring tarafıyla alakalı da sorular sormaya çalışıyoruz.
Sizin tarafta bunlar nasıl ilerliyor?
Yani mesela canlıda olan, canlıda çalışan algoritmalarınızı nasıl takip ediyorsunuz?
Şimdi biz ben yaklaşık 7 sene önce Trendyol'a başladığım zaman fulfillment domeni içerisinde işte anlık kararlar veren algoritmalar yazacağımız için fulfillment'ın code base'i içerisinde
algoritmalarımızı geliştirdik.
O zaman işte C Sharp falan kullanmıştım ama daha sonraki yıllarda data science pratiği ve bütün data scientistler genelde Python üzerinde çalıştıkları için bir Python'a tribe olarak göç ettik yani.
Biraz hem işin tabiatı gereği hem de işte genel olarak data scientistlerin Python kullanılmasından dolayı.
Ama o günden beri takip ettiğimiz bir pratik var bizim.
Şimdi biz her verdiğimiz kararın input'unu ve output'unu işte bana şöyle bir input geldi, algoritmam şöyle bir karar verdi, şöyle bir input geldi, şöyle bir karar verdi gibi.
Günde belki 100 bin tane problem çözüyoruz ve her problemin şeyini logluyoruz.
Yani ne gelmişti, ne çıkmıştı.
Bununla hem verdiğimiz kararın sağlığını analitik açısından kontrol ediyoruz.
Hem de böyle bir eğer diyelim ki bir incident olursa veya bir problem olursa oradan direkt anlayabiliyoruz ve bu çok işimize yaradı.
Bunun dışında işte gün boyunca bütün verdiğimiz kararlar işte diyelim ki 15 tane algoritmamız çalışıyor.
Her algoritmanın sonuçta etki ettiği KPI'nin oluştuğu biznes ekipleriyle takip ettiğimiz bir şey var.
KPI dosyamız var.
Her gün hem günlük olarak hem haftalık olarak hem de aylık olarak onların sonuçlarını oraya da logluyoruz.
Aslında bir taraftan business'ı da takip ediyoruz.
Bu şekilde hem metriklerde iyileşme varsa onu görüyoruz.
Hem işte bir düşüş varsa onu da takip ediyoruz.
Bizim için bir şey oluyor.
Monitoring yapısı oluyor. Hem de genel olarak business'ın bizim dışımızda takip ettiği yerlerde de bir input olarak bunu sağlamış oluyoruz.
Onun dışında böyle...
Çok aklıma gelen bir şey yok yani.
Genelde işte her algoritmanın, yani verdiğimiz her kararı logluyoruz aslında öyle diyebilirim.
Bu kararlarda bir çözdüğümüz problemin kararı olduğu için daha sonra onun üzerinden işte cross-check'ler de yapabiliyoruz.
Bu bize şunu da veriyor.
Algoritma olmasaydı ne yapardık?
Olsaydı ne yapardık? Başka bir algoritma aynı input'a nasıl davranırdı diye.
Onu da takip ettiğimiz için aslında siparişin depoya...
girdiğinden çıkana kadar izlediği her adımda bir karar mekanizmasına tabi tuttuysa her anını şey yapıyoruz, logluyoruz diyebilirim.
Ve bunları da database'lerde tutuyoruz.
Daha sonra bu hem süreçleri takip etme açısından hem de geriye dönük tekrar analizler yapmak, simülasyonlar çalıştırmak istersek datayı kullanıp o günü tekrardan canlandırabiliyoruz.
Öyle bir kolaylık da bize sağlıyor.
Tabii yani en önemli tarafı KPI'ler üzerinden de takip ediyoruz.
Biznes ekiplerle beraber. Bunun dışında işte anlık olarak bir problem olursa sileye basıyoruz notifikasyon olarak.
İşte burada bir problem var.
İşte data gelmedi veya data eksik geldi veya algoritma sonuç üretemedi gibi.
Böyle takip edebileceğimiz bütün kollardan takip edebiliriz.
Öyle diyebilirim. Kendinize sağlık abi.
Peki biz hep böyle cross ekipler için işte biznesden bahsettik.
Peki siz farklı DS ekipleriyle hani ortak işler yapıyor musunuz?
Mesela çok böyle içeride konuşulan konular el elem.
Gen AI gibi teknolojileri falan sizin tarafta yani fulfillment tarafında kullanma uygulama gibi düşünceleriniz var mı?
Bunlar tabii çok yeni alanlar.
Yani farklı yerlerde farklı kullanımlarını biz de yeni yeni görmüş oluyoruz.
O yüzden hani henüz kullandık canlıda çalışan pipeline'ımız var diyemiyorum.
Demin de konuştuk yani deneysel çalışmaya da bir yandan açığız.
O yüzden hem sektördeki hem de literatürdeki örnekleri takip etmeye çalışıyoruz.
İyi sonuçları elde ettiğimiz sürece de farklı yöntemleri uygulamaya çalışıyoruz.
Yakın zamanda kullanmayı düşündüğümüz, bu şekilde farklı yöntemler bizim de roadmapimizde var.
Süper. Ellerinize sağlık gerçekten.
Çok öyle dolu dolu bir süreç.
Umarım hedeflerinizi önümüzdeki dönemlerde...
sıkıntısız bir biçimde gerçekleştirirsiniz.
Yavaş yavaş podcast'in sonuna doğru geldik.
Her ekibe sorduğumuz klasik bir sorumuz var.
Onu bitirirken sormak istiyorum.
Çok teknolojiyle alakalı konuştuk.
Biraz da ekip iletişimini geliştirmek için neler yapıyorsunuz?
Ondan bahsedelim istiyorum.
Böyle ekip etkinlikleri vesaire yapıyor musunuz?
Birçok farklı etkinlik yapan ekiplerimiz var.
Sizde bu süreçler nasıl ilerliyor?
Bizim haftada bir saat bu eğlence saati olarak tertip ettiğimiz bir saatimiz var.
Orada uzun süre böyle oyunlar oynuyorduk.
Hexball diye bir oyun oynuyorduk.
3-4 kişi bir tarafta 3-4 kişi bir tarafta gibi.
Baya eğlenceli oluyordu.
Bazen mesela o saatin gelmesini ekip böyle iple çekiyordu.
Gelse de böyle bir kavuşsak karşılıklı diye.
Onun dışında işte farklı oyunlar yapıyoruz.
Dışarıda yemeklere gidiyoruz beraber.
Ekip içerisinde çok yakın zamanda bir piknik.
organizasyonu gerçekleştirdik.
Böyle bir araya geldiğimiz zaman işte eğlenceler, eğlenceli etkinlikler tertip ediyoruz.
Böyle diyebilirim. En güzel şey işte haftada bir sabit eğlence saatimiz.
Orada oyunlar oynayıp böyle keyifli muhabbetler yapıyoruz diyeyim ben.
Bir de bunu haftanın son günü, son saatinde yapıyoruz.
O da böyle hafta sonuna tamamen hani kafamızı dağıtmış şekilde girmemizi sağlıyor diyebilirim.
Kesinlikle, kesinlikle.
Zaten böyle her ekibin farklı şeyleri var, farklı süreçleri var ama tabii Tendol'da iki şey asla değişmiyor.
İşte yemek sevdası, yemek sevdamız ve haftalık böyle bir saat artık, iki saat neyse beraber oynadığımız oyunlar.
Hexball'da zaten her ekipte, bizim ekipte dahil benim çok bayıldığım bir oyun değildir ama mecburen arkadaşlar sevdiği için oynuyoruz.
Süper. Gerçekten çok teşekkür ederiz geldiğiniz için.
Yani çok keyifli, böyle dolu dolu güzel bir bölüm oldu.
Tekrar çok teşekkürler.
Biz teşekkür ederiz. Selam ekibin 85.
bölümünde DS Logistics ekibiyle beraberdik.
Sonraki bölümlerde başka ekiplerle tekrar beraber olacağız.
Bunun yanında Trendyol Talks adında başka bir podcast serimiz daha var.
Trendyol Talks'ta da Trendyol'daki kültürümüzü, kültürümüzden beslenen iş yapış biçimlerimiz ve ritüellerimizi konuşuyoruz.
Trendyolutavut Podcast kanalımızı da takip etmeyi unutmayın.
Bir sonraki bölümde başka bir ekiple tekrar görüşmek üzere.
Bu transkript otomatik olarak çıkarıldı; kayıtla küçük farklar olabilir.
