Forum Moderators: LifeinAsia
A simple task such as getting information from the database, outputting it and allowing the user to select given rows takes days instead of hours.
I'm looking for advice on how to get her to program faster.
So far...
I've tried subtly reminding her that every command typed is one fewer command left to type (my personal top motivation).
I've told her it's always important to find the fastest reliable route and not the fanciest over-engineered route.
I've tried letting her get on with things at her own pace - but things will drag for days.
I've tried micromanaging programming, bit by bit, as much as it pains me and wastes my time.
I've set her deadlines and they are just not met.
I've spent time discussing and explaining the logic and methods which should be used in each task.
...all to no avail. Nothing seems to improve the all-important project progress per minute.
I might add that the work is nothing particularly taxing. I've had to hold back the taxing work pending this simple stuff actually being done reliably. It's all basic PHP & MySQL inserts, selects, outputs and updates with HTML output - nothing which you don't get from the first chapter of any given PHP book.
It's a time consuming task (define parameters, measures and so on) but I hope it ends with lazy (too perfectionist) editors.
Instead of giving the next (or next two) raises, increase the bonus, so that your total expense is the same either way with 99% on-time delivery.
Other than that, an honest performance appraisal would seem to be in order. That "it doesn't take twice as long, but rather ten times as long" bit seems like a powerful point to make... The rest of your evaluation posted here seems like a good way to soften the blow if she's the sensitive type, but really, "Your implementation methods are correct, your code is good, but you're far too slow and we need to fix it right away" is certainly better than "You're fired!"
Be honest, be firm, ask for feedback on possible causes/problems. That's fair.
Not clear from the post... Is this employee in your office, or working remotely?
Jim
I keep my attention up by listening to the right type of music, drinking strong black coffee with coca-cola, and keeping my hours short (i.e. 40h / week programming). Unfortunately, with the exception of short hours which I already enforce for her, the other things aren't something an employer can influence.
At present she is working from home but I've got the contractural right to require her to work from here. However, I don't fancy making the space and other provisions for that on a regular basis as I don't have proper offices until two months time.
I've gone through this, I had a ASP developer who was taking days doing the most simple of tasks and it simply was starting to take the business down. Best thing was to cut the cord.
I don't konw the tasks your programmer should develop (and, belive me, I don't really care) but I think you should take a pen and write
- what is the task this employee must do
- what is the reasonable amount of work she must do
- what is the method to measure these amount of product; this is the main point. Let's supose you can't be on your business for two weeks and someone must do your job for a few days (at least be over the employee/s). There's no any way to measure the work? Maybe lines of code, maybe blocks or tasks or funtions you defined, maybe HTML output pages...
You should think like a company (you are becoming one). If you don't develop any kind of method you will find yourself firing people that could give you better results with clear objectives.
And, of course, do not forget that no one will take care of your business like you do.
[edited by: Lexur at 10:22 am (utc) on June 21, 2007]
How do you handle the case where work doesn't meet your measurable specification? Also, do you have any problems with employees feeling that once they've met their target they can slack off for the rest of the day?
IMO it's as simple as setting down the law, as you say you know how long it should take. I would simply express it like this: you do good work, but unfortunately I need it in the specified timeframe. If you can't meet deadlines we're going to have to work something else out. Let me know if I need to seek out another programmer.
When you put the decision in their hands, you'd be surprised how much it motivates them.
One other solution if she is a Junior member of the team is to have a senior developer assist her for a short time, hopfully someone who understands the importance of deadlines and that you trust. This may impress upon her the reasons deadlines are set and need to be kept. It will also give you greater understanding as to why she is so slow.
Do you owe this programmer a favour?
Is she a member of your family, or a really close friend?
If not why are you going so easy? You don't owe this person a living. She isn't programming for you out of the goodness of her heart, she is getting PAID. If she can't do the job you've asked her to do in the time you'd expect it to be done (assuming you are being reasonable), then she can't do her job. End of story. Personally I would not be willing to employ someone who can't so their job.
There are thousands of computer science students out there who could do the kind of programming you want, probably for half the price, AND be grateful for the experience that they can put on their CV. If I was you, I'd remind your programmer of that fact and tell her to get it together. Either she's a professional programmer or she's not.
Whether she can programme or not is irrelevant. As long as she gets the job done well and on time, that's all that should concern you. HOW she does that is her business. I think it's quite simple. She shows you the goods, or you show her the door. I don't think that's harsh, I think that's real life and shielding her from that fact is not helping her. She needs to realise she has to raise her game.
At present she is working from home but I've got the contractural right to require her to work from here.
That is one thing you should do immediately. You are paying a per-week salary, rather than a per-project fee. Therefore there is nothing that motivates her at home.
Secondly, are your expectations about the work progress realistic? How many lines of correct code does she actually produce per day? I am a professional programmer myself and able to produce between 300 and 800 lines of correct code per day. This rate is nearly independent of the programming language used. What is her current programming lines/day rate?
I am a professional programmer myself and able to produce between 300 and 800 lines of correct code per day.
you must be among the most prolific programmers on the planet!
according to your calculations you would have a 10kloc project completed in a month, give or take, with weekends off.
according to cocomoII that would take 3 or 4 people the better part of a year.
even if only one of the three is actually writing code, you're still off by an order of magnitude.
i don't think i could type 800 lines in a day and correct typos, let alone syntax and logic errors.
And rocknbil is right, if you have programmed long enough you either know almost directly how to attack a specific problem, or there is some piece of reusable code from a former project which fits nicely in.
Inexperienced programmers can lose their time on many places:
The only way to reliably say where the problem with a slow programmer is, is to have here at close distance.
By the way, I don't drink beer, it influences my keyboard rhythm too much ;)
But back to the topic, we are discussing a situation where a programmer is working at a far lower speed than expected. But without a real figure how fast she is producing correct code now, it is difficult to determine if the problem is either with the programmer herself, or with the expectations of who she is working for.
One thing to consider is that meeting goals and production requirements is fine, but depending on the jurisdiction, there's a line drawn legally and tax-wise between independent contractors and employees. Once someone is required to work certain times at a certain location, it's getting into a grey area and might require withholding taxes as for an employee.
Simply having someone in for "training sessions" shouldn't be a problem in either case, and IMHO should be able to show whether it's an actual capability problem or a case of someone just goofing off - or maybe, just maybe, taking and getting paid for more than one job at a time even though supposedly full time for one company (or person).
If it's lack of ability it's one thing, but lack of motivation to get required work done isn't actually lack of motivation, it's lack of being responsible. Someone whose time is distracted by things like family obligations and interruptions should know that they can't agree to put in full time if that's what they're getting paid for and they're not able to be doing the work.