This is a good question and one that made me think a lot. I have a lot of experience hiring outsourced individuals as well as
teams, so I have strong opinions on the topic. As the question is in regards to teams, I'll keep my answer
focused on that.
Outsourced teams are all over the board when it
comes to speed, cost and quality. We have all experienced teams that
fall short on two or more of these factors, but there are definitely
lots of excellent teams that when managed properly are able to quickly
produce extremely high quality results for an excellent price point.
find that when I am hiring a team, the biggest factor that determines
everything about the relationship is whether I am looking for low cost
or low touch
If I'm highly constrained on the cost side, I come to the table with the following expectations:
- I will always start by providing a single reasonably small project
that has some level of difficulty nonetheless so it's a real test.
will provide an exhaustive, tight scope that leaves nothing open to
interpretation, has payment tied to dated milestone deliverables.
- We'll use the waterfall methodology for PM. We'll have biweekly meetings to review every step of progress.
- I'll reserve at 40-50% of my budget for the possibility that things will go sideways / I have to bring on additional resources.
- I will provide project management and QA.
terms of the engagement will strictly be work for hire, with
deliverables provided every week regardless of completion status.
- I'll push hard for everything to be plan to be content with 70-80% quality.
approach works fine if all of the above are carefully performed. It just requires unrelentingly tight control
because at the end of the day the vendor's and my motivations are at
odds -- they aren't being paid much, so they need to deliver the project
with as little effort as required, and on my part I want the work to be
executed to a certain standard of quality.
If I'm not constrained on cost, I take an entirely different approach:
still start with a small project in which I define an objective and
other constraints and leave it at that. My goal is to see if the vendor
can impress me.
- Assuming the small project goes well, I negotiate an hourly / daily rate that is at least what they are expecting.
- We use the agile scrum methodology, with weekly or biweekly sprints and a minimum of meetings (generally one or two per sprint).
- I expect the vendor to provide PM and QA.
more lenient when it comes to terms of service. I expect that better
players may come to the table needing to protect existing / new IP.
I see signs that the vendor is losing their touch, I express my
concerns immediately and see if there is improvement. If not I begin
lining up another resource.
- I look for noticeable
improvement in each iteration, ultimately aiming for 95-98% quality,
means I am more flexible on how quickly deliverables are produced.
is the way I have found works best and has allowed me to find and keep
top talent. It works especially well with software development projects,
because a lot of the best development firms act like developers -- they
want a bit of space, don't want to be pressured. These are the firms
that are able to produce world-class results.
Other than for the
cost reason, the only time I would modify the second approach is if I
really need something done by a particular time, and in that case I
would still mainly stick with the second approach and just stress to the
vendor the importance of timeline over quality.