Sunday 6 January 2008

First 'Proper' Post ? - Perhaps...

So soon ? Well, just been thinking in general about software and the best ways to achieve things (on a Sunday morning) and a few things spring to mind;

What makes a Professional ?

My definition of an expert in any field is a person who knows enough about what’s really going on to be scared.” - PJ Plauger

It doesn’t get much simpler than that! You can always spot the inexperienced programmers in a meeting saying “Oh yeah that can be done. That’s easy!” That’s when you know to be terrified. I know, I've done it, thankfully though not too often and not in recent years. I've always come up trumps though, but it can be a very hard slog if you under-estimate something in this industry.

The reason I'd been thinking about achievements in software is that one can often not only under-estimate what it will take to achieve something, but under-estimate one's achievements when something is completed. I find lots of projects like that - you begin to think about the processes you've been through to get to the 'end result' and then think to yourself "Good grief, wouldn't want to go through that again!" - but of course you do anyway ;-)

In addition, those who end up with the 'end result' of course don't usually appreciate what's been required to get it - they can't, unless they're programmers themselves, and even then some may still not grasp the complexities involved.

In all of this, the one thing that I hate the most is often at the design stage of a project (or rather the lack of a design stage). Things often just start off as an idea, and then gradually progress into a requirement. As the idea and requirements grow, more and more people get involved and the requirements get woolly or ill defined because everyone has their own idea of what they want and how it should work. Then as is usually the case the project becomes urgent and programming has to start before the requirements are fully defined and documented (if at all). This is were we end up with the dreaded 'feature creep'. I've had to deal with this on almost every project I've ever worked on, to the extent that I almost consider it to be normal.

Before you know it the project turns into something that has to be all things to all men and yet still needs completing within original timescales and budget. It can't happen though, and I usually say that unless a project's scope is properly defined and costed in the first place, you can only ever have two of the three key aspects :-

1. It can be on time and in budget but won't have all the required (and undocumented) fancy features.
2. It can be on time and have all the fancy features but won't be within budget.
3. It can be within budget and have fancy features but won't be on time.

Of course this is just a generalisation, and you often end up with a permutation of all three, but you get the idea.

I suppose I'm looking for that utopian project that probably will never exist :-|

Well, that's all for now, catch you all later.

TTFN

Disclaimer: The views and opinions I post are the views and opinions of me, and me only, and do not reflect views or opinions of anyone or anything else. Views and opinions are subject to change without notice!

No comments: