Weeding out the weak
Following up from Jeff Artwood’s recent post, Programming: Love It or Leave It I thought I would share some of my recent experiences and some thoughts on the topic.
Firstly, I completely agree with what Jeff is saying about there being too many people in the software industry because it is convenient or because they are out to make some quick money. A large number of people are simply never going to be more than average developers and they do not really have a strong passion for what they are doing. They are the nine to fivers that give only what is required (or less) and are never trying to move forward or improve things.
The passion for development
Having recently been made redundant along with Christian Biggins and numerous other co-workers, a few points have come to mind. It is quite sad that in the recent “cost cutting” exercise it was predominantly the more skilled and experienced developers that were dumped while what is left of the team now consists (not entirely) of the nine to fivers mentioned above. Most of the people that were trying to improve quality and make changes for the better have been left wondering why they committed themselves so completely.
The other point that has become apparent to me is that myself and a few others are indeed the type of developers that will not simply give up on software development because of the situation or the “economic downturn” or any other reason. Several of us have launched new projects (including Fliquid Studios) and spent even more time developing now than when we were officially employed to do so. I intend to keep developing, giving what I can back to the community and in turn learn new skills for myself. I honestly have a passion for web application development that will not go away.
The problem with the industry
I believe that the problem is not that there are too many developers or developers without a true passion for what they do. Instead, I am suggesting the problem is that for too long our “clients” (be they our employees, third party customers or otherwise) and indeed ourselves have been simply accepting sub-standard results.
The problem our clients face is that it is not always easy to determine whether software is poor quality or not without some kind of technical insight. It is far too easy for a developer to make an application look nice while underneath it is a steaming pile of…. less than good quality code.
Rather than waiting for the “bubble” to burst to weed out the developers without true desire to be in the industry I suggest we try to change things so they either improve what they are producing or make a conscious decision that software development is not for them.
What can we do?
If our clients are unable to ensure the quality of what is being delivered then it is up to us, as passionate software developers, to continually push for higher quality and improved standards. By continually increasing the standards and showing the kind of high quality, reduced-bug, innovative software that can be delivered, sub-standard developers will be forced to improve what they are producing or move on.
I’ve included a few initial ideas below to get the discussion started on this topic but what I am suggesting is just the beginning.
- Implement coding standards in your organisation (for example PHP, SQL standards etc) for code formatting and documentation. Whether this is your own standard or the use of an existing one such as the Zend Coding Standards. You must also ensure that developers are familiar with and understand the reason for the standards.
- Code reviews – If code reviews aren’t being performed by senior developers in your organisation this is a great way to “catch” problems in software or the lack of good quality code before it’s too late.
- Open Source your software (or parts of it at least) – Feedback and improvements from other developers with a different perspective can be a great way to improve quality and detect otherwise undiscovered problems in code. It also gives something back to the community.
- Be proactive – Put forward new ideas as often as your can. Try implementing small improvements. Encourage an open forum for ideas. This kind of proactive ideas driven development helps with innovation and moving forwards.
- Implement automated testing (however this is appropriate) for your application and enforce that everything passes
The IT industry is full of low standard results. We should be proactive in trying to improve things rather than waiting for the bubble to burst. There are numerous ways we can kick off this process to start towards a future of high quality software and we, as developers have the knowledge to make a difference.
As always I would love to hear your thoughts and feedback on this article. Am I a raving lunatic or do I make some sort of sense? This article is intended to open up discussion on various methods we can use to improve software as a whole so please feel free to contact me with any of your thoughts.