3/15/16
1
© 2015-16 Lean-Agile Partners Inc. All rights reserved.
Yes, Hardware Can Be Agile!
Nancy Van Schooenderwoert
http://www.leanagilepartners.com/ [email protected]
1
Boston SPIN, 15 Mar 2016
Nancy V’s Background n Electrical Engineering and Software Engineering for embedded
systems n 15 years safety-critical systems development experience n Since 2002: Agile coaching of teams and managers in
regulated industries n Industries: Aerospace, Medical Devices, Sonar Weaponry,
Scientific Instruments, Industrial Controls, Financial Services n Author of papers and articles on Lean and Agile methods for
engineering work n Frequent presenter at Agile-related conferences worldwide n Past president of Agile New England, current ANE board
member
2
3/15/16
2
Topics
3
n Hardware roots of “Agile” n Agile Engineering: examples n Team composition mirrors workflows n Want predictability? Or fast learning?
In the beginning…
4
Ward C. early embedded work: http://code.fed.wiki.org/view/welcome-visitors/view/coding-portfolio/view/tektronix/view/multi-processor-debugging
n 1977 Ward Cunningham testing early microprocessors – forerunner of TDD (Test-driven development)
n 1980 Kent began working with Ward at Tektronix
n 1999 ‘Extreme Programming Explained’ by Kent Beck
I came to a conclusion that you had to get the machines to tell you what they were doing. And that if you wanted to trust what you got the machines to tell you, that part had to be very simple.
3/15/16
3
Topics
5
n Hardware roots of “Agile” n Agile Engineering: examples n Team composition mirrors workflows n Want predictability? Or fast learning?
FPGA example
6
n Field Programmable Gate Array
FPGA chip on ckt board
Inside the chip
Inside each circuit
3/15/16
4
FPGA circuits ‘wired’ by s/w n Separate circuits on the wafer are connected
by statements in HDL, a type of s/w
7
Hardware Description Language (HDL)
FPGA circuits ‘wired’ by s/w n Changes to the FPGA can take a few minutes to a
few hours
8
n FPGA Reprogrammed - new bitfile downloaded in seconds…
n Bitfile is rebuilt: this changes the circuit connections, takes time
n Result: h/w can do the work faster than s/w – by orders of magnitude
3/15/16
5
Writing a unit of HDL code…
9
OK?
Write HDL
START
Download bitfile to FPGA circuits
Check circuit Behavior manually
Done with this Unit test
N
Y
Before Agile
Red lines indicate “high traffic” flows.
OK?
Write HDL unit Test that fails
START
Download bitfile to FPGA circuits
Check circuit Behavior manually
Done with this Unit test
N
Y
Write HDL (tiny)
OK? N Y
After Agile (TDD)
HDL testing…
n Write the HDL code n (optional) simulate the HDL
n Deploy to the FPGA circuitry n Check the circuitry behavior
manually n Very time-consuming
10
n Write the HDL code n Write a unit test in HDL n Ensure unit test fails n Write HDL code n Ensure unit test passes
n Deploy to the FPGA circuitry n Check the circuitry behavior
manually n Much faster
Before Agile After Agile (TDD)
Result: have code Result: have code and tests Using SVUnit TDD framework
SVUni
t
3/15/16
6
Agile Car example n Wikispeed 100 mpg car built by volunteers n Agile ‘software’ practices used:
n Pairing n Swarming n TDD (Test-driven Development)
11
Source: www.wikispeed.com
Modularity is key n Modularity à dependency management n Car made of 8 modules n New release weekly
12 Source: www.wikispeed.com
3/15/16
7
Example: Grain Monitor System
13
n Measures protein, oil in corn, wheat, etc. in seconds, in the field
n Evaluated for medical application
n New science, new CPU, new OS port, new NIR sensor, new algorithm…
n Agile team delivered 1st field units in 6 months
n In 3 years – 60+ s/w iterations, n approx. 9 electronic iterations n approx. 5 mechanical iterations n 51 s/w defects post-unit-tests, 3 yr total
Spectrometer system
Iterations work differently
14
Time
Flex
ibili
ty
Mechanical H/W
Electronic H/W
Components Housings Special materials
Reprogram’ble (PLDs) On-site reconfigurable In-house reconfig’ble
User settings App s/w Operating Sys Software
■ Less frequent iterations for hard-to-change items ■ Aim for working hardware at each iteration boundary ■ Misconception: To be Agile, h/w dev has to fit inside of
2-wk or 4- wk iterations
3/15/16
8
Iterations work differently
15
Time
Flex
ibili
ty
Mechanical H/W
Electronic H/W
Components Housings Special materials
Reprogram’ble (PLDs) On-site reconfigurable In-house reconfig’ble
User settings App s/w Operating Sys Software
n Each junction gives tangible baseline each person sees
GMS Agile s/w helped h/w
16
n Only the s/w team was using Agile practices, but… n Frequent s/w releases created many more
opportunities to improve h/w-s/w interaction n Some measurements inconclusive due to voltages out of
range – so added s/w monitoring of h/w key areas
n Field problems that could not be isolated to one area (opto, sensor, electronics) could be investigated thru special s/w releases for troubleshooting
n Hand assembly of field units improved by downloadable collection of s/w drivers with command-line menu
n Result was h/w became more Agile “without trying”
3/15/16
9
Topics
17
n Hardware roots of “Agile” n Agile Engineering: examples n Team composition mirrors workflows n Want predictability? Or fast learning?
Example: Ops + Software team
18
n Ops people could only do ops stories n IT people could only do IT stories
OK’d by P. Owner Doing Ready Sprint
Backlog Done
Should they cross-skill? That would be usual coach advice.
Ops people
IT people In this case – NO!
3/15/16
10
Ex.: Physicists-turned-C++ coders
19
n Each member is physicist or mathematician n Each member is also a C++ experienced coder
OK’d by P. Owner Doing Ready Sprint
Backlog Done
Should they have cross-skilled? That would be usual coach advice. In this case – absolutely YES!
Hardware + Software team(s)
20
n Story board is divided…
Electronics Engrs
S/W people
OK’d by P. Owner Doing Ready Sprint
Backlog Done
But we’re still one team, now with different workstreams visible
This same mechanism can work for two cooperating teams
3/15/16
11
Lanes not independent
21
n Keep focus on whole features; don’t merely fit work to skill siloes
OK’d by P. Owner Doing Ready Sprint
Backlog Done
People pair to do their parts of features that span disciplines
Topics
22
n Hardware roots of “Agile” n Agile Engineering: examples n Team composition mirrors workflows n Want predictability? Or fast learning?
3/15/16
12
Predictability or Fast Learning
n FPGA example: Predictability
n Wikispeed Car example: Fast learning
n Most projects: Predictability for coordination, Fast learning to handle unknowns
23
Predictability or Fast Learning n Everyone thinks they want predictability
n Increasingly, I believe they all really need fast learning
n “Instead of freezing the ocean, learn to ride the waves”
24
and
3/15/16
13
Contact info
25
Nancy Van Schooenderwoert LeanAgilePartners
@vanschoo
§ Lean-Agile coaching for software and hardware teams
§ Safety-critical, regulated coaching is our specialty
§ Lean-Agile coaching for stakeholders and senior managers
Services
References & Further Info REFERENCES: n Neil Johnson, TDD And A New Paradigm For Hardware Verification, Proceedings of the Agile 2012 Conference, 2012 n TDD framework by Neil Johnson: SVUnit framework, http://www.agilesoc.com/open-source-projects/svunit/ n Wikispeed Project: www.wikispeed.com
FURTHER INFO & Credits: More examples of Agile hardware: N. Van Schooenderwoert, “Yes, Hardware Can Be Agile!”, InfoQ, March 2015, http://www.infoq.com/articles/hardware-can-be-agile Discussion of Agile for predictability vs. Agile for fast learning; Jeff Patton, “Common Agile Isn’t for Startups”, http://jpattonassociates.com/common-agile-isnt-for-startups/ More on Extreme Manufacturing (XM); Peter Stevens, Blog Extreme Manufacturing 10 Principles, http://www.scrum-breakfast.com/search/label/xm Experience report from GMS project: ‘Embedded Agile Project by the Numbers With Newbies’ paper by N. Van Schooenderwoert. Available no charge at http://www.leanagilepartners.com/publications.html Surfer photo: By The Last Minute (Flickr) [CC BY 2.0 (http://creativecommons.org/licenses/by/2.0)], via Wikimedia Commons; used unchanged. Wikispeed photos used with permission of the Wikispeed Project. Snail drawing by W. H. Dall (1845-1927)
26