We are not often the first developers to work on a project. More often, we are the second or third developers hired. This is for a variety of reasons, but we're often called in to finish projects where other developers got stuck or couldn't deliver results. One of the key things that we offer our clients is code level expertise- we know how things work and do top notch development. Unfortunately, nearly all the Joomla component development projects we take over have serious code level issues. In this post, I'll cover two common mistakes we see and how they cost our clients time, money, and sanity if not addressed.
1. No understanding of Model View Controller (MVC). MVC is the architectural design that underlies Joomla components. Is an industry-standard that you will find all over software development. For some reason, many developers never take the time to learn it or don't understand it properly. They put database code in the view or display HTML in the controller. The first cost to the client is wasted time and money. Joomla's component architecture offers cost savings by providing commonly re-used code, but many developers don't understand it well enough to take advantage of it. The second cost to the client is that in not properly using MVC, the component cannot take advantage of the benefits from using that architecture, like layout overrides. This can cause future projects to become more expensive than necessary by the duplication of code and work.
What the above two mistakes come down to are simple laziness. There is a kind of developer that is focused only on speed of completion and getting paid. They are fixated on closing out the project and not their client's long term results. Doing things right takes time to learn how and so they focus simply on getting things done. If you're in the market for a Joomla component developer, I encourage you to focus on developers who demonstrate an interest in quality and a focus on Joomla. Conversely, a red flag should pop up for you for any development company that focuses their marketing around price, speed, and developing for a wide variety of platforms.
Bonus read: why conventions are important.