General discussion


Assessing coders productivity

By markstone ·
I am a manager with an underperforming coder. Or maybe they're not, and my expectations are too high. And that is the problem - do I or don't I have cause for concern?

I won't bore you with other experiences so far, but so I can get feedback from you experienced coders out there (which I am not), here is a recent example.

We need data downloading from a website. This is then put into a SQL table. This part is successful.
The data then needs to be put into a delimited file, in a certain format.
The resulting file is then ftp'd elsewhere in the world for use by another system.

We are at testing stage, so a manually exported file is all we need. Later on we'll automate the process and add a GUI so our internal customer can do the job themselves every week.

We know the structure of the sql tables. We know the structure of the file needed by the receiving system. There are a few differences in heading names, but the data under them are the same. There is one field in each record where incoming text must be changed to something else to suit the final system - but they are always the same equivalents so a translation should be easy.

But it's taking forever to get a converted file out that we can FTP up for testing. I'm talking about 4 weeks now. I've been reassured by the coder that she'll have it done "next week", but our internal customer has pointed out we've said that 3 times now. I'm at the point where I want to pull the plug and outsource the job (we only have the one coder), but I shouldn't have to for something this "simple". Not only would this cost money, but it brings into question the competence of a staff member who I expect to be the "expert" on these matters.

Tell me I'm being unreasonable. As a manager I need to trust the experts I hire to do the things I can't do due to time constraints or simple lack of knowledge. Do I believe what they say, and lower my expectations while fending off our customer? Or am I right to be worried and have a staff member who's somehow in over their head?

This conversation is currently closed to new comments.

42 total posts (Page 4 of 5)   Prev   02 | 03 | 04 | 05   Next
| Thread display: Collapse - | Expand +

All Comments

Collapse -

Right on

by marketingtutor. In reply to You need to get a coder w ...

You're totally right. With the right knowledge of SQL nearly any result set can be queried, aranged, and ready to be pumped record by record into a csv or related format. And I also completely agree with the 2 day "dog at my code". Either the guy is incompetent, or there are specs and info about this project we're not hearing.

Collapse -

Thanks everybody...

by markstone In reply to Assessing coders producti ...

for all the replies, comments, and suggestions!

I'm going to use the bullet-points idea on this particular job, if only so I can see what's been done and what is left to do. I'll then get them to stick to the self-imposed estimates/deadlines. I'll just have to be pointy-haired boss and micro-manage for a while.

After this though, I have some thinking to do. I thought I'd hired someone I can launch into a project and trust to do a job with minimal supervision - management by exception if you will. Instead it seems I have to hand-hold or whip them to get anything more than promises. Live and learn.

I do of course take a lot of the blame for this. Now I know that the "almost equal" I thought I'd hired, is not what I got. This person needs managing more than they have been, and that's down to me.

On the up-side, I may have someone I can mold into more of an analysis role, as they ask all the right questions to get customer requirements, etc. I can work with them more directly too, as this is where my work will be growing for the next few months. The coding itself may be outsourced, but I'll think about that too.

I don't doubt their intelligence, just their coding skills.

If it turns out to be laziness? Well, then I know what to do about that too.

Thanks again guys! Keep em coming - any suggestions are appreciated!

Collapse -

I can see a bigger problem emerging

by robin.tayler In reply to Thanks everybody...

Hi markstone.

It seems to me like perhaps you yourself are not in the best role for your experience. Even the best self directed/motivated employees need managing. If for nothing more than as an umbrella to shield them from the demands/requests/time killers coming at them.

It seems like either you cant, or wont, or are reluctant to use the most obvious of all suggestions. Communication.

Before you turn into the "pointy haired boss" why not try this method. You say you are being given false promises, it is your job to identify and deal with those promises. If something sounds too good to be true I think experience of working with this programmer proves it is.

Without communication job cards will lead to only one thing. Instead of one instance of a broken promise, or overshot deadline, you are now going to have, mini bite sized broken promises/deadlines. Sure its going to be easier to reprimand, but if that is what you want of this programmer then just get rid of them. Otherwise


Collapse -

Not Micro-Managing

by Wayne M. In reply to Thanks everybody...

I like to rely on daily status meetings and do not consider this micromanaging.

By focusing on a simple 3 question format (What did I do yesterday? What do I plan to do today? What is getting in my way?), I can get status from 10 developers in 10-15 minutes. In daily meetings, a 1 day slip is never a critical issue, but you get plenty of early warning if the slips start to accumulate. As long as someone is showing good effort, I will not ride him, but if the task is critical and just not happening, I will reassign it.

Do not use this technique only when there are problems, by the time you know there is a problem, it is too late. Daily interaction with your staff is a good thing. Just remember to keep socializing separate from status reporting; otherwise status meetings inevitably drag out to 60 minutes.

To introduce the new reporting, just tell your staff that you want to try something new. Do not tell them that it is because of poor performance; this will only make it seem like punishment. You want it to quickly become a habit and just fade into the background - "We meet at 9:00 in the conference room, give our status, and we're done by 9:10."

I find this approach to be very refreshing and minimizes the affects of status reporting. This is also the most effective means I have found to stay on top of team status while requiring the least time commitment.

Collapse -

You're not unreasonable

by Dr_Zinj In reply to Assessing coders producti ...

I'm a relative neophyte at file conversions, turning memo into text feilds, dates into numbers, numbers into text, etc, but even I ought to be able figure a new format out from scratch in a week.

Sounds to me either this employee is an idiot for not being able to do it, or a genius for taking you for a three week ride.

Collapse -

Should not take

by onbliss In reply to Assessing coders producti ...

...four weeks to just code. Ofcourse I do not know the complexity of downloading information from the website to the SQL Server. That is the one big unknown in what you have described. But, generating a delimited file from a SQL table is pretty easy. It could be done using DTS or one could easily write a program using a language of choice.

You need to find out if the developer is facing any problem. There might be some geniune difficulties that is not being shared.

Collapse -

Clearly there is a serious problem here

by mdhealy In reply to Assessing coders producti ...

Clearly there is a serious problem here, but I cannot tell from the information given where the problem lies. The task as you describe it sounds like the sort of thing that would take me much less than a day in Perl and SQL, which means EITHER the programmer is grossly incompetent OR the job has some complications not described in your posting.

Now, I have at times encountered simple-sounding jobs that turned out to be more complicated than they had seemed, perhaps this is such a case.

BUT this coder SHOULD be able to give you a clear explanation of WHY this job is more complicated than it seems.

Or maybe the programmer is using the wrong tools for this job? I said above that I can do simple file-format conversions in under a day with Perl -- but in Java what I can do in half a day with Perl might take me a day, longer in C, and I would not wish to estimate how long such a job might take me in the first language I learned -- Fortran on PUNCH CARDS. If your coder is trying to do this conversion in a language other than Perl or Python, maybe you should make him or her take a course in one of those languages (both of which, by the way, are free, open-source, and available for just about any common platform, so there is NO reason not to use them).

Collapse -

Problem Management

by Kiltie In reply to Clearly there is a seriou ...

The title of this whole thread is

Assessing Coders Productivity

That alone tells me where you are coming from, it also suggests that you have decided what the problem is: a coders ability to do a job.

However, I respectfully suggest that is not what you should be doing. Change the title to something like:

Identifying causes of Project overruns

NOW it doesn't become easier, as the first attitude has the simplest solution (fire the coder). But, the new title, now gives you a hint about how to solve your problem:

Problem Management

and that is YOUR job as manager.

My suggestion is, sit down with the coder and ask her to explain what she thinks the problems are. be careful not to put her into a defensive position, or you will get nothing constructive out of it, instead, try and get her to detail any external or technical problems there may be.

That's your job, as manager, problem identification and subsequent solutions.

Sure you can fire her, sure you can out source, or recruit another coder. But that will introduce even more delays into an overrun project, that on the face of it looks simple, so I suspect what many other posters here have, that there is something else that we don't know about. Maybe that's because you, yourself, don't know what they are? Then again, any replacement coder may run into the same (as yet unidentified) set of problems.
So what would you have acheived by "letting her go"?

You may still have the "problem" to deal with, the project is later than ever, and you have replaced an experienced employee with an unknown, untested quantity, that needs to be trained in company practice.

You'll also have the side effect of not making yourself looking good in senior managements eyes.

In summary:

There is a problem.
Go find out what it is.
Identify a solution.
Implement that solution.

(of course there may be more than one problem and more than one solution, so don't just stop at the first one you find)

Like I said, it is part of your job:

Problem Management

EDIT: typos

Collapse -

If the job really is the three basic steps you've outlined...

by jmgarvin In reply to Assessing coders producti ...

Then it should be something like this:

1) We need data downloading from a website. This is then put into a SQL table. This part is successful.

This is a pretty easy parse and feed operation. I'd imagine most programmers had to do something similar sometime before their junior year.

2) The data then needs to be put into a delimited file, in a certain format.

This is a dump from SQL. If it needs to be in a different format, just feed that dump from SQL to another parser and make it perty.

3) The resulting file is then ftp'd elsewhere in the world for use by another system.

No problems there...a plethoria of options are open to you.

So my guesses are:

Either the structure of the task isn't clear and/or the task is larger than the three points, or your programmer isn't doing her job.

I'd check a few things.
1) Can she actually parse the info and put it into SQL
2) Why is the SQL dump so hard to work with? It may be she isn't familar with SQL. If that is the case a good O'Reilly SQL book about about 45 minutes will square her away. If she is totally lost, then her programming ability might be in question (which isn't a bad thing, it just means she isn't a programmer)
3) If she can't reformat the data or send it, is it a technological barrier or is it more of an issue she doesn't know how?

Good luck!

Collapse -

You Need a Different Programmer

by Bad Boys Drive Audi In reply to Assessing coders producti ...

I've read a few of the comments here, but they started getting philosophical, so I decided to just state my opinion with regard to your situation.

You need a different programmer -- period. If your shop can only afford one, you need one with the technical ability to get the job done. At my shop, we have an individual who sounds eerily familiar to your worker, and when you said "her", I substituted the name (no, I'm not chauvinistic; it's just too eerie). The individual on my team tells management "next week" as well, in an effort to buy time.

I was fine with trying to mentor her, but quickly discovered that she didn't wish to learn, but instead be told exactly how to solve the problem. This is apparent in her unwillingness to learn outside of work, and her going to other members of the team when I refuse to give the answer outright. She knows what she is doing...she will now break tasks into smaller pieces and farm out help with those pieces, then put everything together. My goodness -- it's even SQL that she's doing this with (that's why it's so eerie)!

Bottom line -- my company can't afford this inefficiency, and we have over 100 IT professionals on staff. You, with 1 position, definitely can't afford that type of individual. Think of the relationship you're creating with that external customer...or, for that matter, the internal customer that deals with the external customer.

From what you've described, you have most of the individual pieces done, and then you'll figure out a way to automate the whole thing. Your biggest concern right now is getting the data out of SQL into a delimited format (comma, tab, whatever). You also want to mask a certain field from the table:

SELECT cname AS CustomerName
FROM SomeTable

You can do this and the delimiter formatting within a stored procedure (or view). She should be able to do this and get you a! At the very least, you've expressed that you want a test file, so she shouldn't be too concerned right now about how to automate the process; she needs to get you a file NOW!

Back to Web Development Forum
42 total posts (Page 4 of 5)   Prev   02 | 03 | 04 | 05   Next

Related Discussions

Related Forums