In my company there are two java teams. One of them is using Agile process. I'm in another java team using a heavy process, which is used in the rest teams of the company. One day, the agile team gave us a presentation about Agile. The embeded team(the C guys) argues Agile may be suitale for the java applications, but not the embeded software. And they refuse to give it a try. Actually, there are some differences between embeded software and java/C++ applications. They take much time on investigation, documentation. They never write unite test.(At least in my company). And lots of tools used in Agile are for the OO world.(Like CruiseControl, CheckStyle, MockLib... I don't know if there are corresponding version in C) What do you think?
Agile development is largely technology-independent. Although good technology practices are important, they can be applied to just about any kind of project. Nancy Van Schooenderwoert talks about her experience applying agile development to an embedded, real-time, C/asm project here: http://www.ddj.com/embedded/193501924
Although the embedded team's technology isn't relevant to their using agile development, their refusal to try it is. Agile development is completely inappropriate for people who don't want to try it... so they're right--it's not a good choice for them.
(In contrast, some big companies force a standard method on all of their teams, regardless of whether they want to try it or not. Because agile development requires that participants be mindful and self-disciplined, I imagine a heavyweight process with lots of external controls would work better if you're forcing people to do something. But I wouldn't do it, because I think forcing things down people's throats is a terrible way to get good results.)
James Shore, coauthor of <a href="http://www.amazon.com/Art-Agile-Development-James-Shore/dp/0596527675" target="_blank" rel="nofollow">The Art of Agile Development</a>. Website and blog at <a href="http://www.jamesshore.com" target="_blank" rel="nofollow">http://www.jamesshore.com</A> .
Originally posted by Louis Wang: And lots of tools used in Agile are for the OO world.(Like CruiseControl, CheckStyle, MockLib... I don't know if there are corresponding version in C)
Those tools are in now way necessary to do Agile development - even not for a Java team. If at all, they are "nice to haves".
Agile development is not about tools. It's not even really about practices. It is about the values and principles you apply to come up with your practices and tools. And those apply to embedded development in the very same way, even if they might manifest in slightly different practices and tools.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus