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.

Some time ago I decided to outsource web development projects (php coding & design). I've opened small office abroad with manager and couple of programmers and designer. I just started but already have a problem controlling their work.

Some programmers are fast, others work much slower. I pay them fixed salary, so it matters for me if they do their job on time.

When they work from office, I at least have a person responsible for the project to tell if they really worked. But sometimes they work from home and in that case I have no way to know if they really spent that time working on some issue.

Some of my ideas were: controlling amount of code done with svn, strict deadlines, everyday reporting.. But nothing seems perfect to me. It creates even more work from my side.

Can anyone suggest a way of fair judgement on how much really time was spent on actual work? How to stimulate people to work? Maybe create some bonus system if work is done fast? Any idea/experience on this topic would be highly appreciated.

share|improve this question

closed as too broad by gnat, jwenting, MichaelT, GlenH7, Jim G. May 19 at 16:10

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs.If this question can be reworded to fit the rules in the help center, please edit the question.

11  
Keep in mind, fast does NOT always equal good. Usually it means buggier. –  Aeo Oct 22 '10 at 18:22
2  
@Aeo saying 'Usually it means buggier' is as good as saying fast is good. –  Gratzy Oct 22 '10 at 18:28
8  
I would advise against trying to mico-manage. –  Muad'Dib Oct 22 '10 at 18:34
6  
also the way you said this "controlling amount of code done with svn, strict deadlines" illustrates a clear lack of knowledge of software development, you can't just plugin a programmer to a legacy code base and set a strict deadline when there could be any number of problems from crappy code written by someone else, also making them write a certain amount of code is ridiculous, they could just write crap code that does nothing useful and how would you know? –  programmx10 Feb 8 '11 at 19:30

7 Answers 7

up vote 7 down vote accepted

You must define performance metrics and goals that they must meet. If you were doing any type of Agile and/or SCRUM then you wouldn't have this problem. There are many free applications to help with this. Rally (rallydev.com) is a great one (not free!!)

Set time lines and goals and hold them to it. Seems like you need to apply basic managerial skills. If they don't produce, then get rid of them. You pay them for results. Would you give $10 to Mc Donalds for 1/2 of a hamburger?

If you're a developer of any type then you should be able to break down a project come up with time estimates for each part. Give the estimates to the developers and you and your team can then discuss them and agree. If you say 5 hours and they say 15, make them explain why it will be 15 and not 5. Even if you don't know what they are talking about, you can smell BS. Call them on it and make them explain it. That will cut down the crap. This is what I do everyday and it works even with difficult employees.

share|improve this answer
3  
Short iterations, frequent deliveries. –  user1249 Oct 22 '10 at 19:39

Your job as a manager is not to control programmers, it is to give them all they need to get the work done.

If a task doesn't progress as fast as you want, don't blame the task owner, but analyze what is blocking. It is not always the programmer's fault. It may be a lack of correct tools, a late delivery in input documentation, a broken air conditionner...

As a general rule when facing a problem, find the root cause and solve it, don't find a responsible.

Sure it will cost time and money. Software is not free, even Linux. Indeed, you'll only get what you pay for.

share|improve this answer

Make It Mandatory. At the end of each day, require the teams to send you a daily scrum in the form of an email or other, answering the following questions: 1. What did I do today? 2. What am I going to do tomorrow? 3. What do I need from Team Leader, so I can do my job tomorrow?

share|improve this answer
1  
Note that the question already states "Some of my ideas were: controlling amount of code done with svn, strict deadlines, everyday reporting.. But nothing seems perfect to me. It creates even more work from my side." - so this was already considered and discounted. –  MichaelT May 19 at 15:14

Your only measure should be achievement.

Is the work done?

No? Get another developer.

It is so easy I still don't understand why people try to control other people (impossible to do) while what you should do is stop working with them.

Whether they are outsourced or offshore, the problem is the same. The only difference is the location and the fact that it's harder to try to control someone that is 4000km away.

share|improve this answer
    
I agree, but stopping working with people right after they didn't perform well is also not a solution, unless its constant. What I am trying to do is to find a way when even I am not available for them, I know they really work. –  Kelvin Oct 22 '10 at 19:53
10  
It's called micro management. It doesn't work. –  user2567 Oct 22 '10 at 20:10
1  
Not quite. Micro-management is about trying to control every little technical decision which is not the manager's business. The OP has a general problem with people simply not doing their work. –  user8685 Feb 8 '11 at 19:36
    
"Is the work done? No? Get another developer." I'm pretty sure this stops helping after a certain point. In fact, it starts hurting you. –  Doval May 19 at 11:19

If you are not a developer or experienced project manager than you really have no qualifications to try to manage a development team and trying to do so is only going to lead to frustration and a loss of money in the long run. Either hire a team manager who you can trust, outsource to a vendor (rather than hiring individual ousourced programmers) or learn the ins and outs of software development.

share|improve this answer

You should not be measuring the productivity of developers - the manager should be doing that instead of you, because he's there and you are not.

share|improve this answer

To start things off, this is a hard problem since there really is no good metric that you can use to rank how productive one developer is versus another one. If you use something like lines of code (LoC) you may find that one developer only writes 1000+ LoC, but if its just getting information from the database, is that nearly as hard as the 200 LoC that someone else wrote for parsing data that is being entered, or even the one line of code that was written by someone chasing down a nasty bug?

One idea that did come to mind was having a tracking system where in the tasks that need to be done would be entered (i.e. "Get x from the database and display it to users", "Fix the stack overflow but in the y module") and have all of your developers "vote" on how many hours they think it would take them to do each task. Once you have everyone vote, you could average that out and see how they compare to what developers are actually putting into fix the problem. There would likely be a bit of calibration involved and there are still ways to game the system, but it might be a way to get a fair idea of what they expect of each other an thus possibly a fair metric to use for judging them.

share|improve this answer

protected by gnat May 19 at 4:21

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

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