Mike Yang from Hillsboro is the winner of the limited edition AgileSoC.com T-Shirt. It’s great to see people taking the time to offer an opinion and spur conversation about agile hardware development so thanks to everyone who posted. Maybe we’ll do it again someday ;).
In case you missed it, here’s Mike’s winning comment…
As Armando said, a large portion of HW development is SW development. But sadly in my experience I have still seen debate for those SWish portions. Most HW developers I’ve met don’t know SW development, and have never heard of Agile, Scrum, Extreme programming, etc. So getting a tops-down buy-in from HW project management can be interesting.
Educating and convincing the uninitiated is a difficult prospect since the problems that most teams are focused on are the technical problems of design/verification. Part of the issue is that of perception. The first impression of things like Scrum, pair-programming or TDD make developers feel like they are giving up autonomy with a dubious benefit. In fact, process overhead and micro-management were some of the most common complaints that I heard from management and HW engineers.
In addition to that, some challenges which I think are specific to the HW domain (though I’m probably wrong since I have limited exposure to the SW domain) are iteration times due to slow compilation (hours) and slow simulation (Hz), constraint checks (design rules, static timing, equivalence, etc.) and artifacts like simulating with an imperfect model for design requiring further checks and iterations (i.e. gate-level simulations, emulation). Waiting for results tends to encourage multi-tasking. Multi-tasking defocuses priorities and opens the door to work-in-progress at the end of every sprint.
On the flip side, I have seen some bright spots and even some success. Interns and recent college grads are more easily indoctrinated into the Agile-way. A couple of small teams doing Scrum delivered high-quality design and testbenches on a predictable schedule. The biggest thing was the grassroots effort to give Agile HW development an honest try. Once you’re doing it, then you incrementally whittle away at those (HW domain) problems.