As some of you may have figured out many of us who write this blog are in one form of IT or another. This post will be a series of posts hoping to shed some light on the mystical world of programming / programmers. I have to admit much of this post is driven by frustration caused by the people I work with, but I am trying to tell myself these posts will enlighten the masses and turn more people into better programmers where as I would be happy with many programmers just hanging up their keyboards and never comming back.
OK enough ranting, onto the pyramid. The Programmer Pyramid is a method of classification that I use to slot people into that work in a programming department. I find these classifications to be a very effective way to group my staff. The Programmer Pyramid is designed to have the most talented at the top and the people that need to get the hell out of this field at the bottom.
- The Guru – These are the few and the rare, savants that can do everything from designing a software system to building the user interface. When I say rare I mean rare – if you think you have one working for you…. well you don’t.
- The Architect – These are the people that are really good at designing systems. They can see how all the elements fit together from a very high level but also know the devil is in the details. Architects can fall into two sub categories: the ones that can do and the ones that just draw pictures. The ones who just draw pictures but do not get their hands dirty deserve to be dragged outside and drawn and quartered. If you think you have a good architect on your staff email me. I would be happy to donate 30 mins of my time to confirm your statement. These people are worth their weight in gold, but sad to say more often than not the people you hire as architects are nothing more than over paid Visio charlatans.
- The Technical Lead – This is your field general. This person should be able to build any block of code you ask him/her to, in addition they need to be able to manage a project schedule and train/mentor the people below them. This person should also know everything about the system or subsystem they are working on. Sadly the Peter Principle takes the cake here. More times than not I see technical leads that would make better fry cooks at Burger King.
- The Engineer – A Real Problem solver – this person wants to know not just what they are building, but why they are building it, who will use it, what business need this component is solving and how this will plug into the bigger picture. These are diamonds in the rough of the programmer world. With a good team of engineers and a good architect you can build anything. Oh wait! You think you have one of them on your staff, well maybe, it is possible, but more likely you should read on. Do not confuse these people with architects (and many of them think they are architects) – they are not. These people like to know the details of the tasks/problems they solve but if you throw too much information at them, they well go Chernobyl on you.
- The Developer – This is the worker bee of your crew. A critical component to any successful team. They want to know little more then their next task, and how it fits in to the rest of the world (sometimes that means knowing the business problem). This information is so they can better test their code and design their solution. Yes, I said design a solution, I know, I know – I did not mention it before in the pyramid, I had assumed that since you made it this far in my rant you were smart enough to realize that as you moved up the chain an engineer should be able to do everything a developer does etc.. etc… Therefore this is the first tier of “programmers” that start to actually think through a problem. Yes if you have one of these on staff you are most likely correct, but I am willing to bet for every 1 of these you found / hired you have met, interviewed, hired, wanted to kill 20 “programmers”.
- The Programmer- A drone. They do what they are told, little thinking about a solution, too quick to put code to paper. They are more interested in quantity of code then quality of code. Test???? what???? you expect them to test something?? My lord – you are lucky they can dress themselves in the morning and you expect them to test?
- The Hacker- This is not to be confused with someone who breaks into systems etc… These are people that will sit at a computer and break the software to learn how it works. They do this over and over again. This is a great way to learn how to program….. if you are 10….. God help you if you have one of these on staff. They like to deploy code from their desktop to production, and watch it burn while praying it does not. They also like to make you think a rain storm can effect your websites ability to process data. (Lets not go into the science of the insanity of this please…. ) It makes me sleep better at night thinking these people are mildly retarded if they are still “coding” this way pass the age of 12.
- The Hack- Do you have one of these? wow you are screwed…. or you have a bad Indian outsourcing company…. These programmers, if you can call them that, will just type random crap into a program without research, without thinking, just to “fix” a problem that may or may not be there. If you have one of these at your company I suggest strapping this device to the person. This way while your business fails to do anything and continues to hemorrhage money your staff can at least laugh at the loser in the corner.
- The Gas Station Developer – This douchebag jumped on the band-wagon during the .COM boom. They bought a book for $5.95 at a garage sale from some “hack” programmer that was titled learn to program in 24 hours. Let us put this in perspective. Most people who have gone to school and been taking programming courses for a total of 6-8 years… know shit about programming real software so how the fuck are you going to learn anything other than how to put my company out of business with this book. Go back to pumping my gas you asshole.
Oh and I have a pretty picture for those of you who can not read.



I hate you. – hacker.