Müşteri bazen çok basit ve net bir şey ister ama kurulan sistem bu isteği yerine getiremediğinden müşteriye istediğine benzer bir şey sunulur. Bu “çözümün” düşündüğümüzden çok daha fazla yerde kullanıldığından hiç şüphem yok.
Bugün de aynısı başıma geldi. Makinelerimizde sistemi test etmek için basit bir fonksiyon mevcut. Üretimde bazı ürünlere bilerek kontaminasyon eklenir ve sistemin eksiksiz bu kontaminasyonları bulup üretimden atması beklenir. Bu test için otomatik bir rapor tutulur. Bu esnada bilerek kontamine edilen ürünlerin normal üretim raporunda ayrıca test ürünleri olarak gösterilmesi istenir. Ürettiğimiz makine de bu işlemi yapıyor. Kontrol birimi makineyi test moduna geçiriyor ve ayrı bir yazılım modülü bu modda üretimden geçen kontamine ürünlerin test ürünü olduğunu varsayıyor ve beklenen sayıda test ürünü kontrol edildikten sonra bu modül makineyi yeniden normal üretim moduna geçiriyor. Test modunda hattan geçen normal ürünler de normal üretilmiş ürünler gibi değerlendiriliyor.
Müşteri yukarıda anlattığım fonksiyonu aynen bu şekilde kendi makinesinde de istemiş. O makine yukarıda anlattığımdan biraz farklı ama. İçinde bir de terazi modülü var ve terazi modülü ürünlerin sonucunu kontrol biriminden elektrik sinyalleri şeklinde alıyor. Örneğin kontaminasyon varsa bir kablodan sinyal gönderiliyor, iyi ürünse başka bir kablodan. Bu kombine makineler tasarlandığında doğru düzgün iletişim tasarlayacak zaman yoktu ve kısa sürede böyle basit bir çözüm üretildi. Bunun üzerinden yıllar geçmesine rağmen bu basit çözümü düzeltecek programı yazacak zaman bir türlü bulunamadı. Sistem de çalıştığı için bu düzeltmeye de gerek yok diye düşünüldü.
Müşterinin makinesini bu fonksiyon için şöyle ayarladık. Kontrol birimi terazi birimine hangi ürünün test ürünü olup olmadığını bir başka kablo ile bildiriyor. Bu bilgilerle beraber terazi test ürünlerini ana istatistikte ayrıca sayabilecek. Yani sayabileceğini umuyoruz çünkü asıl makinede test fonksiyonunu asıl kontrol eden modül yukarıda başka bir modül diye bahsettiğim modül. Yani kontrol birimi değil. Ayrıca bu planlanan konfigurasyonda da hesapta olmayan tek modül bu fonksiyonu kontrol eden asıl modül. Daha da kötüsü bu modül testle ilgili ayrı istatistikler de tutuyor, yani sonuçta doğal olan en küçük bir hatalı kararda iki taraftaki istatistikler birbirleriyle örtüşmeyecek.
Bu sorunları şefe ve diğer programcı arkadaşlara anlatıp kendi işimin başına döndüm. Tabii ki sonucun ne olacağı bilinmesine rağmen makine bu şekilde ayarlanacak. Ne de olsa müşteri kraldır. İstediğini hemen alacaktır. Ya da aldığını sanacaktır.