Structuring an agile embedded software development project - life amongst the engineers

location_city Melbourne schedule Jun 30th 11:30 AM - 12:15 PM place EN 308 (C40) people 18 Interested

The author worked on a medical technology product development project at an R&D house, working as a team lead for software in multi-disciplinary project, for an overseas corporate client.  The usual mundane challenges of a highly technical software project ensued - aggressive timelines, fixed price contract, a remote and demanding client, no dedicated business analyst, no dedicated software QA, 400 or so abstract software requirements written in a long software specification spreadsheet.

On top of this, as a non-technical agile practitioner your author struggled coming to terms with a highly technical project involving electronic engineers, industrial designers, medical scientists, and a new technical approach to emulating proprietary algorithms to conduct diagnoses on patient samples using a combination of fluid dynamics, surface chemistry, and the emulation of proprietary algorithms designed for use in a previous generation product using a completely different technological approach .  Yeah, I didn't know what all that meant either.

But that's just the context... what I really want to talk about is the challenges and lessons learned from applying Agile in a volatile organisational, compliance and contractually driven context, with the particular challenges of agile for embedded software (firmware).  This poses significant challenges in terms of writing meaningful stories, producing meaningful estimations, what happens when your hardware drivers don't work, rewriting software when the hardware changes, testing device software when you don't actually have a device.   In other words, all you people working in pure software/web have it easy.  

This experience reinforced my faith in agile principles and values, although I did have moments of doubt!   This talk will look at those principles and suggest ways that they can be better applied even in non-embedded software development projects.


Outline/Structure of the Talk

  • Intro - embedded software?
  • Environmental context - ways of working
  • Embedded software estimation - how not to do it
  • The team - to split or not to split
  • The team - to double or not to double
  • The team - to outsource or not to outsource
  • No time to test!
  • No time for quality!
  • Too much documentation????
  • Product development is hard
  • A cobbled-together conclusion

Learning Outcome

Some of the lesser known Agile principles and values are highly applicable to embedded software development - these are called out.

These principles and practices should also be considered when applying Agile to pure software development and even other business contexts.

Target Audience

developers, testers, agilistas, those interested in agile in slightly unusual contexts

Prerequisites for Attendees

Nice to have some experience of agile in software or embedded software contexts but not essential!

schedule Submitted 3 years ago