I have an unconventional streak a mile wide. There is an innate aspect of my personality that seeks out divergent paths from the main flow, whether it's choosing a career (entrepreneur of course) or deciding what to eat (vegetarian). When it comes to programming however, I'm one of the most boring by-the-book guys you'll find. The reason why is that I also have a practical streak a mile wide and being conventional offers enormous benefits over all the alternate routes that attract us code monkeys. In this post I'm going to explain how conventions affect code and how this affects your business's bottom line.
The Rationale for Conventions
Just like countries have laws, different applications and frameworks have conventions. These are the rules that govern interaction and structure within their domain and are considered best practices. The reasons that conventions exist are to speed up development by standardizing interactions in the code. They make it so that different kinds of developers working years apart in different locations can use each other’s work. This is like knowing that if you live in Los Angeles and fly to New York in two years, you will still cross the street when the pedestrian sign shows a green symbol because that is how things work in the United States. However in Vietnam, a country with different conventions, you cross the street whenever you want and just move slowly so traffic can drive around you.
When a programmer builds a completely custom solution and ignores the conventions used by the application or environment they're building for, it has two costs to the business.
First, there is an upfront cost. Regardless of how empowering programming is, it's also challenging. It takes time to design and implement solutions and then more time to debug them and make sure they're stable. This time is wasted when conventions that exist to solve a problem are ignored. For your company, that cost in time is reflected in a cost in dollars if the solution is outsourced or availability to tackle problems or exploit opportunities if the programmer is internal.
Second, there is the cost of maintenance. When conventions are ignored, the solution created is immediately understood only by the programmer who created it. Future developers will have to review the first programmer's work to figure out how and why they implemented the code the way they did. Additionally, any code that ignores conventions also ignores the benefits using those conventions offers. Often times a framework or application will empower code that uses its conventions to easily be altered in minimally invasive and quick ways.
Your company should employ programmers and solutions that are designed to work with the environment that you use, including the conventions of that environment, be it Joomla or the Android Application Framework. If you do not, you incur a significant cost in money and time. Developers are expensive and programming custom solutions is expensive. Your company should be footing the bill for this only when it’s necessary and only for what is needed to meet your goals.
Without understanding code it's challenging to determine how convention compliant developers are. However, a good piece of advice you can follow is to avoid working with anyone who doesn't show a strong knowledge of and interest in the environment your solution needs to be designed for. Both individual developers and vendors should have a body of work that reflects a focus in that environment and you should avoid generalists even if they appear to be strong programmers. It's more cost effective and results in a better solution to hire focused work horses rather than self-proclaimed coding "rock stars."