İleri Seviye Otomasyon: Sık Yapılan Hatalar, Kırılgan Kazıma ve Güvenilir Araç İçin İpuçları

Vaka: "Pazartesi Raporu" Aracı Sessizce Yanlış Çalışınca

Bu vaka kurgusaldır; Türkiye'de orta ölçekli bir yapı malzemeleri toptancısında geçen, sık görülen bir durumu anlatır. İsimler ve rakamlar örnektir, gerçek bir şirketi yansıtmaz.

Durum

Satın alma uzmanı Selin, rakip firmaların liste fiyatlarını her pazartesi elle kontrol ediyordu. Kurstaki adımları izleyerek bir betik yazdı: betik bir tedarikçi sitesinden fiyatları çekiyor, haftalık Excel dosyasındaki eski fiyatlarla karşılaştırıyor ve bir rapor üretiyordu. İlk haftalarda her şey yolundaydı ve ekip betiğe güvenmeye başladı. Selin, "Çalıştı, demek ki doğru" diye düşündü.

Sorun: Üç Sessiz Hata

  • Site yapısı değişti: Tedarikçi sitesi tasarımını yeniledi. Betik hata vermedi ama fiyat sütunu boş geldi ve rapor "fiyat değişimi yok" gösterdi.
  • Metin olarak gelen sayılar: Eski Excel dosyasındaki bazı fiyatlar metin biçimindeydi ("1.250,50"). Karşılaştırma yanlış sonuç verdi.
  • Üzerine yazma: Betik her hafta aynı adlı dosyayı yazıyordu. Hatalı hafta, doğru bir önceki haftanın verisinin yerine geçti.

Hata, bir yönetici raporda tuhaf bir tutarsızlık görüp sorduğunda fark edildi. Yani tespiti araç değil, insan yaptı.

Adım Adım Nasıl Ele Alındı

  • 1. Önce zararı sınırla: Betik geçici olarak durduruldu, o haftaki rapor "doğrulanmadı" notuyla geri çekildi. Eski veriler yedekten geri alındı.
  • 2. Kök nedeni bul: Üç hata ayrı ayrı yazıldı. Ortak payda: betik "beklediğim şey gelmedi" durumunu hiç kontrol etmiyordu.
  • 3. Doğrulama ekle: Çekilen satır sayısı sıfırsa veya fiyat sütununun belirli bir oranından fazlası boşsa betik durup uyarı verecek şekilde değiştirildi.
  • 4. Veri tiplerini düzelt: Fiyatlar tek bir fonksiyonla sayıya çevrildi; çevrilemeyen değer satır numarasıyla hata listesine yazıldı.
  • 5. Çıktıya tarih damgası: Dosya adı rapor_2026-10-05.xlsx biçimine geçti; artık hiçbir hafta bir öncekinin üstüne yazmıyor.
  • 6. Dayanıklı istek: Zaman aşımı ve en fazla üç yeniden deneme eklendi, denemeler arasına bekleme kondu.
  • 7. Hukuki ve etik kontrol: Sitenin kullanım koşulları ve robots.txt okundu. Tedarikçiyi aradıklarında fiyat listesini düzenli bir dosya olarak paylaşabileceği öğrenildi. Kazımadan vazgeçip bu kaynağa geçildi.
  • 8. Basit testler ve Git: Fiyat çevirme fonksiyonu için birkaç pytest testi yazıldı, kod Git'e alındı, ayarlar (dosya yolları, e-posta adresi) yapılandırma dosyasına taşındı. Şifreler koddan çıkarılıp ortam değişkenine alındı.

Karar Tablosu

SorunAlınan kararGerekçe
Boş veri sessizce geçtiDoğrulama kontrolü + e-posta uyarısıHata insan yerine araç tarafından fark edilsin
Metin biçimli fiyatTek dönüştürme fonksiyonu + testDönüşüm tek yerde, denetlenebilir
Üzerine yazmaTarih damgalı çıktıGeri dönüş her zaman mümkün
Kırılgan kazımaResmi dosya paylaşımıDaha sağlam, hukuken daha güvenli

Sonuç

Araç artık hata durumunda çalışmayı durduruyor ve Selin'e e-posta gönderiyor. Selin kendi ölçüm yöntemini de kurdu: her pazartesi bir not defterine araç kaç dakikada çalıştı, kaç satır hata listesine düştü, kaç kez elle müdahale gerekti diye yazıyor. Birkaç ay sonunda bu kayıt, aracın gerçekten zaman kazandırıp kazandırmadığını gösteren somut bir veri oldu. Bu ölçümde gerçek sayıları kendi verinizle üretmeniz gerekir; burada örnek rakam verilmemiştir.

Çıkarılan Dersler

  • Hata vermemek, doğru çalışmak demek değildir.
  • Her siteden veri çekilebilir diye bir şey yoktur; önce API veya resmi dosya seçeneğine bakın.
  • Kişisel veri içeren kaynaklarda KVKK'yı düşünün, veriyi gereğinden fazla saklamayın.
  • Girdiyi doğrulayın, çıktıyı damgalayın, değişiklikleri Git ile izleyin.

Tartışma Soruları

  • Kendi çalıştığınız bir otomasyonda, "sessizce yanlış çalışma" riski en yüksek adım hangisi? Orada hangi kontrolü eklerdiniz?
  • Bir siteden veri çekmeden önce hangi üç soruyu sormanız gerekir? Resmi bir alternatif var mı?
  • Aracınızın başarısını hangi üç ölçütle izlersiniz ve bunları nerede kaydedersiniz?

Bu dersi kayıt olmadan izleyebilirsin. İlerlemeni kaydetmek, sertifika almak ve puan tablosuna girmek için ücretsiz üye ol: Kayıt Ol