Re: I Know Why Software Sucks
Posted: Feb 12, 2004 11:04 PM
> If you have any insights, I would love to hear
> 1) Be curious.
> Measure: note the time you start a micro task, and when
> you switch to some other micro task (including when you're
> interupted or go to the rest room or... All day, every day
> for at least a week.
> Analyse: work through the bulk data, classifying the micro
> tasks in various ways, exploring where the time goes.
> Investigate different ways you can approach those task
> categories that take most time. Plan, Do, Check, Act...
> 2) Keep a work diary. At end-of-day write down what you
> are working on, what you don't understand, the tasks you
> want to do next; everything that you would deal with in
> the next couple of hours, if you weren't stopping work.
> When you come back to work, read what it was you
> Long ago, Peter Naur (BNF) found this simple approach was
> effective in re-establishing task flow and increased
Good suggestion. I'll give it a shot. Thanks
Since we've both basically repeated ourselves the past two posts, I have a question. When does somebody else's 'problem' really become a problem. If you get to the point where you have exhausted all possibilities, what then?
I figure there are only two alternatives. One is walk away. The other is bring it up and try to rectify it. At what point does asking somebody for clarification go from part of the project to a real problem? I know it's some number greater than 1 but is it 3? 10? 1,392? I just want to know. You seem to be of the mind that no matter the issue, if it is bothering you then it is your problem, not somebody elses. Up to a point I agree with this, but if that was always the case, half of the programmers let go in Greg's post that you mention as the important part (I really didn't miss that, by the way) would have been able to keep their jobs. Management could have just worked around the problem and all the programmers could have kept their jobs and the product could have been delivered on time, under budget and completely bug free, right?
After all, it wasn't the programmers fault they were doing a bad job, why should management take it out on them and deny them a paycheck? They MUST not have done a good job managing the project, delivering estimates, coordinating teams and getting the proper amount of testing and debugging done to ensure a stable release.
I'll be the first to admit that things aren't always managements fault. Many times it is the development staff. Recently there were some wonderful articles on zdnet about programmer incompetence to which I nodded my head in agreement. Here is one link http://techupdate.zdnet.com/techupdate/stories/main/Rx_for_better_software.html that, in addition to ragging on bad programmers, also has a reference to Fred Brooks stating that he also read there is no correlation in programmer productivity and programmer experience. Perhaps I'm going a bit far afield here, but I would count defect rate as a part of productivity. When I find more concrete examples, I'll post them here.
But as much as it is developments responsibilty to manage expectations of management, I feel management likewise has a duty to their best to create an environment for creating a quality product that satisfies customer needs. At least, if they want a happy staff churning out quality code, this seems to be a reasonable assumption. I realize cost (time, labor, etc.) is a part of this, thus deadlines, necessary product features, etc. I think anybody with half a clue realizes this.
At what point do you quit side stepping the problem, which is what it sounds to me like you are advising, and actually take steps to address it? After all, that's what the firing of all those programmers in Greg's post would be about, I would assume. Addressing a problem with the quality of certain members of the development staff, whether it be they technically deficient, unmotivated, hard to work with or whatever other reasons people get dismissed for. This is relatively easy because management has this capability.
The development staff usually does not have the clout or right, etc. to just say 'hey, manager X is a bozo. He's late with requirements, is always contradicting himself, asks for major changes to the project three days before delivery date and is never available to address issues. It's been like this for three release cycles now. Can he be fired?'
So other constantly ignoring the problem or possibly devloping a habit of three martini lunches, what does one do? I would normally raise the issue and see what can be done about it, but that's just me. I'm not saying that everything, or even most things are managements fault, but sometimes it is. And when it is, more often than not, the blame gets pushed as far down the chain as possible, so said manager can keep their job. I've seen it happen more than once, hence my bitterness about this particular topic.