So far I have covered various articles on program, Project, Agile, Windows CE.
In this article, I would like to write something different about the embedded systems product development. This is same as any other development, but would differ some ways.
The typical statements you can hear in Embedded Project Management is as follows 🙂
1. There was a PM “x”, was requested by their “Product Manger” to get the embedded product with requirements of “xyz”. PM goggled and found of a OS “x” will get him/her with product delivered with optimum amount of duration. Again he got the “demo board” from the same OS firm. And produced final board/PCB [shippable product], then started his development. The product delivery took more than 5 years. The product went to market and returned back from customers, as product was buggy/failed.
2. Product manager/Sales has signed development contract with client “Y” within year. Finally product is released after two years of development efforts. As it is fixed price firm has to spend extra time and efforts.
3. In order to get contract Senior Management promised to deliver the “Mobile based tracking system” at very low cost. But the developmental costs have become more. Due to complexity project the team started leaving the firm, finally firm has to pay penalties, as could not meet the product deadlines
I will stop writing on failed cases; let us analyze what went wrong on each case.
a. The PM developed final version of hardware, rather than making intermediate veriosn of the hardware, so that he can complete the entire development portion before he moves into “final version of hardware”. As final version did not have “debugging capabilities” built in. So the developers worked hard to keep the “Print’s” (Print statements) to see the progress. Also the
b. The OS/Application principles are not followed.
· The Application developers blocked all the interrupts while entering the Application level. There by the Multithreaded OS has become into single threaded OS.
c. The industry testing principles were not followed
d. The PM assumed as he has selected best OS for product line, he would get lot of skilled resources. But he failed to mobilize them
· In the case of Embedded development side, the estimation techniques [ Cocomo ] and [Function Points] may not work properly.
· The skilled resources that can do specific work on OS, Device drivers, and different application will be difficult to get.
Case 3: The complex systems, which need to be estimated properly before quoting, if the estimation is wrong, the losses for development company’s will be more compared to gains.
1. Hire/get PM and experienced resources who can do estimates. If you donot have same skills, outsource them.
2. Get every one on the same page while quoting to the client. No compromises and scarifies.
3. Have enough buffers of skilled resources
4. Estimate, Estimate, Estimate.
5. Use different estimation algorithms to come final estimation, before sending quote to customer.
[ @Pune 23rd Dec 2008]