I hope this post will act as advice and even a warning to new developers starting a career in development or even experienced developers who might be able to relate to some of the points.
The main point is that good product development is about taking care of the little things one at a time, they can add up to big things, or to put it another way:
"look after the pennies and the pounds will look after themselves*"
* other currencies are available
Now to many this is a statement of the obvious, but to me during my career to date it has not been obvious.
Let me explain why.
During my development career, I have always wanted to showcase my technical abilities. I wanted to show my employers and others that I have a good understanding and grasp of technical basics and I can apply this to almost anything I put my mind to.
I always wanted to be right and to "win". To show I was the better developer and in fact it made me look a right clown! I always thought, they should put me in charge and I'll show them how proper products are developed! I would come up with some grand plan, "Lets rewrite project X with technology Y" or I would comment on areas that really have very little to do with me, again all in the hope of wanting to make a good impression and demonstrate knowledge. This caused some problems, often I got involved in areas that are really beyond my "Circle of Influence" and my "Circle of Concern" (Google it!). This can come across as meddling, argumentative and maybe even disruptive. Often, I would be trying to swat a fly with a machine gun or a tank! Just to prove to others I could do it, to prove myself.
To any junior developers (or anyone else) this can hurt your career, big time! It can also make you unpopular as no-one likes a "smart arse". I don't think (in my case) it got to the point where I became unpopular with my colleagues, may of whom I consider friends but I would suggest they found it annoying at times. Once you get a reputation for this it is very difficult, if not impossible to shake off. Also, it actually really stupid when you think about it.
You will read many blogs about what Joel called the "Rockstar" developer. I always thought I needed to become one of them. I thought that companies needed such geeky micro-celebrities in order to do anything. I have learnt that these people do exist but there are not many of them! What you find is that when they are working on something they are interested in they are erratically brilliant but frankly hopeless at working at a consistent pace or smoothly within a team.
In fact, I'll go further, their attempt at superiority is aspirational and infectious. Their arrogance bleeds toxically into the rest of the team. It signals that if you are smart enough you choose when you work and what you work on. You'll become a "Developer in Residence" distorting the values of those who work around you.
The purpose of this post, is to hopefully inform fellow developers that you shouldn't try to become a "Rockstar". Trust me, it is not good.
So if been a "Rockstar" is bad, what is good and how does this relate to the lesson at the start.
If "Rockstar" is bad, what is good? Enter the workhorse!
The great developers, I know, are not people who can write bubble sorts etc on demand.
They are the people who when you get them on a project, never stop moving and inspire everyone around them to do the same! I have seen this firsthand on the project I work on. I am lucky to work with 3 great developers who are living examples of this, it is thanks to them I have learnt this valuable lesson, I share with you today.
What they all have in common is that they do the small things well and they keep doing them, constantly. They are the workhorses, they are dependable and reliable.
So your probably wondering, "workhorse" that's not very exciting or a term of endearment.
I mean it in a good way!
If I ran my own business and had to pay people using my own money. I'd hire workhorses that is the best compliment I can give as a Yorkshire man*!
*Yorkshire men are known for not been free spending with their own money, tight in other words!