In one of my previous articles, I talked about using Project Management in Mobile software development. Here, I want to share about managing projects in embedded technology environments.
Here again, it would be prudent to mention that the Project management processes i.e., the overall 5 core process groups of initiating, planning, executing, monitoring & controlling, and closing remain fundamentally the same. What changes is how we approach towards handling the type of project at hand. In this article, say, we shall look into managing the SDLC for an embedded system, which is better known as “Embedded Software Development Life Cycle”.
Let us relook at these 5 core processes and the knowledge areas specific to embedded technologies and how subtly they are different than handling software or mobile software development.
In case of embedded systems, the project charter again has the same importance as in any other project of putting in high level requirements, the reason and justification of the project, the assignment of project manager and the high level risks. Identification of stake holders is equally important here, especially because we are dealing with systems that run on a restricted environment with limited memories and constraints to help run bigger systems/ software/ hardware etc.
The integrated project management plan must cover all major areas of scope, time, cost, quality, risk, procurement etc. The scope here becomes more critical since one is dealing with specific functionalities that need to be performed by the ICs and the embedded system as a whole to run a particular machine or hardware. With limited memory, constraints, time and budget one just cannot afford to gold plate here. This relates directly with the time and the cost involved in embedded systems. Quality just cannot be ignored as just one fault in the circuit can just blow things up. Here again, procurement of external components needs to be very precise, timely to ensure that the overall manufacturing and delivery of the IC components to the dealer or end customer (here it could be digital products of all types) happens on time and with high quality. Not to mention the importance of risk register that needs to be meticulously maintained and the risk tolerance clearly mentioned along with the risk impact and probability clearly assigned to each risk. I would rather state that risk management is the KEY in embedded systems as there will be many technical scenarios to deal with that can literally sabotage the entire project. We will see some examples as we move to the execution and monitoring process. The importance of communication cannot be ignored as embedded system development and troubleshooting requires the highest level of team work, communication with proper and effective escalation paths that really ensure that problems are resolved in real time.
The process of directly managing the executing process becomes very important. Let us take a real time scenario where an embedded system is being developed. The development team is coding based on the facts that the design phase is over and the low level designs are completed. The various memory maps are scaled out with utmost precision as per the scope and the configurations are set as per the scope management document. Now let us take an example that there arises some technical issue during development activity and the teams are called in on an urgent basis to ensure that the system does not collapse and thereby introduce rework, re-planning and end up with delayed timelines. The execution needs to be handled timely in a concerted effort, along with the technical manager getting the right guidance and inputs by the project manager. This is where simple techniques of motivational theories, conflict management applied across the organisation and projects, become serious. The risk register updates and proper escalation channels for effective resolution of the problem become highly important.
Monitoring and controlling process:
While the execution is in progress and the team is dealing with grappling situation on the work floor, the project is being tracked against the baseline. Various techniques like Fast tracking, Schedule compression become very important to ensure that the delays due to technical road blocks and challenges are being managed effectively without increasing the cost or risk. As the system is being tested, inconsistent hardware such as fluctuating performance levels because of external power supply conditions may practically destroy the embedded system being developed. Not only does this need to be handled by raising proper change requests and approvals through an effective integrated change control, but proper resource management and putting the right talented and skilled resources to fix such problems is equally important.
At every closing process/ phase, the system verifications, lessons learnt, sign off with the customer, and appropriate updates to all project management related docs, risk registers, etc. gain importance. At the end of every phase, it becomes crucial to record lessons learnt that would help future phases and projects. Here, the whole team comprising the project manager, the technical manager, the developers, testers and the management need to work as a team keeping in loop the customer at all times. So, project management for embedded systems is not only more critical, but also exciting which needs co-operation and real team work across the entire project and all stake holders.