So, you’ve sold a new website, and you’re discussing with the client what they need. You have somebody on your staff who knows PHP, so regardless of what CMS you put the client on, you’ll be able to customize things and offer the client the exact functionality they want. This may seem like an ideal situation, but we can tell you from experience that it might not be such a good thing.
In many cases, doing custom programming on a website can cause more problems than it solves. This may sound counter-intuitive, but bear with us. Here’s why:
If you set the expectation that you can do whatever your customer wants, their expectations may become unrealistic, which will inevitably lead to them being unhappy when the job is done. Clients don’t always know what’s most important, and look to you — an expert in your field — to help guide them. If the client asks for something custom, then halfway through the job they change their mind, you’ll have a hard time making money on the deal, and the customer probably won’t be happy when they find out that the launch date has to be delayed. Conversely, if you set reasonable expectations ahead of time, the customer may be slightly disappointed at first, but will be pleased when those expectations are met.
Custom PHP can also introduce problems on upgrade. If something in the CMS changed, your custom code can break — and while the company that releases the CMS has probably tested it extensively before releasing it, there’s no telling how the new version will work with your PHP code. You may not really know if there’s going to be a problem until you upgrade, so for each site you’ll be crossing your fingers, upgrading, then dealing with the blowback from customers as problems emerge.
The more dissimilar your websites are, the more difficult it will be to support them all. If something isn’t working on one of your clients’ sites, your level-one staff won’t be able to tell if it’s because of the custom PHP code you wrote. This means that many issues will have to be escalated to your developers. If the person who wrote the PHP code is no longer with your company, someone else will be wading through it in an attempt to figure out what it does and how it works. Alternatively, if your sites are built on a good CMS without custom code, your staff will have a much easier time identifying a problem and determining its cause.
Members of our staff have been involved with hundreds of website development jobs from many different perspectives: company owner, salesperson, project manager, developer, designer, support person. We also work with a large network of digital agencies who build websites every day. We’ve seen a lot of website projects in process, and can assure you that the ones that are completed on time and under budget are a lot more pleasant for everyone.
We’ve also seen a lot of companies that can manage hundreds of websites with minimal support staff, and there’s a lot that can be learned from their success. An important part of this is finding a good CMS and selling the features that it has. If a client wants something that it can’t do (and it’s not critical), tell them you don’t support that feature. Will you lose a customer or two to a competitor who promises the moon? Maybe, but they’ll probably pay for it in the long run. Will the client be slightly disappointed if they have to temper their expectations ahead of time? It’s possible, but we promise they’ll be thrilled when the project is completed on time, and the site does exactly what you told them it would. If there’s a deal-breaker that they absolutely need, by all means, write a few lines of PHP code; just don’t automatically make it part of every project. You’ll find that you spend less time chasing problems, and more time selling and building profitable websites.