Handling Project Management During Outsourced Software Development
Project management during outsourced software development / product engineering projects is not easy. Depending on the size of the project you work on, there are several aspects you need to ensure you and your development partner handle.
This is a general guide based on my experience handling formal, large scale outsourced software development projects.
I can pretty much guarantee you that your success depends on how well prepared YOU and YOUR development partner (vendor) are.
Both you and your development partner team need to understand that projects are designed to create unique products, services or results and are temporary in nature. The requirements for projects also undergo progressive elaboration, and all of these create a level of uncertainty in projects. The strategic relevance of projects cannot be undermined as they often address organizational or customer goals, which may not be possible within the normal working of the organization.
A broad Project Management Framework is therefore the philosophy guiding projects through the stages of initiation, planning, execution, control & closure. This framework is designed to encompass different methodologies and life cycles of project execution such as iterative, agile, prototyping, spiral or waterfall models. The system based on the framework consists of a set of techniques, methodologies, procedures, tools and resources to manage a project.
Initiation of a project involves a formal authorization to start a new project. Usually, this is preceded by other activities outside the boundary of the project, such as initial studies of feasibility, pre-sales and sales processes, a proposal is submitted with initial assumptions, dependencies and constraints, and an approved Purchase Order or Contract with Statement of Work (SOW) is received.
Project Initiation involves a high level definition of project, including capturing the business need / justification, initial identification of resources used including the project manager, the project methodology and system to be used. The information is captured by the Project Charter, and on its approval, the project gets official approval. Wherever needed, expert judgement or feedback from consultants, stakeholders including customers or sponsors, etc. are factored into the Charter. Approval and funding of project is usually done outside the project. A preliminary definition of initial scope is recorded here to initiate the project.
An Integrated Project Plan is developed to plan different processes that a typical project undergoes. During Planning, detailed steps for a project management methodology is confirmed, such as agile development, or a waterfall model, etc. Planning typically requires a project management system or tool for collaboration and feedback as the project plan is developed. A few tools which help the process is a Configuration management tool for version controlling and a Change Control System for managing changes. The typical process areas in a Project Plan are:
- Requirements management plan – This plan indicates the scope definition, verification and control mechanisms, and depicts how the work breakdown structure would be created.
- Requirements Definition – This involves creation of a detailed scope statement with the major objectives, description, project boundaries, acceptance criteria, assumptions, constraints and deliverables, which help in executing the project in the future. Detailed analysis of product with techniques such as product breakdown, value engineering, functional and value analysis, systems analysis are used for Requirements definition. Alternatives are identified by techniques such as brainstorming, expert opinion and lateral thinking. Moreover, needs and expectations of stakeholders are analysed to arrive at the exact definition of requirements.
- Work Breakdown Structure (WBS) – The major project deliverables are decomposed hierarchically into smaller components till work package levels at the lowest level for better control and assigning to the team members. Each work package level represents a service, product or result that can be independently verified. WBS templates from previous projects can be useful for working out the breakdown structure.
- Task Definition – Each component in a WBS is further elaborated into number of specific activities or tasks that can be individually estimated, scheduled, monitored and controlled. Task lists are generated with their attributes such as task identifiers, their codes, descriptions, predecessor or successor tasks, leads and lags.
- Task Sequencing – In order to understand the schedule for completion of the tasks, the tasks are to be sequenced by identifying and documenting the dependencies or logical relationships among them. A project management software is used for developing a scheduling or a network diagram with appropriate leads and lags.
- Resource Estimation – This exercise aims to estimate the type and numbers or quantities of resources required to perform each task. Effort is estimated per task with any of the estimation methods such as by expert judgement, available estimate data, organizational resource capability baselines, published data, estimation methodologies and using project management software.
- Task Duration – Based on the resource capabilities or expert judgement or past data, a task duration is obtained. Parametric estimates based on productivity rates of resources or three point estimates (most likely, optimistic and pessimistic) methodologies are couple of additional methods, which can be used. Usually a contingency period is added to the duration as a buffer for scheduled risk.
- Schedule – A project schedule or an iteration schedule prepared based on an analysis of task sequences, durations, schedule constraints and the resource plan. It can change over the project timeline and is used as a baseline against which a project can be tracked. Project Management Software is used, and analytical techniques such as Critical Path Method, Critical Chain Method, What-if analysis, Resource levelling and Schedule compression techniques are used to develop an optimized project schedule.
- Cost – An estimate of the costs is developed based on the resources planned to be deployed per task, and the task duration. Analogous cost estimation techniques based on past projects, determination of unit resource cost rates, parametric techniques using statistical relationships between historical costs and other variables (e.g. lines of code) are some methodologies to determine costs of tasks.
- Budgeting – The project budget is prepared by aggregating all the costs associated for the tasks or work packages. An overall budget is prepared and this is useful for funding requirements for the project.
- Quality – In order to determine the relevance of quality standards to be used for the project, and meet the quality requirements, a quality plan is designed. Quality planning uses techniques like benchmarking against other projects, determining the cost of investments in quality and computing the cost-benefit analysis.. The details related to metrics to be tracked, quality related checklists, improvements planned and quality baseline are delineated in the quality management plan.
- Staffing – Project roles, responsibilities, reporting relationships, the organizational hierarchy, are drafted as part of the HR plan. The project staffing plan is derived based on the HR plan, and includes plan for staff acquisition, time table, training needs, release criteria for resources, recognition of rewards, etc.
- Project Communications – A plan for communication, frequency of communication, escalation process, and the communication infrastructure or technology is to be set for the project. The communication plan is also developed keeping in mind the information and communication needs of stakeholders.
- Risk Management – This section of the plan determines the process, by which a risk is identified and the risk management activities that are performed.
- Risk Identification – Risks that affect the project are identified and documented in a Risk Register.
- Qualitative Risk Analysis – Risks are prioritized for further analysis, after analyzing their probability, occurrence of their impact, and details are updated in the Risk Register.
- Quantitative Risk Analysis – Based on a numerical analysis of effect on overall objectives of identified risks, the risks are prioritized.
- Risk Response – This elaborates the strategies or responses to be taken to avoid or mitigate the risks or their effects if they have occurred.
- Purchase & Acquisitions – The plan regarding purchase requirements for execution of projects, e.g. software or hardware requirements and their schedule or expected timeline is covered here.
- Contract Plan – If there are external parties needed to work on the project, contracts are necessary for documenting service requirements, product expectations or results, and for identification of potential sellers.
The project execution consists of activities or processes required to complete the project as planned. The people and resources available are to be coordinated and directed to achieve the project objectives. Additional approved change requests if any, are also executed as part of the project execution. Variances in project which require activity duration changes, unanticipated risks or requirements, etc. may affect the project management plan and therefore, a change request can be triggered and approved by customer. Such a change request potentially changes the project management plan and possibly can impact schedule.
Following are the activities performed during project execution:
- Project Execution Management – This requires direction and management of the planned tasks to completion. The Project Manager is responsible for executing and controlling the project resources and team. Status of completion of deliverables and work accomplished is shared as part of Performance Reporting Process.
- Quality Assurance – During the process, the planned quality activities are performed to ensure that the project uses desired processes to achieve the desired quality goals. A few tools used for quality assurance include the tools used for quality planning,, quality audits, process analysis and other quality control tools.
- Project Team Acquisition – During this process, the project augments the number of team members working on it based on the Staffing Management Plan. This ensures that the resources are available when required.
- Project Team development – Not only the team is acquired, the competencies of the team members are nurtured during this process, by formal and informal methods. Knowledge sessions, sharing documentation, classroom trainings, online, computer-based, on-the-job training, mentoring sessions are some of these methods. General management skills and interpersonal or “soft skills” are stressed upon. Indicators of team performance assessment include improvements of skills in assigned tasks, improvement in competencies and sentiments of the team that enable better performance and reduced staff turnover rate.
- Communication of Information – Project information updated on Project Management Software, and status reports are conveyed to all stakeholders in a timely manner, using collaboration tools, web-conferencing, emails, etc. Lessons learned are shared using a Knowledge Repository.
- Request for vendor proposals – In case of outsourcing part of the work to an external vendor, a separate process for requesting proposals from vendors is initiated.
- Select vendors – This process is required for reviewing proposals for outsourcing work planned, and select the right vendors after negotiating contracts with them.
Monitoring & Control
An ongoing monitoring of the project activities against the project plan provides an insight to the project team about the health of the project. At the same time, it highlights areas which require additional attention. Variances in schedule, effort and other parameters overall could affect the project objectives, which could result in a revisit of the planning processes, and in turn require updates in the planning process.
The processes include:
- Monitor & Control Activities – This includes collection, measurement and dissemination of project status. Status reports in terms of scope, duration, budget, resources, issues, quality and risks are indicators of project performance.
- Change Control – Change in a project can occur due to various reasons – new requirements or modified requirements determined by client or internally, issues faced and corrective or preventive actions to mitigate such issues. Monitoring such changes throughout the project is important to detect such changes and effect control mechanisms of Change Management to alter the plan as required.
- Scope Verification – Monitoring the development processes for meeting scope requirements and Change Requests requires an ongoing verification of scope for deviations if any. The verification involves customer’s review of deliverables using product reviews, audits and walkthroughs. The deliverables are accepted in the process, or customer may raise requests for change. Alternatively, the customer might reject the deliverables citing issues in meeting scope requirements.
- Scope Control – This process ensures that the factors that could cause scope changes are controlled, and that uncontrolled changes do not affect the system causing scope creep. The fundamental tools to control the scope are a Change Control System, variance analysis to determine the magnitude and cause of variance, determine if corrective action or a re-planning is required, thereby, adjusting the scope statement / baseline, the WBS, and the project management plan.
- Control of Project Duration – The duration of project is controlled based on project plan. A project management software is used. Tracking scheduling variance, progress reporting, monitoring change requests, monitoring critical path effectively are a few ways to control the schedule. A Change Control System with the requisite tracking mechanisms and authorizations is required for changing project schedule, if there is a need to do so.
- Cost Control – This involves influencing factors which could potentially affect the project budget by controlling changes. Cost control is achieved by monitoring the variance with the cost baseline, earned value analysis and using a cost change control system.
- Perform Quality control – Quality control is the task of evaluating the deliverables to confirm whether they comply with quality standards or acceptance criteria
- Team Management – This involves monitoring of task assignments, providing feedbacks, resolving bugs, and monitoring the implementation of change requirements. Project Performance Appraisals are useful tools for tracking team members’ performance on projects.
- Performance Reporting – Project performance is to be collected and disseminated and therefore, progress measurement, status reporting and forecasting form part of the reports.
- Stakeholders Management – Communication with stakeholders is essential for stakeholder satisfaction. Product demonstrations, stakeholders’ feedback, face to face meetings, web-conferencing, emails and telephone calls are important mechanisms for stakeholder management.
- Risk Control – Risks are to be monitored throughout the lifecycle and the status of the risks are to be regularly updated by tracking the risks, monitoring pending risks, noting new risks, monitoring mitigations or handling or closure of risks in the risk register.
- Vendor Administration – The key indicators of the vendors’ performance are monitored as per commitments set in contract, and vendor performance reports are shared. Actions are taken based on the performance, such as additional follow-ups, motivations for the vendor, closure of contract, or additional contracts.
At the end of the project, after the deliverables are completely handed over to the customer, the activities of the project are terminated.
- Project Closure – This involves a formal acceptance that the customer has signed off the project, all deliverables are complete for receiving the final payment, the project retrospective meeting is conducted to review the best practices used during the project and a post-mortem of issues faced during the project is carried out. Details of Project Retrospective Meeting is shared with all stakeholders..
- Contract Closure – This determines the financial closure of the project. All the components of the Contract are reviewed here and pending issues, e.g. project outstanding are collected from customer to close the project.
Want more detailed info? Click here to read how we work with you..