Friday May 25 is Embedded Day at XP2012! Be sure to register for the full conference five days in order to attend Embedded day.
Embedded systems development suffers from many of the same problems as software developed for the desktop and the web: inconsistent delivery, unrealistic expectations, defects late in the development cycle and burned out individuals and teams. At the same time, embedded work has some unique challenges: cross platform development, hardware/software/mechanical integration, real time constraints, and product safety to name a few. These challenges seem to rule out an Agile approach, but real embedded systems teams have been succeeding for years with Agile practices.
XP 2012 "Embedded Day" will give you hands-on learning in two key areas:
- How Test-Driven Development works to ensure that a team's "burn rate" matches up with completion of high quality, demo-able features: You won't be be blindsided by discovering that the product is 20% done while budget is 80% gone
Above: James Grenning conducting TDD workshop.
- Hardware development has important differences from software development, and the "Hardware Kanban Game" offers a simulation that shows you how the Lean principles still hold for both - and how you can get higher throughput for the same level of effort.
Above: Players of Nancy Van Schooenderwoert's "Hardware Kanban Game" make their moves.
Agile principles do not have to be watered down or compromised when you are faced with the challenges of embedded systems development. On the contrary, they truly shine in complex situations where there is too much uncertainty for sequential processes to work.
Embedded Day will answer these questions:
- How can we make progress on the software when the hardware won’t be ready for months?
- What does Lean Product Development have to do with Lean Manufacturing?
- Our engineers are specialists, how can we deliver features and show progress when the platform is not ready?
- How do we use TDD and automated acceptance testing without a lab full of specialized equipment?
- What is continuous integration in an embedded product development effort?
Get the most from Embedded Day by learning how to break up your project into right-sized chunks for Kanban flow [Workshop: The Art of Slicing Features and Epics into Playable Stories]. Understand how Agile teams navigate regulatory environments [Panel: Safety Critical Software]; how Agile affects the wider company [Agile Development within the Corporation]; How to make your contracts support an Agile approach [Panel: "Agile" Contracts]. All these and more are offered in the main conference leading up to Embedded Day on Friday, May 25th.
The XP2012 conference will address these related questions:
- How do we get meaningful customer feedback before it is too late?
- How do we deal with regulatory issues? What will my compliance team say?
- How do I turn product requirement specs into stories? Do I have to?
- We work under a contract that forces us to plan up-front: how can we plan incrementally?
- How will incremental planning and delivery help when there is no incremental delivery possible?
Help spread the word! Download our flyer and show it to your friends.
Above: The two workshops that make up Embedded Day at XP 2012 conference.
Test-Driven Development for Embedded C/C++
James Grenning (Tutorial, 3 hours) Friday 8:30
Test-Driven Development is the core of the XP technical practices. With TDD, programmers get instant feedback that their code does what they intend. Rumor has it that TDD cannot be used for developing C, let alone embedded C. The rumor is wrong! TDD can be used effectively for all forms of C. In this tutorial attendees get first-hand experience at TDD, writing well tested code in the challenging world of C. Attendees see how to break dependencies on the target execution environment enabling embedded code to be effectively test-driven. You will see how TDD helps to prevent many bugs and memory leaks from ever making the bug list. We'll use CppUTest, an open source test harness, is used to collect, organize and automate C++ unit tests.
Many of the challenges in embedded development stem from the target hardware bottleneck. The bottleneck slows progress of the embedded software due to non-existent or buggy hardware, and the inefficiencies of cross-platform development. The tutorial shows how to effectively use TDD and object oriented design techniques to overcome the target hardware bottleneck.
Bring your laptop or pair with one of the other attendees. We'll help you get ready at the tutorial, but it would be best if you did some setup before. Please register at www.renaissancesofteware.net using course code XP2012. You will find computer and setup instructions under Resources in Conference Attendee Extras.
Audience: This tutorial is designed for embedded software developers, technical leaders, software architects, firmware developers. They should attend to see how this valuable development practice is used to create high-quality embedded software at a predictable pace. If you program in C or C++, but not embedded, come anyway. No embedded experience necessary.
Hardware Kanban Game
Nancy Van Schooenderwoert (Tutorial, 3 hours) Friday 13:00
Hardware development work has a physical aspect that makes controlling the flow especially difficult, such as long-lead items, deep specializations among team members, and having outside vendors build custom components.
For these reasons hardware development work is different from software development and some say that’s why Agile methods cannot work for hardware development. This is incorrect. Agile methods are compatible with Lean queueing theory: By dividing the work stream into chunks, you can achieve higher throughput for the same amount of labor if you reduce the amount of work-in-progress.
Sound incredible? It is counter-intuitive. That’s why simulation is such a powerful way to explore the behavior of a hardware development Kanban system. Nancy has designed a version of the “getKanban” software board game to model hardware development workflow. As a player, you can work in your specialty or help in another skill, though you are less productive there. You can change task priorities, expedite key stories, or reduce ‘technical debt’, but you must obey the WIP (work in progress) limits!
You'll see how the Kanban rules drive behaviors that you never would have expected by analysis alone. The game lets you live the action and make the day-to-day decisions. Participants track daily progress using a Control Chart, a Cumulative Flow Diagram, and Financial Summary chart. The effect of your choices such as increase queue sizes, reduce work-in-progress limits, expedite some work – are seen graphically in the charts. This is a very engaging way to experience core lean ideas.
Audience: Technical leads (both hardware and software), project managers, product managers, functional managers, analysts, and development team members.