When do you use external service provider? I tried following:
- To provide commodity infrastructure services – in progress, think will work
- Commercial offerings without mixing in people from your company (defined scope and budget) – failed
- Fast experiments to validate options (no integration with platform, no involvement of internal people) – success
- Commercial offerings with heavily involving teams from your company (not fixing scope, but only cooperation period) – success
- Bringing in industry accepted expert for knowledge sharing, problem solving, review (short-term: up to 2 weeks) – success
….Army that defends the country can be of three types: own, allied, hired or mixed. Allied and hired armies are useless and dangerous as you can’t use them as solid foundation, such armies can be as dangerous as enemy during a war – they will use your resources during a peacetime, but will not sacrifice their lives in times of danger.
Allied armies are dangerous as stronger partner will use the victory for their benefit, not yours….
Of course it’s not about war, but about building strong and successful company. Even though i made several points for myself keeping in mind context of a fast growing company working on a complex product.
- Keep unique and core knowledge or experience inside the company
- Spend effort on educating and training your team
- “Hide” core functionality behind APIs
- Outsource repetitive, mechanic, support or experimental activities that your team is not interested in. Give your team time to focus on core things and building API
- Describe scope better and split it to milestones. The more you have them the better
- Involve Team and PO while selecting a contractor
- Let teams directly communicate between. Managers are bottleneck
- Don’t use hourly rate! What you care about is how much you are ready to pay for certain group of features. Make contracts based on milestones not hourly rates
- Make sure your contractor is agile and is applying best development practices (or similar to yours) in their daily work
Everything looks obvious, but sometimes you need to make mistakes by yourself to learn something 🙂