Kafayı yemek üzereydim. Günlük raporları otomatize etmek için yazdığım Python botu, bir haftadır aynı satırda takılıp duruyordu. "Veri tipi uyuşmazlığı" diye bağırıyordu ama veriler gayet normal gözüküyordu. Meğerse sorun, veride değil, verinin kendisindeymiş.
Botun Basit Görevi
Departmandaki tüm ekiplerin günlük aktivite log'larını (CSV dosyalarından) okuyacak, toplayacak ve tek bir özet rapor hazırlayacaktı. Temel Pandas işlemleri, çocuk oyuncağı gibiydi.
Anomali Yakalama Anı
Bot, bir ekip için sürekli hata veriyordu. Log dosyasında, aynı görev ID'sinin, aynı gün içinde farklı iki çalışana atanmış gibi göründüğünü fark etti. İlk başta "bir yazım hatası, tekilleştir (unique) geç" dedim. Ama merak ettim, manuel baktım.
Şaka gibi ama, gerçekten de öyleydi. Bir iş, sistemde hem Ahmet'e kayıtlıydı hem de Mehmet'e. Bu, işin iki kere tamamlandığı (ve muhtemelen iki kere raporlandığı) anlamına geliyordu. Botum, basit bir duplicate kontrolü yaparken, bambaşka bir şeyi ortaya çıkarmıştı.
Kod, Gerçeği Söylüyor
Hemen küçük bir kontrol mekanizması ekledim. Aynı gün, aynı işi iki kişiye atayan kayıtları filtrelesin diye.
Listeyi çalıştırdığımda yüzüm dondu. Sadece bir iki kayıt değil, düzenli bir pattern vardı. Belli birkaç kişi ve belli iş tipleri... Botum, departman içindeki usulsüz bir raporlama döngüsünü bana göstermiş oldu.
Sonrası ve İsyanım
Durumu yöneticime ilettim. Veri, kodun çıktısıydı ve tartışmaya kapalıydı. İşin teknik kısmı çözüldü ama insan tarafı... O ayrı bir hikaye. StackOverflow'da bile bulamazsın böyle bir bug'ın çözümünü.
En ironik tarafı ne biliyor musunuz? Ben sadece "şu hata log'una bir çözeyim" derken, kendi yazdığım otomasyon, bana etiketsiz bir bug daha hediye etti. Asıl bug, sistemde değil, insanda çıktı.
Siz hiç kodunuzun, beklenmedik bir şekilde gerçek hayattaki bir "bug"ı ortaya çıkardığı oldu mu? Ya da veri analizi yaparken, bu tarz sürprizlerle karşılaştınız mı?
Departmandaki tüm ekiplerin günlük aktivite log'larını (CSV dosyalarından) okuyacak, toplayacak ve tek bir özet rapor hazırlayacaktı. Temel Pandas işlemleri, çocuk oyuncağı gibiydi.
Python:
df = pd.read_csv('aktivite_log.csv')
toplam_is = df['gorev_id'].nunique()
Bot, bir ekip için sürekli hata veriyordu. Log dosyasında, aynı görev ID'sinin, aynı gün içinde farklı iki çalışana atanmış gibi göründüğünü fark etti. İlk başta "bir yazım hatası, tekilleştir (unique) geç" dedim. Ama merak ettim, manuel baktım.
Şaka gibi ama, gerçekten de öyleydi. Bir iş, sistemde hem Ahmet'e kayıtlıydı hem de Mehmet'e. Bu, işin iki kere tamamlandığı (ve muhtemelen iki kere raporlandığı) anlamına geliyordu. Botum, basit bir duplicate kontrolü yaparken, bambaşka bir şeyi ortaya çıkarmıştı.
Hemen küçük bir kontrol mekanizması ekledim. Aynı gün, aynı işi iki kişiye atayan kayıtları filtrelesin diye.
Python:
suskun_kayitlar = df[df.duplicated(subset=['tarih', 'gorev_id'], keep=False)]
Listeyi çalıştırdığımda yüzüm dondu. Sadece bir iki kayıt değil, düzenli bir pattern vardı. Belli birkaç kişi ve belli iş tipleri... Botum, departman içindeki usulsüz bir raporlama döngüsünü bana göstermiş oldu.
Durumu yöneticime ilettim. Veri, kodun çıktısıydı ve tartışmaya kapalıydı. İşin teknik kısmı çözüldü ama insan tarafı... O ayrı bir hikaye. StackOverflow'da bile bulamazsın böyle bir bug'ın çözümünü.
En ironik tarafı ne biliyor musunuz? Ben sadece "şu hata log'una bir çözeyim" derken, kendi yazdığım otomasyon, bana etiketsiz bir bug daha hediye etti. Asıl bug, sistemde değil, insanda çıktı.
Siz hiç kodunuzun, beklenmedik bir şekilde gerçek hayattaki bir "bug"ı ortaya çıkardığı oldu mu? Ya da veri analizi yaparken, bu tarz sürprizlerle karşılaştınız mı?