A recent discussion with a client highlighted the frustrations people have in finding a reliable Joomla freelancer to create, update or maintain their site. To most, the world of development is opaque and seemingly unregulated. I don't blame prospective clients for their apprehension when embarking on a project with a new developer. Neither side of the equation is at fault here. Technology options are plentiful, trends change and quoted prices vary wildly. These difficulties are certainly not specific to Joomla, but the points below are with special reference to Joomla, as it has it's own peculiarities. We can't do much about the technology ecosystem, but what we can do is help each side appreciate the considerations and limitations of the other. 

In this article, I'd like to cover the 8 things I'd like prospective clients to know before taking on a new Joomla developer

1. You're paying for their time, and you get what you pay for

I believe it's a symptom of the globalised online-freelancer-market in which we inhabit, that the relationship between client and freelancer can be so transactional as to become adversary. Clients are naturally looking to get their needs met at minimal cost. If they post their requirements on any of the freelancer sites, they'll get some pretty amazing offers along side others ten or twenty times that amount. This makes several impressions on the client; first, that the web development market is inherently fickle, and secondly, that higher offers are clearly exploitative and not worth considering. In this race to the bottom, freelancers are naturally inclined to want to get it done, get paid and get out, which doesn't lend itself to a considered approach or many of the items below.

Certainly clients should be budget minded, but there is no such thing as a free lunch, so make sure that your developer is given the time to meet all of the criteria below.

2. Good freelancers will have evidence

This may seem obvious, but get evidence of the developers skills through past work, community involvement and recommendations. How much due diligence you do obviously depends on the size of a contract, but its worth seeing what they have done in the past. If they have applications that are in your sector or share similar features or design, then even better. If your project uses Joomla, it's useful to ascertain whether they specialise in the CMS or whether it's just one of many tools in their arsenal. If they claim to be experts in Drupal, Typo3, Shopify and Joomla on their freelancer profiles, then I'd be wary. And get recommendations. An easy way of doing this is to make contact through the contact form of portfolio sites provided by the developer asking for a recommendation. 

Joomla's certification programme helps provide a benchmark for clients to use to be assured of the competency in Joomla. Given the low levels of adoption of these certifications (and I hope this changes), if your provider is certified, then this in an excellent way to be assured of their Joomla expertise.

As an aside to this, as a Joomla developer myself, I know how flexible the system is, but it's not the panacea to every web project. If I have someone who wants to set up a blog for affiliate marketing, and not requiring anything else, I'll suggest they use a different CMS. The one that everyone uses. The one starting with W.

3. Configurator vs Developer vs Designer vs SEO/SEM 

It's tempting to think that your Joomla expert is an expert at every service related to your website, but its not the case. You can certainly get me or any other Joomla developer to tackle each of these tasks, but each one is a specialist field in itself, so if you want 100% in all these areas, you're probably looking for several freelancers, not one (or a company that retains all these skilled individuals).

Configurator: I'm not sure it's really a word, but this refers to contractors who can install Joomla, add content, create menus, install extensions and templates and essentially get a full site completed. There are plenty of people who have those skills, and in many cases, they are all you need to get your site launched. There are lots of quality commercial templates out there as well as great extensions. But you'll come unstuck when you need to change something in the sites functionality that can't be done by changing settings or installing another plugin. This type of contractor (who often refer to themselves as developers) don't have the skills to create custom code to add their own extensions. Or worse still, they'll know just enough to have a go and make a mess of it.

Developer: These are the people who make your Joomla site do something that requires custom coding. Thankfully, Joomla is extremely extensible, allowing for custom extensions (components, modules, plugins and libraries) to be created that leverage the power of Joomla's code base to do pretty much anything. These skills are rarer, so expect to pay more.

Designer: There's a difference between making things work and making things pretty. Both are very important to a web application's success, but they're not necessarily skills held by the same person. If your project calls for a highly customised design or unique user interface, then you'll want to ensure that your freelancer is an expert in this type of work.

SEO & SEM: Once you've got your Joomla site built, you'll want people to hear about it. Whoever creates your site should bear basic SEO principles in mind, but this area is also somewhat of a dark art (in my opinion), and finding an expert can be very advantageous.

The person you find will likely have a combination of two or more of these skill sets, but be mindful that they are all specialisms in their own right, so don't assume that because your contractor can do one, they can do them all.

4. Insist on documentation, if not for you, then for future developers

Its important that you get a record of the work done by your developers, especially if you intend to hire new developers on an ad-hoc basis (I explain the perils of this approach in point 6). Ideally this would be official documentation covering all changes and their functionality, but in its simplest form, it's an email from your developer explaining what changes they've made, to which files. Even if you don't understand this, your next developer will, and it may make their job immeasurably easier. It's not time consuming for your developer to do this, and it encourages them to develop in a sensible way. And this leads me on to the next two points related to sensible development.

5. Make it clear: No core hacking

Much of the time, the quickest way of achieving an unusual change to the functionality of your site is to edit a core Joomla file. It gets around having to create an extension or an override, and it does the job. For the time being. This approach makes sense to the client because they're getting it done quickly and cheaply. And it works for the developer because they don't imagine they'll be around when its time to update the site, at which time you'll discover your changes are gone.

This is the once aspect of poor development causes most harm. It leaves clients understandably frustrated when they inevitably have to update their site, and it gives the entire Joomla developer market a bad name. Don't do it! 

Adhering to the no core change principle requires effort on the part of both parties. It requires the developer to make the additional effort to add the functionality through plugins and overrides, and it requires the clients to accept they'll pay the cost of this. And if you decide that you just want it done as cheaply as possible, and to worry about the consequences later, then be aware that it's not the developers fault (unless you're unaware of this approach).

As a client, insist that no core files are edited in order to add functionality to the site, and accept this will come at a small premium that will repay itself many times in the lifetime of the web application.

6. Long term thinking

This is more about your general approach to development than any developer, and calls into consideration the overall approach to developing a website. As a general rule, the less extensions the better. I've worked on sites where dozens of developers had been involved at different times, and it showed! There were components that weren't used, more unpublished modules than published, had components calling plugins that called modules that called components, and where styles and scripts of one extension were making a mess of other extensions. 

A good developer will look at your web application as an overall entity, and look to streamline, uninstall and clean things up to avoid a Frankenstein's monster of a site. But here's the rub. This kind of thing takes time, so it costs money, and it's not very sexy. But if you can implement this type of development from the start, it'll save money and headaches in the long term.

Part of this long term thinking is to have a long term relationship with your developer. Obviously this is hard to enter into when you're new to each other, but it's preferable if it can be achieved. It encourages the developer to work on the site in a way that is conducive to its long term operation, and it provides consistency and an assurance of understanding the client has.

I believe that the gig economy has had a damaging effect on the web development arena, encouraging short cuts, undercutting and unrealistic expectations from prospective clients. There's no easy fix to the uncertainty felt by clients when taking on a new developer, but hopefully the above pointers will give you an insight into the considerations that can often be the difference between a successful Joomla project and a disaster. 

Here is an example of the select lists possible with only a few lines of code...

<select name="country" class="countries presel-byip" id="countryId">
    <option value="">Select Country</option>
</select>
<select name="state" class="states" id="stateId">
    <option value="">Select State</option>
</select>
<select name="city" class="cities" id="cityId">
    <option value="">Select City</option>
</select>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
<script src="https://geodata.solutions/includes/countrystatecity.js"></script>
Back to Top