After briefing a project to developers, you might feel relieved thinking that you can leave it in the hands of the development team and wait for results, or at most only need to check-in every couple of weeks. This could not be any further from the truth. Ongoing monitoring and managing is needed to ensure that your project finishes on-time, on-budget, and at your expected level of quality. The earlier issues are identified, the less costly it will be to make changes.
Managing developers is a required skill for any project owner. Changes or additions to user requirements, a sudden realisation that some functions are infeasible, and misunderstood instructions are all par for the course during development. Even with extensive solution architecture (the blueprint of your application), development work still needs frequent evaluations and course corrections.
As a project manager, you will need to support the project throughout and explain how a change request can be implemented to best meet the business requirements and keep it in-line with the bigger picture and architecture. With a firm understanding of the project goals and being able to communicate effectively with the developers, you will be able to estimate how a specific change will affect the project timeline and budget.
With sufficient understanding of the project’s technology, you will also able to plan realistic amounts of work per week. (Speaking from experience, developers are almost always overly optimistic when it comes to planning.) This gives deadlines with clearly defined deliverables, which are margined for error and unforeseen events. All of this will result in significantly better management of stakeholder expectations.
If the project involves multiple vendors across several technologies for a single platform, you will need to ensure the workflows remain on-target and consolidate all work to the final solution. Importantly, you should have clear development workflows with versioning, integrated and automated testing, and security access controls.
Managing the implementation of the project starts during the scoping and research phase.
Pre-project, during the Solution Architecture phase
When you begin choosing a project team, many development agencies you approach will give similarly impressive sales pitches. I have talked about how to choose the most suitable vendor for your project in a previous post. However, technical knowledge of the skills and experiences relevant to your project is needed to make an educated choice. This is where a technically-trained project manage or third party consultant can assist in briefing and evaluating different vendors, as well as recommending qualified vendors. Eventually you will select two vendors to work with:
- The implementation vendor who does the development work for the project; and
- The review vendor who reviews the source of all completed deliverables provided by the implementation vendor weekly.
Due to current market conditions, most development services have been commoditized. This pushes vendors to give optimistic estimates that often leave out non-development services so that they can compete with other businesses and meet your initial expectations. A project manager with deep technical understanding and experience, or a third party technical consultant, should be able to bridge this gap. This will help ensure that the estimates and timelines include budget for consulting, testing and other important services, that the programming estimates are realistic, and that they are appropriately margined for risk and unforeseen issues.
Being familiar with the workflows and solution architecture, they can then support or even train the selected vendor to quicken the on-boarding process and establish a partner relationship with the vendor. This helps ensure efficient implementation of development and operations (DevOps), and critical security policies.
Pre-project, during the technical research phase
After the vendor is selected, the developers will have to answer any open questions about the technologies and platform for your project through experience and technical research. This is the first paid phase of the project. You should have identified the unknowns in your project by now and be able to brief the vendor on the research requirements. You can also work with them to identify any remaining research items that you may have missed. This phase should also include the technical architecture, api documentation, database schematics and infrastructure design. After this research is completed, the vendor will have all the information needed to provide a highly accurate estimate for full implementation of the project.
During implementation, a detail-oriented manager sees to it that deliverables are completed on-time and with quality assurance. You will have to monitor progress with weekly reviews of all deliverables by the review vendor, and keep the review vendor up-to-date with the full application scope. Thus, if the reviewer is ever activated as a replacement developer, they can take over the work quickly (in a matter of days) without impacting your timeline significantly.
By closely monitoring progress you should be able to quickly assess if a milestone is likely to miss its target. It is important at this point to evaluate what went wrong or where the documentation was not complete or sufficient, if the additional time required is still within the error margins and to review the remaining project to ensure the same mistake is not made again with other milestones.
You will also need to manage communication between all involved parties and vendors, with frequent updates to stakeholders. When stakeholders request changes during development, it should be you who decides how and when these requests fit into the schedule, and be sure to make all stakeholders aware of the effect of requested changes on costs and timeline. You should keep stakeholders reassured and updated with accurate presentations of key milestones and results. A strong leader in communication can ultimately strengthen the client-vendor relationship, and make sure concerns from the review team are discussed openly and respectfully with the development team.
As change requests and bug reports come in, you will need to ensure these changes are architected to fit into the solution and that they do not adversely affect other parts of the system - typically you would work closely with a Solution Architect or senior developer for this. You must ensure that the project’s documentation remains up-to-date and actual - anybody should be able to pick up the solution architecture or technical documentation from the development team, and fully understand the current situation.
You should have full source access to your project at all times, or at the very least after each payment or milestone. Make a local backup of the source code on a frequent basis. Many vendors will link source code to payment, which is why payment terms are so important and should be monthly or per milestone to ensure equal exposure to risk. Sufficient testing should be done for each milestone, and not “left for later” as it is more damaging to find bugs in later phases and re-do much of the work that may have been completed by then.
At the end of a project, you should receive a full review of the entire application by the review vendor, and then by the solution architect or development manager. But your job is not done yet as you still have to manage on-site testing of application and debugging as needed. You will also need to oversee executing the UAT (user acceptance testing, or beta testing) with all stakeholders.
With the launch of your application, you can do a final full check on your project documentation and the technical documentation from the vendor to ensure completeness. This documentation can be used for evaluation, presentation, future changes, and training.
Why choose a management retainer?
From all of the above, it is clear that managing a development vendor requires a huge amount of time and effort, professional management skills, and significant technical knowledge. A client juggling pressing business concerns or a project manager with limited technical background may not be able to effectively manage the development team, which winds up in bitter client-vendor relationships as the project misses deadlines and goes over-budget.
Instead of managing the team on your own, a management retainer is an attractive option as you know up-front the monthly expenses. At Binary Thinktank, we provide management retainer services for end-to-end management of your project and vendors. This includes a trained, dedicated project manager as the single contact point, and evaluation and quality assurance on all deliverables. In addition, what sets us apart from our competitors is the ongoing Solution Architect support by a senior consultant for project changes and future planning. And, we are of course independent, with no bias towards any development vendor - our goal is to ensure successful completion, and implementation, of projects.