開発現場ではソフトウェアのテストやデプロイの自動化にCIツールを導入してます。
CIツールでエラーが発生すると、メールやSlack等でエラーの通知を受けられますが、
いずれも能動的に通知を確認する必要があるので、エラーが発生していることに気付くまでに時間がかかったりします。

そんなプロダクトの状態をいち早く確認でき、エラーの検知を誰にでも分かる形で行うのを
支援するツールがXFD(Extream Feedback Device)です。

今回は e-ZUKA Tech Night で知り合った九州工業大学の学生さんにRaspberry Piを使ったXFDを作ってもらいました。(もともとarduinoベースのXFDがあったんですが、Linuxが載るRaspberry Piの方がいろいろとメンテしやすいので)

IMG_20150311_153044

JenkinsはREST APIで各ジョブの情報が取得できるので、監視したいジョブのlastbuildのステータスを定期的に監視し、失敗していたらランプが点灯し踏切音がスピーカーから流れるようになってます↓

20150319_180542

中身は↓な感じ

IMG_20150311_153436

Raspberry Piに付いているGPIOでランプの点滅を制御するようになってます。

テストが失敗している状態はプロダクトの品質が担保できていない状態です。
チーム開発でそんな不安定なコードベースを放置しておくと他のメンバーの開発にも影響がでるので、できるだけ早くエラーを検知して修正するというプロセスが大事です。

ということで他のプロジェクトにも適用できるよう量産したいなー。