Choose a job you love, and you will never have to work a day in your life.

Many of you will have heard this quote before but for those who haven’t, it’s a quote from Confucius, a Chinese teacher, editor, politician, and philosopher of the Spring and Autumn period of Chinese history. That being said, the origin of this particular quote is not the topic of this post, but more the meaning and how I feel that more people could benefit from paying attention to this.

It’s quite likely that many of us in the tech industry already live by this whether or not it’s intentional or not. Like me, I imagine many of you do what you do because you enjoy it, I didn’t chose to be a PHP developer for monetary gain or anything other than the fact that I enjoy it, which means that there is a burning passion within me for what I do.

Again, like many of you, I have too been in a situation where I am dealing with others in the industry who lack this passion and are essentially here to just make money. I don’t know about your personal experiences in these situations, but for me, I found that there were several conflicts and a growing frustration because of this. As things escalated over time my arguments were perceived as being progressively more confrontational and arrogant. Sure I’ll admit it, I’m often stubborn and arrogant, but who isn’t? I’m just a very outspoken person and I like people to know exactly what’s going on in my head.

The particular situation that sparked my need to write this article, had me in a position where I was responsible for taking on and managing a codebase, while progressively phasing out the contractors who were currently in control of the project. These contractors were all older than me, and had likely been writing PHP since long before I knew it existed, so I went in expecting to learn something from the process and hopefully draw from the last 6 years of my professional career, so that I could share some things that could perhaps help them. My expectations took a considerable hit once I actually got hold of the code for the project, as it was immediately obvious that corners had been cut left, right and centre, as well as very few standards and best practises being observed.

With this in mind, I set out to rectify these issues by proposing numerous fixes and routes to take, topics of conversations to have and guidelines to draw up, all of which were stone walled as soon as the documents and emails left my mail client. After a a week or so I managed to finally get a copy of their coding standards, and imagine my dismay when I found this to actually be a Java coding standard, not just a coding standard originally based on Java, but a coding standard document specifically written for Java, with no mention of PHP. Ignoring the fact that the system was built on top of Zend Framework and that this coding standard completely contradicted several parts of their own coding standard, it actually largely made code unreadable and introduced conventions that a PHP developer would never come in contact with, unless they learnt Java, as well as a few which are specifically labelled with ‘DO NOT DO THIS’.

Again I tried to push for some unification and to try and observe some standard practises so that this system could be easily managed, but with no luck. With each and every modification and addition to the code, my code was stopped at the review stage and involved me going back and rewriting the code to what could arguably be called, wrong. As this went on for more time I started noticing that in the code reviews, at least 50% of the changes that were required to my code, wasn’t actually my code, and was to make the contractors code match their own standards which they were constantly punishing me for not observing.

There came a situation where I had simply had enough and put my foot down, which resulted in a lecture of ‘defensive coding’, a concept that I hope no developer of my level is unaware of. To give you more of an idea, this particular task was a bug that I noticed when originally reviewing the application before I started the work.

During the sign up process, like many systems, the ‘Sign Up’ button was disabled until the Terms and Conditions box was checked, and unfortunately if you made a mistake during sign up, the page you were redirected to, had the box checked but the button disabled so I was tasked with modifying the javascript to prevent this from happening. I added the code to check whether or not the box was checked, and if so, enable the sign up button. The issue was that my code didn’t take into consideration that the default may change and the button may not be disabled by default, a perfectly adequate point and while developers should try to avoid basing any coding on defaults if at all possible, this was a situation where I had already deemed that this action was not required. Some of you may be questioning my choice here, but it’s quite simple, if the button was changed to be enabled by default, then the Terms and Conditions checkbox wouldn’t need to enable the button, therefore the code to perform this action would no longer be required, and frankly, writing code to essentially re-enable the feature if it had been disabled, is far worse than a lack of defensive coding.

This incident started to cause a fair bit of tension and in the end it came down to an overall review from the contractors that my code was bad, I observed no standards, ignored all best practises and refuse to take their advice at every turn. This incident gravely offended me, because through all of my negative traits, personality and otherwise, and despite the fact that I may sometimes be hard to work with, I’m not bad at my job and have to date yet to see any evidence proving that I am.

Finally I have reached the point, and I imagine those of you who are reading this are curious as to what this story has to do with the Confucius quote. Essentially, I believe that these individuals fall into the category of those who simply do because they can, rather than because they enjoy it, and I feel that this helps me prove how this has a negative effect. Having been in the industry longer than me and being older than me, it would be expected that they would know more than me and be able to make decisions above me and about me, and while I don’t dispute that perhaps in some instances they may have been able to do just that, and they may very well be very good at what they do and this was just an unfortunate case, but right there, in that moment, the authority was misplaced and their own ignorance and lack of passion to better themselves not only affected my job, but reflected on me negatively.

A lot of the actions taken, procedures followed and standards observed where all in place when I originally learnt PHP back in 2003 when I was 15, but unfortunately a lot of them have evolved or become redundant. I can’t imagine that I’m only the one who has been in this situation, and if you think about it, could your own situations have boiled down to the same conclusion?

This seems to be a large problem within every industry, that they’re being flooded by people who are just there to make money, which in itself slows the potential for growth and innovation, so my point right here is to reach those of you who don’t have the passion for what you do, and tell you to stop, and do what it is you want to do, not only are you missing out on your own goals and dreams but you’re also having a negative effect on the goals and dreams of others.

Do what you want to do, if you don’t know what it is, find it, ask for help, don’t stop asking or trying until you find it!