Planlama bir kural motorudur, takvim değil
Kurallar planlamacının kafasındayken plan, o kişi kadar iyi. Kurallar yazıya geçtiğinde asıl teslim ortaya çıkıyor.
· 4 dk
Bir otobüs filosunun haftalık planı kâğıt üstünde yapılıyordu. Hangi şoför hangi gün hangi otobüste, kim dinlenecek, kimin hafta sonu alacağı var. Kurallar hiçbir yerde yazılı değildi; planlamacının kafasındaydı.
Bu bir yazılım problemi gibi görünmüyor: "Excel'e dökelim" yeter gibi. Ama sorun planı üretmek değil, üretilen planın kurallara uyduğunu bilmek.
Kuralları veri yapmak
Kısıtlar kendi tablosunda duruyor: bir şoförün üst üste kaç gün çalışabileceği, iki vardiya arası en az dinlenme, hafta sonu dağılımı. Planlayıcı bu tabloyu okuyup planı üretiyor ve yazmadan önce doğruluyor.
- Yeni kural = tabloya satır + bir kontrol. Algoritmaya dokunulmuyor.
- Kural ihlali plan üretilirken yakalanıyor, ofiste fark edilmiyor.
- Aynı filo için iki farklı kural seti denenebiliyor.
Arayüzü ince tutmak
326 testin çoğu planlama motoruna koşuyor, pencereye değil. Arayüz yedi ekran ve bilerek aptal: veriyi gösteriyor, komutu motora iletiyor. Ekran açmadan kural doğrulanabildiği için testler hızlı ve kararlı.
Teslim biçimi de bir karar
Çıktı Excel. Ofis yeni bir araç benimsemiyor; alıştığı çalışma kitabını istiyor. Kapalı XML kütüphanesiyle aynı sütun adlarıyla yazıyorum. Benimseme maliyeti sıfır, biçimlendirme adaptörünün bakımı bende.
Bedeli
Kurallar veri olduğu için plan, kural seti kadar iyi. Eksik bir kural yazarsanız plan da eksik olur ve bunu kimse fark etmez; plan "geçerli" görünür. Bu yüzden kural eklemek, test eklemekle aynı iş: ikisi birlikte yapılmadığında sessiz hata çıkıyor.
Otobüs Rotasyon Planlayıcı
Şehir içi otobüs filosu için haftalık görev ve rotasyon planı; kural denetimi ve Excel çıktısı.