To avoid the risks of outsourcing you should keep your finger on the pulse of the software development process all the time.?
Here are my tips for effective outsource vendor management.
Specify commitment
- Specify the vendor's commitment from the very beginning of your collaboration, focusing on three key aspects: a) Budget. Determine the cost of building specific features, it may be summed up in work breakdown structure (WBS). Also get a resource plan to know the expected spendings per team member. b) Time. Understand the project's duration in terms of months and weeks. Get the project roadmap to know the time estimates for each feature. c) Scope. Clarify the written app requirements, UI/UX designs, app architecture, and efforts to minimize technical debt.
- Break down the commitment into smaller milestones, e.g. a ??-release, MVP, etc., for agility and flexibility.
Define your production scope
- Start with a small initial app version, implementing only essential features for the faster production release.
- Collect user feedback and iteratively improve the application over time.
- Understand that achieving your software development goals is a long-term process, averagely requiring 2-4 years of iterative improvements. Complete 1-2 milestones and make a production release to collect necessary feedback and make sure you are moving in the right direction.
Understand the roles and responsibilities
- For consistency, make sure your outsource vendor has a single “source of truth.” Give authority to one person on your team to present app requirements. ?
- Know the role and duties of each member of your outsourced team.
- Ensure that you or your representative has a (semi-)technical background to regularly check the developed functionality and provide feedback.
- Work closely and share a single product vision with the QA engineer for better development results.
Organize the delivery process
- Maintain good project dynamics by setting up weekly or bi-weekly meetings with your outsource team.
- Define clear agendas and ensure a common vision for the project.
- Receive progress reports from the outsource team before meetings. Agree upon their format, e.g. they can provide information about the percentage of overall budget spent, percentage of scope completed, active risks, blockers, etc.
- Consider demo meetings to introduce functionality, in particular to the users with no technical background, and gather their feedback.
Analyze the project progress regarding the milestones
- Assess deviation (if any) from the planned timeline and address its causes.
- Analyze the team’s explanation and reasoning of the situation.
- Define which risks were predicted and which ones were missed by the team.
Work with people
- Explain your goals and desired outcomes to build understanding over time.
- Be open to communication, provide input when needed, and build relationships with team members.
Tech tips
- Ensure access to all project development tools and services, including servers, 3rd-party tools, Apple Store and Google Play Store.
- Implement automated testing to reduce the impact of human error.
- Use tools like SonarQube to check code quality and identify possible risks and issues, e.g. regarding app security, logic, etc.
And my last, but not the least tip is: remember that mutual understanding, responsibility, trust, and process transparency are keys to a successful partnership with your outsource development team.