12/08/2005

Free the Fungi!

Today I feel like a mushroom. You know the saying about software engineers being like mushrooms, right? (For those who might not – a software engineer is like a mushroom because they’re kept in the dark and fed manure.) There is pretty much nothing worse than being a software engineer who likes software engineering working for people who equate software engineering with writing code.

For the record: Simply being able to string thousands of lines of code together and have it do what you wanted does not make you a software engineer. It makes you a programmer at best – possibly just a talented hacker. In order to be a software ENGINEER you actually have to apply some facets of engineering discipline. If you think about it, this makes sense. I can draw house plans on graph paper – this does not make me an architect. Why? Because I don’t know or follow any of the engineering that goes into actual architectural design.

So, what does it take to be a software engineer? Or, looked at from a different angle, what’s involved in software engineering? A process. A stable, repeatable, measurable process. A process that involves identifying the problem, defining the requirements of the problem, designing a solution to the problem in detail, programming the solution, planning the testing process to ensure coverage of all the defined requirements, testing the solution and finally making delivery of the solution.

And how does this tie in to being a mushroom? Well – the place where the whole thing breaks down consistently (and I’ve worked enough places to say with fair certainty that this is the #1 place where people fail the software engineering) is at the very beginning where you define and capture requirements. You can probably skate or sketch over a large majority of the other aspects of the process, but if you don’t know what you’re trying to do, you’re just going to be frustrated. Even more annoying than setting off blind though is THINKING that you know what you’re supposed to be doing, getting 75% of the way there, and then getting told that, well, actually, we probably need to go back to the drawing board cause it might all change. But keep working on it, cause it might not – we’ll let you know.

Where do you find the motivation to continue developing something that you have a pretty high probability of having to totally trash in the next week to 10 days? Suggestions are welcome, because I’m not feeling it. And all I have to say about that is the same type of mushroom I think I’d like to be: crimini!

No comments:

Post a Comment