Deep Agile 2009: Agile for Embedded Systems
Saturday, April 25, 2009 at 9:00 AM - Sunday, April 26, 2009 at 5:00 PM (EDT)
Deep Agile 2009: Agile for Embedded Systems
Sponsored by Agile Bazaar, New England's agile community hub
Join us for a two day deep dive into Agile practices for
embedded systems. We'll get beyond superficial prescriptions
and cookbook advice to understand how a methodology that
demands extreme flexibility can work in an environment known
for its rigidity. Jack Ganssle has the deep experience to
pose the kinds of challenging questions all embedded folk
want to ask, and James Grenning and Russel Hill have been
practicing embedded agile programming long enough to give us
answers grounded in experience, that is, *embedded*
Don't miss this first-ever single track, deep dive into Agile
for Embedded Systems. This event is all volunteer run so the
price will be affordable.
A Note regarding hardship discounts:
Agile Bazaar is committed to providing access to Deep Agile 2009
to as many people as possible. In light of the current economic
situation, a limited number of discounted hardship tickets are
available, priced at $75.00. These admissions include all event
activities. We make these available to those who are unemployed,
about to become unemployed, or who have some similarly difficult
circumstance. We will endeavor to increase this number as the
finances of the event allow, and we keep a waiting list of
those who inquire.
To inquire about the hardship discount please, use the Contact
link at the upper right of the page. We will respond by email as
quickly as possible. If we have an available slot, we'll provide
you with a discount code you can use for registration.
April 25 - 26, 2009 (Saturday & Sunday)
Maxwell-Dworkin Building, Harvard University
Preferred accommodations are available at the
Nancy Van Schooenderwoert, founder, Lean-Agile Partners
Jack Ganssle - One of the best-known authorities in the embedded world; veteran of over 100 embedded projects, author of six books, and hundreds of articles, Jack consults to NASA and to industry leading companies worldwide.
Jack's site: http://www.ganssle.com/
James Grenning - An original author of the Manifesto for Agile Software Development, James is a seasoned extreme programming coach and trainer, coaching his first XP team in 1999. James was trained by the guys that started it all. He's written many articles and speaks regularly at the Embedded Systems Conference and Agile conferences.
James' site: http://www.renaissancesoftware.net/
Russel Hill - currently a senior software engineer who has been using agile methods, especially test driven development (TDD) for the past ten years on his projects. He's a veteran of many years building complex aerospace systems for the US defense industry. Russel now develops embedded software for Key Technology, a world leader in automated inspection systems for the food processing industry.
Host: Nancy Van Schooenderwoert - Agile coach to embedded teams since 1998 and to financial services teams since 2005; founder of Lean-Agile Partners http://www.leanagilepartners.com/
Sessions - Day 1
Overcoming Embedded Challenges with Agile
Agile methods encounter extra challenges in the embedded world: Hardware development cycles are longer; test depends on hardware availability; applications have hard deadlines; many are safety-critical and highly regulated; customers are typically separated from development teams by distance or company boundaries. Our panel will field the tough questions - from our moderator and from attendees.
Agile Design and Test
Embedded systems are notoriously hard to test - and we don't test nearly enough. Agile teams use an array of test types, TDD being only one of them - we'll show others. These test efforts can appear to add a lot of extra overhead but when done well, they speed the work along more than enough to pay for the labor of creating the tests. We'll show you when to automate tests and when you shouldn't bother. Object oriented design is key, even for languages like C and assembler, which offer little support for it. Agile embedded testing has to cover hardware as well as software - we'll demonstrate it with real hardware.
Continuous Integration as Foundation for Speed
Integrating new code into the full code base at frequent intervals - usually many times per day - is the antidote to integration hell. It is also critical for keeping the code bug-free because bugs cannot gang up on you. We'll explore what continuous integration means for embedded software, and show you examples of it using live code.
Jack's Practical Tips for Building Real Time Embedded Systems
Most smaller embedded systems meet their real time requirements only by luck. We have few techniques that help us design a system that will be timely and predictable. This talk will show you practical ways to include time in your design, to help you produce a system that meets its deadlines, rather than beating a slow system into submission late in the debug stage. We'll examine the real speeds of common C constructs on various 8 and 16 bit CPUs, as well as faster alternatives to some compiler-supplied library routines. We'll examine some of the hype around multicore processors as well.
TDD in C: Doing It!
Watch as James and Russel start up a TDD session coding first on the PC and then on real hardware. Jack will rotate in as a newbie team member and pick up the technique. Attendees will join in offering suggestions, and all will gain new insights. To the extent practical we'll open it up to everyone with a laptop - and go for the world record for the most people in one room doing TDD in C! We'll wrap up with a summary and Q&A time.
Test Driving Next to the Hardware
Code that interacts with hardware can't be tested except in the target. Or can it? In this session we'll see how to test hardware dependent code, independent of the hardware!
Sessions - Day 2
Design by Contract
Design by Contract (DbC) is a well-known approach to building correct software by specifying functions' goes-intas, goes-outas, and invariants, in the code itself, so that errors get detected automatically at runtime. Yet it's almost unheard-of in the embedded industry. Worse, procedural languages like C offer none of the built-in DbC support given by Eiffel and similar languages. Yet the notion of automatic error checking, of guaranteeing that functions fulfill their promises, is so powerful that we firmware folks must find ways to use DbC in our code. This class shows how to use DbC and similar ideas in embedded applications, in particular in C.
Teamwork: the Prerequisite to Team Autonomy
Agile teams are self-organizing. They make the technical decisions and carry them out. But what happens when people cannot agree? And how can a group really be accountable? Where are the limits of the team's authority? This session gives you stories of how real teams resolved (and failed to resolve) teamwork issues.
Incremental Delivery: Impossibility or Opportunity?
Agile methods demand collaboration between supplier and customer through incremental delivery of features, but what if your customer won't play? What if your product is 'all or nothing' in nature? This session will help you understand the place incremental delivery and fine grained scope control (stories) in an embedded environment.
Case Study: Keys to Agile Success at Key
This presentation will describe how an agile team at Key Technologies planned and executed their embedded project, including
- The relationship between this project and the larger system
- Notable choices made early in the project
- Interactions between EEs and Software Developers
- A history of the project: Important events and milestones
- Bug reports
The project preceded a split in the work where the team operated across two locations for some time. We'll explore the problems this created and the surprising changes it prompted the team to make. You'll find out what it's like day-to-day being part of an agile embedded team.
The big Hairy Monster: Legacy Code
Few have the luxury of a "green field" project, free to use modern methods for all the code from day one. A mass of buggy, poorly documented existing code is a millstone around your neck that cannot be ignored. This plagues every type of software project. We'll examine the extra headaches it gives embedded systems and how real teams have successfully conquered this beast. We will demonstrate techniques for adding tests and improving the design of existing software.
Things That Count Can't be Counted - or Can They?
What metrics are needed to support embedded systems development? What metrics are needed in an agile context to support embedded devlopment? Metrics are a slippery slope, no matter what software development technique is used. But defect density can be measured. So can complexity, and other things. Get practical advice on what to measure, and what numbers to aim for.
Agile Do or Don't
Role play session: Jack is a CEO who has just attended this seminar but still has his doubts. James is a consultant Jack hired to answer questions about applying Agile to his organization. We'll collect questions from the participants for Jack to express, in addition those he already has after participating in the seminar.
|GOLD LEVEL SPONSORS
|Silver Level Sponsors|
|Branze level sponsors|
When & Where
New England's agile
Hardship Discounts Available for Deep Agile 2009
Due to strong sponsorship and great speakers, our Deep Agile event for April 25-26 has passed the "break even" point. As a community based nonprofit professional group we can now afford to help more people attend this first of its kind event. In light of the current economic situation, we are offering discounted hardship tickets, priced at $75.00.
These are available to those who are unemployed, about to become unemployed, or who have some similarly difficult circumstance. Don't wait - it's first-come-first-served and we aim to fill the venue completely. Please contact us to request a hardship discount.