Jenkins	
  ユーザ・カンファレンス2012	
  
	
  
                                           2012/7/29	
  
                                 株式会社アトラクタ 原田騎郎	
  
原田 騎郎
 Kiro  HARADA

 アジャイルコーチ
 ドメインモデラー
 SCMコンサルタント

 Twitter:  @haradakiro

 認定スクラムプロフェッショナル
 認定スクラムマスター
 認定スクラムプロダクトオーナー
 株式会社アトラクタ  代表取締役
プラチナスポンサー	
  




メディアスポンサー	
  



シルバースポンサー	
  
¡  XFD	
  ってなに?	
  
¡  A	
  Brief	
  History	
  of	
  XFD	
  
   §  あんどん	
  
   §  ムダ取りの話	
  
   §  XFD	
  
¡  XFD	
  を作ろう	
  
   §  Arduino	
  を使って	
  
   §  デモ	
  
¡  XFD	
  を入れてみた現場紹介	
  
  §  アルティネット 西郡さん	
  
  §  ハウインターナショナル 高橋さん	
  
  §  スクラッチソフト 川路さん	
  

¡  現場の何が変わるか/変わったのか	
  
  §  自分でいじれる	
  XFD	
  のすすめ	
  
¡  XFD	
  のすすめ	
  
¡  Q&A	
  
¡  eXtreme	
  Feedback	
  
    Device	
  
¡  究極の      
    フィードバック  
    デバイス	
  
¡  不良や異常が発生した
 らラインを止める	
  

¡  異常状態にみんな気づ
 く	
  

¡  みんなで直す	
  

¡  品質を作り込む	
  
¡  Jenkins	
  さんは執事なのでめったに怒らな
        い	
  




	
  
¡  怒らない。	
  
    §  本当は怒っているかも
¡  作り過ぎのムダ	
  
¡  手待ちのムダ	
  
¡  運搬のムダ	
  
¡  加工のムダ	
  
¡  在庫のムダ	
  
¡  動作のムダ	
  
¡  不良をつくるムダ
¡  不良のあるソフトウエアを作り過ぎる	
  


 §  価値を減らすものを作る生産性を競う愚かさ
¡  作り過ぎのムダ	
  
¡  不良のムダ	
  




¡  不良を作り過ぎるのは究極のムダ	
  
¡  不良品を直すな、不良プロセスを直せ
¡  1週間に一度もビルドが壊れなかったら	
  

¡  それはよい兆候?	
  
¡  それとも悪い兆候?	
  


¡  なぜ?
http://commons.wikimedia.org/wiki/File:1924_Non-­‐Stop_Shuttle_Change_Toyoda_Automatic_Loom,_Type_G_1.jpg
¡  忙しいときに動かない。	
  
¡  本当に必要なときに。	
  




   自働化する!
¡  ラバランプとか	
  
¡  パトライトとか	
  
¡  バットマンとか	
  
¡  ダンボー君とか	
  




                                                       ©	
  by	
  Patlite	
  
                  http://www.patlite.co.jp/product/detail.php?i=880
元チーム角谷 芦沢さん作	
  
http://objectclub.jp/community/xfd/
 
Websocket	
  Notifier	
  Plugin	
  by	
  @mzp	
  
http://d.hatena.ne.jp/mzp/20110612/jenkins
¡    PC	
  がなくても動かしたい	
  
      §  開発が佳境に入ると	
  PC	
  が重くて動かなかったり	
  


¡    なるべく安く	
  

¡    自分で機能を変えられる/改造できる	
  

¡    自分の道具は自分で修理/手入れをしよう
¡  オープンソースハードウェア	
  
 §  AVR	
  マイコンボード	
  
 §  Arduino	
  言語と統合開発環境	
  
     ▪  アセンブラで書かなくても大丈夫	
  
 §  豊富な入出力と拡張性	
  
     ▪  Ethernet	
  Shield	
  で	
  TCP/IP	
  を喋れる	
  


 §  http://www.arduino.cc/
void	
  setup()	
  {	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
	
  	
  //	
  デジタル13ピンを出力用として初期化	
  
	
  	
  //	
  13ピンには、LED	
  が接続されている	
  
	
  	
  pinMode(13,	
  OUTPUT);	
  	
  	
  	
  	
  13ピンを出力用にする	
  
}	
  
	
  
void	
  loop()	
  {	
  
	
  	
  digitalWrite(13,	
  HIGH);	
  	
  	
  //	
  LED	
  点灯	
  
	
  	
  delay(1000);	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
   	
   //	
  1秒ウェイト	
  
	
  	
  digitalWrite(13,	
  LOW);	
  	
  	
  	
  //	
  LED	
  消灯	
  
	
  	
  delay(1000);	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
    	
  //	
  	
  1秒ウェイト	
  
}
¡  Arduino	
  Uno	
  
¡  Arduino	
  Ethernet	
  Shield	
  
¡  リレーコントロールキット(KIT-­‐10733)	
  
¡  キセノンフラッシュランプ	
  


¡  Jenkins	
  Remote	
  API	
  (JSON)	
  を叩いて最新の
 ビルド状態を取得	
  
  §  UNSTABLE	
  /	
  FAILURE	
  だったらランプ点灯
¡  出力ピンの一つで
 リレーを制御	
  

¡  リレーで	
  
 フラッシュの	
  
 スイッチをオン
¡    扱いたい情報のある	
  URL	
  に	
  “/api/”,	
  “/api/xml”,	
  
      “/api/json”	
  を足してみる。	
  
¡    最新のビルド状態を取得	
  

      §  http://example.com/job/projectA/
        lastCompletedBuild/api/json?tree=result	
  

      §  {“result”:”SUCCESS”}	
  
      §  {“result”:”UNSTABLE”}	
  
      §  {“result”:”FAILED”}
Ethernet.begin(mac,	
  ip);	
  
Client	
  client(server,80);	
  
Serial.begin(9600);	
  
	
  
Serial.println("connecting...");	
  
	
  
if	
  (client.connect())	
  {	
  
	
  	
  Serial.println("connected");	
  
	
  	
  client.println("GET	
  /job/project/lastCompletedBuild/api/json?tree=result	
  HTTP/1.1");	
  	
  	
  	
  
	
  	
  client.println();	
  
}	
  else	
  {	
  
	
  	
  Serial.println("connection	
  failed");	
  
}	
  
	
  
        	
  
        	
 
                                                      https://github.com/haradakiro/arduinojenkinsxfd
¡  Arduino	
  Ethernet	
  
¡  Arduino	
  ユニバーサル基盤(UB-­‐ARD01)	
  
 §  OMRONの小型リレー	
 +	
  キセノンフラッシュ
     ランプ	
  
 §  Aques	
  Talk	
  Pico	
  (ATP3010F4	
  –	
  音声合成)	
  
 §  小型サーボ	
  
¡  っf
←4歳
¡  Twitter:	
  @handazukecafe	
  
¡  http://handazukecafe.com/
Grove	
  Starter	
  Kit	
  
http://www.seeedstudio.com
¡  ARM	
  CPU	
  
¡  Linux	
  が動く	
  
  §  Ruby	
  も動く	
  
¡  Ethernet	
  ついてる	
  
¡  GPIO	
  があるので	
 Arduino	
  と	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 
  同様なデバイス接続もできる	
  

¡  今年の年明けに注文(確定注文は2ヶ月前)
  にしたけど、まだ来てない	
  ;_;
スパゲッティは	
  
ソフトだけじゃないのよ!	
  
¡  CI/CD	
  が壊れていることがみんな気になる	
  

¡  ビルドが遅いのがみんな気になる	
  
¡  テストが遅いのがみんな気になる	
  
¡  テストが落ちているのがみんな気になる	
  


¡  XFD	
  が壊れていないか気になる	
  
 §  XFD	
  もチームで直す、改造する
¡  ○×な	
  Web	
  ページ見れば分かるよ	
  
 §  実は見える化できていない	
  
 §  見ようとしなくても見えるように	
  


¡  確認しなくても分かるようにしましょう。
¡  つくったらぜひシェアしてください	
  


      Have	
  a	
  XFD	
  and	
  	
  
    Keep	
  Mr.	
  Jenkins	
  and	
  	
  
      Team	
  Members	
  
             Happy
¡    秋月電子通商	
  
      §  http://akizukidenshi.com/	
  

¡    スイッチサイエンス	
  
      §  http://www.switch-­‐science.com/	
  

¡    ストロベリーリナックス	
  
      §  http://strawberry-­‐linux.com/	
  

¡    マルツパーツ館	
  
      §  http://www.marutsu.co.jp/	
  

¡    共立エレショップ	
  
      §  http://eleshop.jp/	
  

¡    お近くの100円ショップ	
  
¡  Creative	
  Commons	
  (CC	
  BY-­‐SA	
  3.0)	
  
¡  表示	
  -­‐	
  継承	
  3.0	
  


¡  http://creativecommons.org/licenses/by-­‐sa/
  3.0/deed.ja

Jenkins に XFD を追加してみると