Ringtones Project – An Example of Extending Software

A JumbleSoft.com example of extending software rather than starting from scratch or just making do with off the shelf, ready made software;

NameMyTone.com design example

This fun project involving a streamlined ringtone delivery eCommerce website is a good example of extending existing off the shelf solutions to fulfil a specific brief; simplifying, making things easier for end users, developing with an eye to re-use components and minimize maintenance issues in the future. The opportunity to extend existing software plugins that allowed for hooking in to their existing code made this project rather less painful and long winded than it otherwise might have been. But plunging in to someone else’s code comes with it’s own issues ant potential pitfalls. We’ll be able to provide more detail here when the system goes live. In the meantime we’ll share some pointers that apply generally to the situation of extending existing code to add functionality and features that you want, along with a few invaluable cautionary notes;

Advantages of Extending Existing Software

Most of what you need is already there. There may be additional functionality that you would not have included if you were starting from scratch. There may already be a community of users and a developer all willing to give support and share useful information. A lot of the bugs and potential clashes with other code may have been identified and ironed out.

Pitfalls of Extending Existing Software And How to Defend Against the Risks

If you are too quick to choose an existing solution to extend you can end up being fooled by initial progress in being able to modify the code that later turns out to be a false economy. You can end up at a sticking point with the code, someone else’s code, and find out that there is no way to easily adapt it to your purpose.

Worse still you can fall foul of the dreaded update trap. Again, because it is someone else’s code, if they depreciate a function that you were depending on or simply rename a variable that you were using, you can update to their latest version and find your extension no longer works. Or their updated code may clash with another item of code that you are depending on elsewhere.

To give an example; If you were using Word press for your website and had a plugin for a contact form and decided to extend that plugin to include additional fields and functionality. then you would probably be finished much quicker than if you had started from scratch. The problem comes when a new Word press version comes out or the original contact form plugin gets revised by the author and you want to update. Anything can break in relation to anything; your extension may stop working, the plugin could clash with WordPress, WordPress could stoop working smoothly with your extension or seize up altogether and not even let you log in to your admin area.

There is a reason why WordPress advises you to back up your system and switch off all plug ins before updating. That way you can turn back on each plugin in turn and know straight away which item is clashing  with the updates. Just because things are usually fine doesn’t mean you wont come a cropper on day, and the cost and bother of putting things right when they do can be catastrophic. Adding your own extensions to the mix can only complicate things further.

So how can you minimise the potential for such complications while still enjoying the benefits of piggybacking on other people’s code (where legally permissible of course);

Minimising the Risks When Extending Software

Firstly you can do a little extra due diligence when it comes to picking a candidate for code to extend to make sure it’s of good pedigree;

  • Is the code set up for extending with things like handles and other things that mean they had in mind for other people to extend their code?
  • Is their code already popular and therefore likely to not be causing lots of other people problems? This also indicates that the developers and the user community will work out issues quickly when they arise because many people have a shared investment in the product.
  • An established track record of having produced popular code before is also a good indicator of reliability and support in the case of brand new code that hasn’t established a track record of it’s own

Secondly try to isolate your modifications from the code itself. Ideally do this in a way that will allow the original code to be updated without overwriting your modifications and additions. Some developers set things up  to make this easy and can be a big factor in guiding your choice of whose code you might chose to use and adapt to your purpose. Isolating your code also makes bug fixing easier when such becomes necessary, and allows you to switch off or replace parts if it becomes beneficial to do so.

Interested in hiring us? 

Email us with your idea or requirements to enquiries@jumblesoft.com

We’ll look forward to hearing from you.