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.

  • 11
    Keep in mind, fast does NOT always equal good. Usually it means buggier.
    – Aeo
    Commented Oct 22, 2010 at 18:22
  • 2
    @Aeo saying 'Usually it means buggier' is as good as saying fast is good.
    – Gratzy
    Commented Oct 22, 2010 at 18:28
  • 8
    I would advise against trying to mico-manage.
    – Muad'Dib
    Commented Oct 22, 2010 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? Commented Feb 8, 2011 at 19:30

7 Answers 7


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.

  • 3
    Short iterations, frequent deliveries.
    – user1249
    Commented Oct 22, 2010 at 19:39

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.

  • 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
    Commented Oct 22, 2010 at 19:53
  • 10
    It's called micro management. It doesn't work.
    – user2567
    Commented Oct 22, 2010 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
    Commented Feb 8, 2011 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
    Commented May 19, 2014 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.


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.


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.


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.


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?

  • 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.
    – user40980
    Commented May 19, 2014 at 15:14

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