Bir cihazın yazılımını tarif ederken sadece normal çalışmayı düşünmek kolaydır: sensör değerini oku, ekranda göster, gerektiğinde motoru çalıştır. Oysa kullanıcı deneyimini çoğu zaman açılış, bağlantı kesilmesi veya yanlış veri gibi durumlarda verilen tepkiler belirler.
Bir iş gününü anlatır gibi başlayın
Cihazı kullanan kişi ilk olarak ne yapacak? Hangi düğmeye basacak, ne görecek ve işlem ne zaman tamamlanmış sayılacak? Bu sırayı gündelik dille yazmak, bir özellik listesinden daha anlaşılır bir başlangıç olabilir. Kullanıcının teknik bilgi düzeyi de arayüzü etkiler.
‘Cihazı açınca hazır olduğunu göreyim. Başlat düğmesine bastığımda ölçüm yapsın. Sonucu ekranda gösterip kaydetsin. Sensör bağlı değilse işlemi başlatmasın ve anlaşılır bir mesaj versin.’
Bu bir örnek ihtiyaç anlatımıdır. Uygulamaya göre neyin ölçüleceği, ne kadar sık okunacağı ve hataların nasıl anlaşılacağı ayrıca belirlenir.
Normal akışın dışını da konuşun
- Cihaz açıldığında hangi durumda başlayacak?
- Elektrik kesilip geri geldiğinde kaldığı yerden devam etmeli mi?
- Sensör verisi gelmezse veya beklenen aralığın dışındaysa ne olacak?
- Bilgisayar ya da ağ bağlantısı kesilirse hangi işler sürdürülebilecek?
- Kullanıcı hangi ayarları değiştirebilecek?
- İşlem bittiği veya hata oluştuğu nasıl anlaşılacak?
Hareketli mekanizma içeren sistemlerde güvenli duruma geçiş yalnızca bir ekran mesajıyla çözülemez. Gerekli donanım önlemleri ve kontrol mimarisi kullanım riskine göre birlikte değerlendirilmelidir.
Mevcut sistemin sınırlarını belirtin
Kullanılan kart veya cihazın modeli, bağlantı biçimi ve varsa mevcut kod, değişiklik kapsamını anlamaya yardımcı olur. Kaynak kodu bulunmayan bir sisteme müdahale ile kendi yazılımınıza özellik eklemek aynı iş değildir. Erişim bilgileri veya şifreleri ilk talep mesajınıza eklemeyin; gerekli paylaşım yöntemini ayrıca belirleyelim.
‘Çalışıyor’ demek için bir kontrol listesi hazırlayın
İstekleri gözlenebilir sonuçlara dönüştürün: düğmeye basınca hangi işlem başlayacak, veri nerede görünecek, hangi durumda uyarı verilecek? Kabul edilebilir tepki süresi veya ölçüm aralığı gibi sayısal sınırlar gerekiyorsa bunlar tahminle değil, ihtiyaca göre belirlenmelidir. Kontroller gerçek donanımla yapılacaksa kullanılacak donanım sürümü de belirtilmelidir.
Teslim ve sonraki değişiklikler
Yüklenmiş çalışan yazılım, kaynak kodu, derleme veya yükleme yönergesi ve kullanıcı açıklaması farklı teslim kalemleridir. Hangilerinin verileceğini; kullanılan kütüphanelerin lisanslarını, güncelleme ve destek kapsamını teklif aşamasında konuşmak ileride belirsizliği azaltır.
Arduino tabanlı bir çalışma düşünüyorsanız resmi programlama belgeleri teknik ayrıntılar için başlangıç kaynağıdır. İlk görüşmede kod yazmanız beklenmez. Cihazın nasıl davranmasını istediğinizi anlatmanız yeterli; projenizi buradan paylaşabilirsiniz.