Advanced Feedback-driven Development

For any non-trivial project: Software development should be considered a continuous learning process and a cooperative game of communication between professionals. Effective software development can be achieved through frequently repeating cycles of preparing, changing, observing, reflecting, and learning.

While the statement above is obvious to many, it is easy to miss the key points. For instance, you must make sure that you facilitate the learning process by implementing effective feedback mechanisms, do frequent iterations and be willing to re-plan the project continuously. You must also implement information radiators, enable osmotic communication, and get rid of things that hinders communication (yes, I am a fan of Alistair Cockburn). But first of all, you must assume that your developers are professionals that know what to do given a vision, trust and enough information. You should certainly not treat your developers as mere resources that need to be directed and told what to do and how to do it.

I am fortunate in that I work for a company that really gets it. I invite you to take a look at these slides. The key thing that this particular project do better than most is to do fast and automatic testing on all levels which gives developers confidence when making changes. Automatic feedback from all levels was a key success factor to get the first version out of the door, and now we have a workflow that will support further development for years. I think it make sense to describe what we do as advanced feedback-driven development – AFDD.

3 Responses to Advanced Feedback-driven Development

  1. Anders S says:

    Very interesting and inspiring. “Soft” software is hard enough, doing this with hardware is just incredible. Keep them coming. :)

  2. Siddharta says:

    Nice slides. I once tried agile with embedded devices in a startup and found it very hard – memory leaks, pointer mangling etc very tough to find with unit tests and then issues of emulator not matching up to hardware etc. Really like the developer workflow and feedback that you got there.

  3. JuergenS says:

    Hi Olve,
    well written, very valuable inside view into the embedded world. The title of your blog entry captured the most important issue, it’s all about feedback and I would like to add “transparency”. Everyone needs to know where the project is and this WITHOUT status meetings because status meetings just eat time….it is better to discuss in the meeting the next obstacles and how to get around. But for this you need transparency and a high sophisticated (preferrable higly automatic) feedback system.