Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I am considering hiring someone exclusively to manage outsourcing of relatively small projects on Guru.com or VWorker.com. The person should be located close to me so I can have face-to-face communication and also that he/she gets domain knowledge. The projects will be in a wide variety of technologies and ranging from mission-critical to completely experimental projects. Sometimes deadlines will also be extremely tight.

My question is what kind of candidates would be the best at undertaking such a job? Are recently graduates the best? Expert technicians who can recognize and communicate with other experts? Experienced project leaders? An aspect of this is that I want the best cost/benefit ratio, given that experienced project leaders are likely to be much more expensive than recently graduates. I also believe that one aspect of this is that this is quite an unusual organizational structure, so I am not sure that people who are used to the bureaucracy project management in big companies would be able to adapt to such a working environment.

share|improve this question
1  
Tolerance of lack of sleep. They will end up having meetings at weird hours with the outsourced team (which probably is in a different time zone, unless you're outsourcing by latitude, not longitude). –  quant_dev Nov 2 '11 at 12:11
add comment

2 Answers

The most important attribute is the ability to communicate well. The putative outsourcing manager needs to be able to understand you thoroughly, and explain what you want exactly to the development team. He or she must be able to tell when your descriptions are ambiguous and clarify the details, and also when the development team does not seem to understand what is going on.

For a role like this, I think documentation is vitally important, and you will have to build up some project management bureaucracy yourself, or you will end up absorbing all the risk of miscommunication yourself. (It will, occasionally, be very beneficial to be able to point to a log entry and say "On November 2, 2011, we discussed exactly this point, and you agreed that a drop-down list was better than a button. Why have you implemented it using a button?" or similar.

share|improve this answer
1  
I didn't vote because I very much agree with the first part and I disagree with the second part. "Bureaucracy" shouldn't really be the solution to anything. Documentation is good, but conflict is not so simple that it can be solved just by a document. –  NickC Nov 3 '11 at 6:11
    
Hmm. I think we may have different definitions of "bureaucracy." I meant that it is critically necessary to have a well-defined and rigorously obeyed change process and at least some guidelines on what should be logged about discussions, and to me, these alone already do seem somewhat bureaucratic. You are correct that conflict cannot be solved with a document, but complete documentation can help find flaws with the process (and e.g. indicate when it is time to switch outsourcing teams, or managers, if there is a pattern of misunderstanding). –  James McLeod Nov 3 '11 at 11:21
    
Creating strict change processes and high requirements for documentation should only be done when one believes that this will solve communication problems. It should not be done before these communication problems arise, and it is preferable to solve them by other means than lots of documentation, as this is very expensive. Some documentation is, though always needed, so maybe we agree. –  David Nov 4 '11 at 12:59
    
I am certainly not suggesting documentation for the purpose of documentation, nor "high" requirements for documentation. A strict change process does not need to mean a heavyweight process - in fact, it shouldn't! It should be something simple enough that it can be carried out almost without thinking. But it should also keep "cowboy coders" from pushing in their favourite unrequired change and charging for it... –  James McLeod Nov 4 '11 at 14:27
add comment

Managing any team is a real challenge and managing an outsourced team is even more so. You need an experienced project manager for this. Look for someone with sound project management experience.

Outsourced teams are out of the loop and you are communicating with them via this intermediary person. As noted above, they need to be fully on board with your vision. If you are not one to write a lot of requirements down, but prefer verbal communication test this in the interview. Give them a bunch of vague requirements the way you normally would and ask them to write a document detailing what you told them. Could even do that as a homework assignment.

You should also query any candidates what methods they use to keep track of team progress and how they ensure the team is implementing requirements to plan. This will be a good indicator. A good candiate should have a natural understanding of software development so that they can see partially completed code modules etc. and know if things are on track or not and if they are implementing things to plan. Good practices in this area might include some agile principles like in process reviews and user stories. There is nothing more expensive than going months on end without knowing they are building the correct thing.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.