Agile Tour HCMC 2012. Kiro HARADA Agile Coach Domain Modeler SCM Consultant Twitter: @haradakiro

Preview:

Citation preview

eXtreme Feedback Devicefor your CI with Jenkins

Agile Tour HCMC 2012

株式会社アトラクタ 原田騎郎

原田 騎郎Kiro HARADA

Agile CoachDomain ModelerSCM Consultant

Twitter: @haradakiro

Agenda

What is XFD? A Brief History of XFD

Andon How to Eliminate Muda XFD

Create your own XFD XFD w/Arduino Demo

What is XFD?

eXtreme Feedback Device

Make Abnormal Condition Visible for Everybody Stop the line if abnormal

condition happens. Prevents defects go through the line.

Everyone knows

Everyone fixes

Build Quality In

Without XFD

How do you know if your build fails?

You may have build history like:

7 Muda / 7 Wastes

Transportation Inventory Movement Waiting Over-processing Over-production Defects

Over-producing Software with Defects

Delivering two Muda at the same time

Competing Productivity of Defected Products

Stop!

Over-production Defects

Do not fix the product. Fix the process.

Do not pretend you’re OK.

If there’s no broken builds for a week;

Is it a good symptom? Or a bad one?

Why?

Toyoda Type G Loom

http://commons.wikimedia.org/wiki/File:1924_Non-Stop_Shuttle_Change_Toyoda_Automatic_Loom,_Type_G_1.jpg

If you do not have Autonomated XFD?

It doesn’t work if you are busy. It doesn’t work when really

neccesary

Autonomate!

Various XFDs

Patolites Lava Lamps Batman? Dolls?

© by Patlitehttp://www.patlite.co.jp/product/detail.php?i=880

元チーム角谷 芦沢さん作http://objectclub.jp/community/xfd/

Gacksy

iPad/iPhone can be your XFD

Websocket Notifier Plugin by @mzphttp://d.hatena.ne.jp/mzp/20110612/jenkins

Build your OWN

Use only available / affordable parts

Build and modify features

Sharpen your saw.

Arduino

Arduino

Open Source Hardware AVR based microprocessor board Arduino IDE is available▪ Assembly is optional

Easy to expand▪ Ethernet Shield can talk TCP/IP

http://www.arduino.cc/

Arduino Code Example

void setup() { // Initialize pin13 as digital output. // pin13 has LED connected onboard pinMode(13, OUTPUT); }

void loop() { digitalWrite(13, HIGH); // Turn on LED delay(1000);   // Wait for 1 sec. digitalWrite(13, LOW); // Turn off LED delay(1000);    // Wait for 1 sec.}

Configuration

Arduino Uno Arduino Ethernet Shield Relay Control Kit (KIT-10733) Xenon Flash Light

Get the latest status via Jenkins Remote API (JSON) Turn of the Flash if UNSTABLE / FAILURE

Connect the wires

An output pin controls the relay.

The relay controls the flash light.

Jenkins Remote API

Most of Jenkins information is available via API.

URL to get the latest build

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

{“result”:”SUCCESS”} {“result”:”UNSTABLE”} {“result”:”FAILED”}

Arduino Code Example

https://github.com/haradakiro/arduinojenkinsxfd

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");}

Some Soldering Work

っ f

Soldering is Fun

← 4 years old

Software Engineers can solder.

Twitter: @handazukecafe http://handazukecafe.com/

Alternative to Soldering

Grove Starter Kithttp://www.seeedstudio.com

Demo

Raspberry PI ?

ARM CPU Runs Linux

Runs Ruby Built in Ethernet GPIO to connect devices

Raspberry PI Prototype

Hardware can be spaghetti too

What XFD can bring to your team

Everybody knows if CI/CD is broken

Everybody concerns slow build. Everybody concerns slow tests. Everybody concerns test failures.

Everybody concerns XFD Team fix and modify XFD

Confirmation work is Muda

Web page available is not good enough The information is not visible Make it visible to everybody

Make it visible so that no action is necessary.

It’s your turn to build XFD

Please share if you build a new one.

Have a XFD and Keep Mr. Jenkins and

Team MembersHappy