Tuesday, September 18, 2012

Software development for hardware devices

I have worked on bringing numerous software products to market while in CTS, and in HP, had the opportunity to play a leadership role in the development of an Enterprise Server which is obviously a hardware product. While the similarities between software product development and hardware product development processes are striking, it is much more interesting to talk about the challenges when you have a software team working on a hardware product, particularly when it comes to QA..

In a typical software product development process, the QA cycle would involve writing test cases, opening up the web/windows application and running the tests, logging the results and tracking the bugs. This is a straightforward process if planned well. Now, this process is similar when it comes to hardware products,  but there is one big obstacle..You need the actual physical hardware to do the tests properly and there are large dependencies on the hardware teams. Coming from a pure software product management background, this was a big change for me :)

If you have a bunch of software teams working on various hardware components - in my case I had 7 different teams writing software for the enterprise server that we were building, and they were distributed geographically - well, then you need a huge QA cycle, and the interplay between monitoring requirements, schedules, costs and maximizing productivity becomes particularly challenging. Some unique questions to ponder while designing the software testing processes for hardware devices:

1. Dependencies between the software and hardware development teams - this is important in hardware devices as the physical development might not proceed linearly, and will thus affect the software testing.
2. How many physical devices should you order for each test? Does the hardware development timeline align with this? Have you allocated enough budget for the build and shipping of the different physical devices?
3.Communication processes between the different teams - this is always difficult, but gets exponentially complicated when you have teams in China, India, the US etc. and some are hardware folks, and some are software and thus speak different languages, both literally and figuratively.
4. What are dependencies on external vendors? Many hardware devices align to release schedules of chips and processors that companies like Intel develop, and this may or may not align with your schedule

There are more issues one should consider, but these are the big ones.

No comments:

Post a Comment