I'm a new dude..
- Graduate programmer
- Junior programmer
programmer is so 1980 lets get a new word..
- Senior Developer
hangon where now for developers??? We build stuff sort of...
- Software engineer
- Senior Software Engineer
hmm software engineer sounds a bit like an engineer...thats not what i do. but i'm better than the other guys
- team leader
- team manager- senior consultant?
but im still developing, i come up with designs, I'm not a pen pusher??
- senior Architect
- IT manager
Hmm I may need to wear a suit...
- Just call me God
Lets clear the air, there is a small percentage of people in the software industry that are great at what they do. I would say I am one of them, and all I do really is play a game of fancy pattern matching, the more challenging the better, and on top of this I also get paid loads of money for the privilege.
I have completed many projects working with small to medium teams using too many technologies to name. From a junior greenhorn right through to the dude calling all the shots. I have been part of startups that have been bought, I have worked on big failures and big successes and now I am a highly paid contractor working in the city. All the while being part of this world we call the 'software industry'.
After 17 years I can sum up the feeling of the whole industry in two words: 'Identity Crisis'
The above made up hierarchy of names is a simple attempt by 'real' business people to understand developers and to try and make the development process work like a factory. A fair enough goal.
Unfortunately I've got some news for them, it ain't going to work and the sooner we all realise this the better.
I've also got some news for the developer guys as well, just because you stick 'Architect' at the bottom of your email doesn't make you a great developer. In fact in my experience most Architects just use that title so they can over engineer everything and feel clever. More often than not they are missing the point on why we are all doing this stuff in the first place. Its all about making money and paying wages.
Take this example for the factory idea:
Imagine a universe where the 1980's C64 computer was where hardware development stopped. We all are still using C64 hardware in 2010.
Some weird virus infected all the computer engineers and they left the industry and became accountants.
No new hardware has been made, nothing, they just keep making C64 by the millions in pre existing factories
Software development techniques would move forward and I'm certain that by now (25 years later) we would have a factory type methodology for writing software on this hardware.
Clever people would no longer be needed for anything other than coming up with the idea in the first place. You just get a whole bunch of grunts to write the code following a tried and tested series of steps. Grunt factory workers in an assembly line pressing out code templates simply by pressing a big red button. Any project can be designed, estimated and built as long as it passes the 'laws of C64' and these laws are well known, just like the laws of physics when building a bridge. What is and is not possible is what you teach at college. All of a sudden its easy to make money using cheap labour. Business is happy.
Unfortunately in the universe i work in the 'laws of C64' where quickly discarded and a new set of laws invoked. Hmm they thought, we need a new factory for this, and some new work methodologies quick, shit we better get the clever people back in too sort it out.
Wind forward 25 years and this new 'laws of the universe' cycle continues to happen every 6 months, new tools, new frameworks, new hardware, new bright ideas, new techniques. This has the effect of the factory being burnt to the ground every time and barely a new brick relaid before it is demolished again.
The only constant in all this is the top people can always make it work because they don't need a factory.
Until the computers can write the software themselves forget the factory idea. Just let it go.
Forget the bullshit job titles that we give ourselves and have a good hard look in the mirror.
Clever people make it all happen and the rest just get in the way. I don't class people like Scott Gu and co as the clever people, they are just marketing men. They all need to have a look in the mirror and ask 'What is the point of software development?'
When I look in the mirror I think to myself, "My degree says I'm a computer scientist".
I think i will go back to using that...