What does that mean and how will you know if your developer is one?

Cowboy Coder

I was recently engaged by a client to write a couple of payment plugins for the VirtueMart e-commerce system. VirtueMart is a Joomla-based shopping cart that is pretty popular. I love writing code, but to be honest, this was a really difficult experience for me. Not because the code itself was so hard, but because of what I found once I got started.

When I started examining the site to plan out the code, I started finding code hacks throughout the core system and shopping cart. No, it wasn’t a hacker that had infiltrated the site. It was the previous developer. He was a “cowboy coder!”

What the heck is a “Cowboy Coder?”

What the heck is a “cowboy coder” you might be asking? No. I know what you’re thinking… It isn’t a programmer from Texas! A cowboy coder is a programmer that ‘shoots from the hip.’ In other words, one that bangs out code just to get it done in the quickest, fastest way possible without planning and consideration to future development. It is usually a symptom of a developer that doesn’t understand the system and doesn’t want to take the time to research it. And they often will modify the code for the existing system instead of writing code that complements the system. That’s a problem!

What The Cowboy Coding Approach Means To the Website Owner

Any content management system, whether it is WordPress, Joomla, Drupal, or whatever, has its own way of doing things and specific ways that add-ons should be programmed. If the add-ons are programmed correctly, not only are they much easier (and less expensive) to change in the future, but they also allow the system to function as originally intended, be updateable and all that good stuff. The “Cowboy Coding” approach to development goes against this philosophy.

While cowboy coding might – but not always - mean that it is cheaper up front, it absolutely makes it way more expensive down the road. In this case, my client is going to face a number of expensive challenges because of the original developer’s approach:

1. Upgrading their core system is harder, takes longer, and is more expensive.

Because changes were made to the core system, those changes will make updating the system with security and bug fixes much more challenging in the future.

For instance, Joomla and WordPress both offer one-click upgrades, which usually take 10-15 minutes (sometimes less). These are not possible for this client now, because those upgrades may overwrite the “cowboy coder’s” changes and the site might stop working. Any new upgrade will take a lot of analysis to confirm that the updates won’t overwrite the modified code. If the updates do overwrite the code, then the cowboy coder’s code has to be re-applied to the new system updates and tested.

So, the upgrade has gone from minutes to hours or possibly even days.

2. Upgrading their shopping cart system is also more challenging

The same thing applies here as above. As there are bug fixes, security updates, etc. to the shopping cart system, each update will have to be carefully analyzed and tested to make sure that it doesn’t break the system and take their e-commerce functionality down. This can especially be a problem whenever security updates come out. You want to get those security patches applied as quickly as possible.

3. Future development will take more time and be more costly

Once a system has been modified, it no longer behaves as expected. This means it takes longer to develop, is harder to debug, and is harder to test. More time means increased cost!

4. Introducing new security concerns

Often this “cowboy coding” approach will circumvent security features available in the system. This can make the system less secure and more easily hacked by the bad guys.

Our Approach To Website Development

We take pride in our work and believe that well designed code gives our clients a number of benefits:

  • Updates: You can still update your system without excessive analysis and testing.
  • Security: Your site will be more secure.
  • Future Enhancements: It will be easier and less expensive to modify the system down the road, when you need to add new functionality or modify existing functionality.

So, don’t be afraid to ask your developer about their approach to development.

  • Are they modifying the core system code?
  • Are they using best practices that align with how the system is designed?
  • Are they doing anything that might make it harder to update and maintain the system?

Conclusion

It is important to understand what your developer is doing, because it will affect your bottom line. You don’t need to know every detail of the code, but you certainly want to know their approach to programming and its impact to your website. Don’t be afraid to ask questions.