Question

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.

Was it helpful?

Solution

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.

OTHER TIPS

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.

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?

Licensed under: CC-BY-SA with attribution
scroll top