Embedded Development is being influenced by the Renaissance. Many embedded tools and techniques are very advanced. But some areas lag the software development community at large. More and more functionality in embedded systems is moving into the software. Embedded software developers are feeling the pain their non-embedded brothers have encountered. To keep from getting bogged down, and having to reinvent effective techniques, embedded software developers can apply many of the lessons learned outside the embedded arena. Embedded developers can gain greatly by learning successful agile development practices
Many embedded software projects suffer from the problem of late projects and high defect levels; the dark ages for software development organizations. Some of these problems can be overcome by applying the design and development practices learned outside of embedded.
What's the problem? Everything is fine, isn't it?
Embedded software development is hard work and it does not seem to be getting any easier. Too often requirements are vague and constantly changing, schedules are fixed without concern for how much work there is to do, and everyone is getting burned out. Add on top of that the hardware is late and we're squeezing our needed integration and test time with every delay. You know we can't change the release date (at least not until we've past it). Maybe after four months of debug you find yourself saying "If we fix this one bug we can release. It's the last one. Next time we're going to do this right!" Then some time goes by and we get into the same rut. before you know it you're talking about doing it right the next time, again. I can see the overtime coming to get that "last" bug out.
We've all lived that project. The classic problems of vague requirements, unrealistic schedules and developer burnout have been the bane of software developers for years. For embedded development you can pile on another layer of problems like: concurrent hardware development, cross platform development, limited execution resources and real time constraints. Thankfully there has been some progress in the software development world on these classic software development problems. The software development community rediscovered iterative development and applied an interesting set of practices that support iterative development. This renaissance was first noted by the fervor caused by Extreme Programming. XP's provocative name raised the hair on many necks. A couple years later the renaissance got the less scary, corporate friendly name: Agile Development. Agile Embedded Development is one area where embedded teams can avoid some of the difficulties that come with both large and small development efforts.
Agile development practices come in two broad categories: planning and engineering practices.
|Last Updated on Monday, 14 May 2012 09:38|