Discussion Locked

Assessing coders productivity

0 helpful
42 replies
Closed to new repliesThis discussion is closed. It stays readable, but it takes no new replies.

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?

42 replies

by problemsolversolutionseeker

If it is as simple as you say, send me the req and I can do it overnight! Done this too many times to count.

Seems to me you've got more than this one issue, but I am not there.

by wayne m.

The question should be, what has the developer accomplished in 4 weeks? I would suggest borrowing a couple of ideas from Extreme Programming to get both you and the programmer on the same page.

Create a backlog of tasks for the programmer and list them on 3x5 cards. Every Monday reprioritize the cards, then sit down with the Programmer. Let the programmer estimate the work on the cards until there is approximately 2 weeks of effort. If any task is longer than 1 week, work with the programmer to break it into smaller pieces. Post the prioritized cards on the wall in a to do space; the programmer will move them to done as they are completed. Meet everyday for 5 minutes (same time, same place) and have the programmer report what was accomplished yesterday, what is being worked on today, and what issues are blocking work.

This is a very effective means of letting the programmer take ownership of the task and provides visible feedback as tasks are accomplished. Sitting down and getting a commitment for completion is one week is much more effective than just having an off-hand, "It'll be done next week." As a manager, you will also know exactly what commitments your staff has and this avoids giving them tasks in an ad hoc manner where the staff does not know the relative priorities of any of the work.

by cmcarlson.com

This is a good idea. When doing graphics (pre computers) we used to log in 15 min increments what we did and which account to bill. I have gotten into the habit now to still do that with my day.

My supervisor laughed at me one day telling me that this wasn't required but later when he came to me with the need to know what I was doing and how much time I was spending on it, I just pointed him to my logs and told him to help himself.

It also helps me realize just how much time I spend reading TechRepublic aritcles and threads.

by tony hopkinson

it doesn't sound unreasonable.
There's definitely a problem somewhere, missing a deadline three times and you've no clue as to why. How simple or complex the task is immaterial from that point of view.
I'm reluctant to second guess from this distance, but in your position I'd be having concerns as well. At the least there's a massive communications failure somwhere.
Get him to detail the outstanding work (just bullet points) and when he is now expecting each part to be complete. If he sticks to the week, get him to report progress daily. If misses makes sure he provides a reason.

If he's surprised by you climbing up his back over this just tell him you are passing it on from the customer, us bottom feeders can relate to that sort of thing.

Next task you give this guy ,do the same, let up when he starts meeting his own estimates. He'll get better at estimating if nothing else!

I mean his own, can't emphasise that enough, only he can say how long it is going to take him. If I told you it would take me x days, that's no use to you, after all it's not me who is doing it.

by marketingtutor.

This coder is flawed in some way. You can in fact tell him how long it should take to complete a task. Even if it means you sit down with him and go overthe steps. Which you shouldn't have to do inthe first place if he is an organized and responsible employee.

I also think it is terrible management style to cop out and say you're just passing the customer irritation on to him. The boss is the boss, not his buddy that he can jerk around and stretch a week deadline into nearly a month without good cause, and extensive explanation.

I would say that there is a point where, as a manager, you should know enough about what your employees are working on, to know if they are screwing around instead of working. Personally, I would install some monitoring software on this guys PC to find out how much time he is actually spending working. Cause this terrible overshoot of the deadline sounds like farting around onthe job.

Missing one, MAYBE two deadlines is understandable, provided there is a darn good reason. But there is no way, given the simplicity of this task, and the small number of steps involved, that he should be overshooting this job by that far and not be able to give a SUPER-DOOPER reason for it.

There are certain levels of proficiency that can and should be demanded. How much are you paying this guy per hour? You likely could have already outsourced it and had it done weeks ago for much less than you paid him during this time.

I personally write many small apps for myself all of the time, and this is really a simple one, ESPECIALLY given that the UI is not involved yet. Yes, as a coder I CAN say it would take me X hours. There is something really wrong with this guy if many say "Oh, I could do that in an afternoon" and this guy is taking weeks. Yes, I CAN say that, and YES this guy is severly underperforming!!

by hlhowell9

It is easy to say that an apparenlty easy file transition is simple. However, having produced translations between hardware and software in the past I know that the surface can be simple, but the details may be overwhelming. (I have written more than 10 program translators) Your description is simple, but I cannot imagine any system where the solution you describe would work. Therefore I suspect that some detail, such as file or structure formatting is not correctly specified. I would work a bit with the programmer to see exactly what is causing the delays. It could be that something is improperly specified on one side or the other, that the transfer mechanism has some requirement that is not well defined, or that the file format itself is not compatible with the target machine. Here it is just hard to tell.

by tony hopkinson

You aren't doing the task, an estimate based on your understanding is how long you would take to do if your understanding is both correct and current.

How long do you thing it would take a developer who's been using Delphi for 11 years to change the captions on two labels on one form, the main one in an application. If you said five minutes, you would be right, course it actually took me an hour to find the labels and five minutes to do the change.

An underestimate that made me look lazy or incompetent. Course I'm competent enough to communicate why it took so long and not as lazy as the person who left me in the mess.

Was it a lazy developer who couldn't be bothered to do the job right or a lazy manager who wouldn't allow the devloper enough time to do it right?

As for this guy all things being equal, he either is incapable of programming, he's doing other things, or he's solving the wrong problem. The first and last are management failures, the second could easily be as well.

by jaqui

the db dump file can be altered easily enough to fit the format with the find and replace function in all text editors.
then turning it into a delimited file is simple.

one thing though, the sql data can be dumped into a delimited file from the start, then changing the field names is a simple search and replace and you have the required format for the ftp transfer. this removes a step and gives the needed result file.
takes only a couple of hours to do the search / replace toget the final file needed.

by marketingtutor.

To my understanding, he wants a procedure that can be reproduced over and over again. A simple program could do that in a matter of seconds, maybe minutes depending on the size of the query's result set.

A search and replace taking multiple hours for each run would be out of the question. I don't think your idea is wrong or not feasible, just that it wouldn't apply in this situation.

by jaqui

if the file for testing is what is important now.
the later script application it wouldn't be hard to do it either, with perl or bash scripts. It would only be hard and slow if stuck using microsoft systems.

and the two hours is an estimate for changing 5 items in a 35MB =< file using the manual method.

by skibunni

From the sound of your post this is not the first time there has been a problem. If this is an ongoing problem I believe it could be either a lack of understanding from the start of what is required to be delivered, or a lack of appropriate skills as the task you describe does not seem excessively complicated (but then again I have no idea on scope and scope can be a dangerously underestimated thing).
Either way, I think something needs to change if you are to continue to work together. Most important thing is communication so the requirements are thoroughly understood from the outset, and honesty regarding how long the task will really take, including additional requirements such as documentation and testing.

by unni_kcpm

Coding factors :

Every one of us knows(in their own way/logic) how to go about the issue.

1. A small piece of code inside a "If/
Else/Endif couple with an sql statement.
Or
2. As said above, a find/search + Replace
string
Will do the trick.

You can even ask what the "real" issue
for coding and sort in above two cases.

Personal/Domestic factors :

1. Anything in this area affects her is
an issue that be tackled at a
minimal level(not advised to, still)
can be attended to by you or by
such competent(HR or a psycologist,
if need be).
2. Other issues, out of bound and to be
tackled by her ONLY.

Professional/Work related factors :

1. In this area - Even though so called
"Expert", for some, various things/works
can be accomplished in a few steps
but some needs detailed order.
2. If needed some training on the
programming or like or needed can be
provided under another/outside
"Experienced programmer" for the
requirements of the Organization.

There can be CHANCES of Work related
stress bothering her too. Need careful
talking,dealing and analysis of the
situation.

Best Wishes.

by marketingtutor.

I think it rests about 85% to 90% on the employee. Even a moderately skilled programmer would see this task as trivial in scope. I could be wrong if there are more factors invloved than what has been mentioned.

As the employer though it is encumbent upon you firstly, to penalize/punishing this guy for missing the targets so often and by SOOOO far. Secondly, deadlines are crucial to meeting project estimates and can turn a profit into a loss in very little time. You as an employer need to treat their overages as money coming out of your wallet.

Put in some dimerit system or something. You know, like the DMV. Three points in an 18 month period and you are gone, no questions asked. Everytime I have used, or had that used on me, it produced results.

Doesn't mean you have to be a Time-Nazi with 3 cameras and keylogging in each cubicle, but like children, employees need to know that there is a firm line (3 points), that when crossed, they're fired without recourse or negotiation. If he sets a time goal, and misses it, trouble awaits. Too many times, and he's gone. That is common sense if you're to make your work a success.

You're only as successful as your worst employee.

by tony hopkinson

If I say a task will take me til next monday, that's based on the assumption that the resource I need in that time period is devoted to the task.

If you say I've got until next Monday to do it, my response is I'll have a go, but seeing as you've set the deadline it's your responsibility to provide a suitable resource to accomplish whatever it is.

My biggest concern would be the failure that resulted in the deadline being missed 3 times with no indication of what the problem is. How simple or complex the task and how competent the developer is are minor issues compared to that.
If I was managing I'd want to know and if I was developing I'd want to tell.

by wayne m.

There is quite a bit that is left unstated in the original question, and there are multiple explanations as to why the conversion into a flat file has not been completed. I think it would be unfair to give any advice beyond, "This seems like a straight forward technical task, why not ask the programmer why it hasn't been completed?"

The programmer may have been overwhelmed, particularly if this is a matrixed organization. If the programmer has a dozen things to do, some will probably slide. The programmer may have misunderstood the scope; the programmer may be trying to do more than just create the file. The manager may have misunderstood the scope, the programmer may have to do a lot more than just create the file. There are a lot of things we could speculate.

The answer is really straight forward dialog between the manager and developer. No wishy-washy statements, like it will take about a week or we really would like to have this. Set a priority, some periodic milestones (I like daily), and discuss what can be done when and what are the implications. It really shouldn't take more than 10 minutes; less time than reading through the response thread.

by apotheon

If you're using a standard CSV format, there's probably a Perl module to do exactly what you want. Is there a specific language requirement for this task, for some reason?

The restraints of the task conditions might be placing a burden on the coder that makes it difficult to complete the task satisfactorily. If there's something particularly quirky about the format, the language being used is restricted to something that makes pattern matching and text replacing a serious chore (like Java or C++), and the DBMS is either a weird niche thing (like Paradox) or a very closed and proprietary system (like MS SQL), these factors may be adding up to making a task that looks (rightly) to the coder to be a week at most, but unexpected weirdness might be making it take longer.

This doesn't really excuse the fact that it's a one-week schedule over and over and it keeps getting missed, while you have no idea what's going on. I don't know if it's the coder, you, or both (probably both) who are dropping your end of the communication channel on this, but something needs to be solved there.

Three times is one too many for really getting into the details. You should have sat the coder down after the second missed deadline and said "I need to know what's going on here. If you're in over your head, let me know, and we'll see if we can solve the problem between the two of us. If there's just something else going on that is making this more difficult than you thought it should be, I need to know about it."

If you honestly are still in a position to work with the coder, even if she's in over her head and finally admits it, without firing her or reporting her or whatever, then do that now. If not, you've probably let it go too long, and half the problem is your fault for not trying to iron things out earlier.

Give your people some rope. If you suspect they may be tying a noose from it, get involved in what's going on and find out for sure. Wait long enough so you won't be the pointy haired boss leaning over the coder's shoulder, but not so long that the person's already standing on a chair, fitting his or her head through the noose. If you either climb all over a coder's back from day one or just let your coders hang themselves while your projects go down the crapper, you're not managing very well: you need to find the middle ground, and approach the coder initially as a mentor or patron. Only when that's not good enough to get reasonable performance is an antagonistic approach really warranted.

by david.cuthill

Markstone
This sounds like a combination of problems.
I'd reccommend getting the "One Minute Manager" series of books for yourself, if you are looking for a management refresher.

You need to find out where she's stuck and get a solution. Could be she's over-engineering it.
Try to simplify the task as she has understood it.

From what you say, it's a straightforward almost cut-and-paste solution.

Beware the counsel of despair. Taken to the logical conclusion - She's an idiot, and you hired an idiot.

Is she doing the job right?
Correct design, structure, coding standards.

Is she doing the right Job?
Is the system design right?
Why do the ftp solution?. Why not put the SQL Server on a webserver?
Have you looked at an online portals solution like DotNetNuke?

Has she been trained in the subject.
If you are asking a coder to be a SQL Server DBA, this is not necessarily a core skill for a coder.

Maybe she's constructing an elaborate generic solution, where a crude one-off solution would do.

On the other hand, maybe there is a lot of repetitive coding and she should be doing it generically, not sequentially.

Is she allowed to access the internet to get example code?

If she is well motivated and reasonably competent, you should be able to manage her in an understanding way. Some people say there is no such thing as a bad worker - just bad management.

I saw one or two of the other threads and the progress stickers one looks great.

If you are a small company, then you yourself might need to be multi-role. And a different management style with each employee.

Many people do not respond well to over-driving, whereas some might respond to the challenge, but it's not usually a happy relationship.

Usually the solution is creation of intermediate milestones.

If you need more detailed help, please post, and I'll contact you.
Regards
Dave Cuthill asperto.Net

by marketingtutor.

Simple coding of the description you're talking about should at the VERY worst take a week, but even that is a ghastly over-run.

In my programming experience, the largest time killer is finishing the app, squashing usability bugs, and polishing the UI. For the core code that can be dirty proof-of-concept that nobody will see, this should have already been done a long time ago.

If this was one of my employees, I would have a very serious one-on-one with them. From what you say, the employee is either:

procrastinating to get other work done
just plain lazy
pretending to take longer to keep you thinking its a hard task
doesn't have a clue and is learning on the job

You need tohave a frank discussion with them to find out what the exact delay is. What language is it in?

You're basically wanting to run a query and dump each record from the query into a text file format,and upload that to a FTP server somewhere? Is that all? Four weeks is insane!

Depending on the complexity of the SQL Query, that should be done in a simple afternoon. Dumping the data to a text file is like programming 101.

Again, what language is it?

Wes

by bad boys drive audi

It's not even a matter of what programming language they are using. Just think of the many ways this task can be accomplished. I'll throw one out:

If you use SQL Server, you can use a DTS package (or SSIS if SQL Server 2005) to execute the query and pipe the results to a text file object. You can then configure a FTP object and have the file sent to the object's location. Everything you need done -- in one pacakge.

Then, it's just a matter of calling the DTS package from the web site. You could do that with .NET (C#, VB.NET), classic ASP (VBScript), ColdFusion, etc...

That's just one way to get things done. There are countless (well, maybe not COUNTLESS) other ways to get the job done. My guess is that the programmer doesn't have a clue or is buried under other support "fires".

There's no way that I would miss four deadlines in order to make the task seem harder than it really is. If you want to do that, then you'd give a long estimate in the beginning, and then come through at the end.

by mwtimpe9

You didn't say what else is expected of your programmer. If this is the only project she is working on, then you have a problem and you need a knowledgable person to work with her to help her figure out what she doesn't know.

IF HOWEVER, she has 10 customer support reps asking why something doesn't work or 3 other projects that she "thinks" are more important, then you might not have a problem.

Been there, done all of that AND I've been a manager also (MBA). This is the exact reason why I won't manage anyone other than myself, ever again.

by marketingtutor.

I will give you that one. If the main emphasis is on the output file being needed for testing down the line, then your solutions would certainly be acceptable in the mean time until this coder is publicly flogged and whipped into shape.

by marketingtutor.

Once they get that far gone, we're both on the right side of the issue. Some communication needs to happen there.

I could agree with you a bit more wholeheartedly if the deadline was set by the boss and missed by the coder, but in this case, they are being set and missed repeatedly by the same person, without a report as to why.

Someone with project management experience as well as coding experience needs to be managing this coder. That is where senior level engineer/project manager usually steps in and would get an ass whoopin if his projections are off. That is what they get paid to do, cost/project/estimate correctly.

So I think one of two things would clean this up. Either boss gets more knowledge of programming, or hires someone with senior level experience. And one thing is for sure, someone needs to kick this guys ass and take him to task for performing like he is.

So on one level I would agree, but in this case I can't really agree, since the dealines are set and missed by the same guy, and the deadlines are vague at best. This coder is a follower and needs someone to lead him.

by tony hopkinson

The developer is failing badly at estimating and communication, the project manager is failing at managing.

One missed deadline, I'd want reasons, I'd want actions and I'd want to keep a close eye on things. A lot of PM work is preventative, this is looking reactive.

by fbuchan

If the job is what you've described there are no excuses for it taking 4 weeks. Even with peculiarities in technology, the task itself is not breaking new ground, and any coder should have enough research skills to at least find similar forms of code to complete the task.

Having said that, before taking any drastic steps, simplify the life of this coder. By that I mean ramp back their responsibilities for a short term, to ascertain if part of the underlying performance problem is overload. Even if that seems nonsense, do it, because if you do, you create a situation where they have to take responsibility for their performance. e.g., one task is all they have; they quote its delivery; they miss their quote; it's much easier to identify the problem as them.

If the problem is them, even if it extended from communication failures on your side, learn from that mistake and replace them. Realistically, this individual will continue to cost you money if you can't or they won't be managed.

If the problem is external, even if it isn't a problem specifically of the business, ask yourself whether the person has enough value to warrant seeking a solution. Again, if you can't manage value out of them, send them packing.

At the end of the day you are either dealing with a weak coder, or someone you can't manage. Letting a weak body go does the industry a favour at large; letting someone go who is stifled and can't fit in your company is doing them a favour as well.

And, I do like the task card idea, also. If you replace them, try it out. I do it for myself, and it helps me stay focused. It also helps me communiate to our team, both above and below.

by bschaettle

RE: "(we only have the one coder)"

Let me guess, she also supports all the code she's written in the past, right? I suspect that she's handling support calls almost all day, and not working on this task at all. Of course if this is the case, it's not her fault at all. Time to hire "Coder" Number 2.

by snoopdoug

Sounds like a gig I had with a bank at one time. Sure they had a mapping table that told me the format of the data. What they could not tell me was what the data *meant*. I had to decipher their data table myself.

I still remember finding numerous places where they would accept a single character, which implied a Booolean. Let's suppose I knew the value was true, but was it a y or Y or 1 or t or T? Who knew? They didn't. I had to wade through each possibility in turn until I found one that their input program would accept.

That and their input program would barf at the first error, so I would fix an error, rerun the load, find another error, ad nauseum.

The fundamental problem is that they had no verification test. Do you?

doug

by soto.ivan

The time required for the job is proportional to the number of columns to be dispatched from the table. Some factoring-up would be necessary to recotnize the RDBMS response time and the ornamentation required for each column. In any case, no matter those factors, it's a 2-day job in the worst possible scenario--dog eats code and whatever else.

by marketingtutor.

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.

by markstone

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!

by robin.tayler

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

TALK TO THEM!!!!

by wayne m.

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.

by dr_zinj

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.

by onbliss

...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.

by mdhealy

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).

by kiltie

The title of this whole thread is

[b][u]Assessing Coders Productivity[/u][/b]

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:

[b][u]Identifying causes of Project overruns[/u][/b]

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:

[b][u]Problem Management[/u][/b]

and that is YOUR job as manager.

My suggestion is, sit down with the coder and ask her to explain what [i]she[/i] 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 [b][i]external or technical[/i][/b] 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 [b]you, yourself,[/b] 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.

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

In summary:

[b]There is a problem.
Go find out what it is.
Identify a solution.
Implement that solution.[/b]

(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:

[b][u]Problem Management[/u][/b]

EDIT: typos

by jmgarvin

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!

by bad boys drive audi

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 file...today! 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!

by obislavu

To transform a flat file to another flat file you can expect to be coded and full tested in one day! No more.
1) Write a small program in any language to do that. I will choose PERL and the job could be done in less that 60 lines of code. If in the conversion is data needed from a DB , Perl DBI is aware of that.
2)Create a DTS (Data Transformation Package) that will load the file, convert that column retrieving data from other tables and create out file.
3)Use Excel to load the file, convert that column.
George

by jslarochelle

You do have a problem with this programmer because he should be able to tell you exactly what is wrong and how things are progressing (how he plans to solve any pending problem).
However, as a company that develops software (for internal use or for others) you should have a process in place that help you monitor progress:
Requirements review: where developpers can ask question and clarify things).
Design review: where you can see at a high level how the programmers plan to solve the problem. This is where you would see the class or procedures involve in solving the problem. This is also one of the critical step where developpers can revise the estimated time to complete the work.
Code review: where peer programmers can validate each others work.
Your programmer should know about unit test and he should be able to tell you which classes unit tests are completed and where things are not going right.
If you do not have a good programmer that can take the leadership on this you should hire one.

Good luck!

This discussion is closed to new replies.