| Why Reinvent The Wheel? | | | | computerise its conference booking and billing system, |
| For software, be it a database, operating system or | | | | which up until that time had been paper based. As a |
| any other application, whatever you need, chances are | | | | consultant, having analysed their requirements, I |
| something very similar has already been written. | | | | concluded that what they were looking for was very |
| Having located something similar it is usually very easy | | | | similar to a hotel management system. After a search |
| to adapt it to your own needs. This is a process that | | | | for suitable suppliers, Innsite (now RedSky IT) were |
| works with both commercial software and with open | | | | selected. Innsite had a modular suite of programmes |
| source software, and provides many benefits including | | | | that would do everything that Warwick required |
| reduced cost, time and risk. | | | | except for booking facilities such as meeting rooms |
| An Interruption | | | | and AV equipment. They were happy to write a |
| The standard life cycle of a typical software | | | | module especially for Warwick's needs. This solution |
| development project can be summarised as | | | | turned out to be more cost effective for Warwick |
| perception of need, systems analysis, requirements | | | | than having their own system written. |
| definition, design, implementation, testing, installation, | | | | Complaints Database |
| maintenance. Variations on this are possible, such as | | | | Recently I was approached to fix problems with a |
| prototyping and rapid application development. | | | | database used to track complaints in a disability |
| However all variations go through each of these | | | | advocacy service. The database had been written in |
| stages in some form. | | | | house several years previously, the developer had left |
| By interrupting the process after the requirements | | | | and the documentation was missing. It quickly became |
| definition stage it is possible to short-circuit much of the | | | | apparent that replacing the database was going to be |
| rest of the process. Given the requirements it is often | | | | easier that trying to fix a database that was running |
| possible to find some existing software that provides | | | | under an unsupported database system. |
| most of the desired functionality. To do this it is | | | | After a workflow analysis and requirements definition |
| necessary to have a wide appreciation of | | | | for the database it became apparent that what was |
| contemporary software in many fields. Target | | | | required was very similar to a Customer Relationship |
| systems for re-use are often found in unexpected | | | | Management (CRM) database. A search on |
| places. | | | | Sourceforge, the home of many open source |
| Re-purposing existing software will usually take less | | | | software projects, turned up several CRM systems. |
| time, cost and risk compared to writing new software | | | | The solution chosen most closely matched the |
| from scratch. Provided that a software application can | | | | requirements, was most mature and was easiest to |
| be found that meets most of the requirements for the | | | | adapt to the clients needs. The solution is based on a |
| new system, then adding the extra functionality will | | | | MySQL database with an interface written in PHP, |
| involve less time, cost and risk. If a business case can | | | | both of which are also free software. The simplest |
| be made for developing a new software system, then | | | | way of providing the necessary platform to run the |
| a stronger business case can be made for | | | | solution on was to install XAMPP, a single package |
| re-purposing existing software. | | | | that provides an integrated set of Apache web server, |
| Two Examples | | | | MySQL database and PHP web programming |
| Here are two examples from my own experience. | | | | interface. |
| The first was a conference billing and booking system | | | | Summary |
| for Warwick University, the second a database to | | | | Interrupting the standard life cycle of a software |
| track and gather statistics at a disability advocacy | | | | development project after the requirements have |
| service. | | | | been defined, to locate existing software that meets |
| Conference Billing and Booking | | | | most of the desired functionality, can reduce the time, |
| In the mid 1980's Warwick University wanted to | | | | cost and risk involved in delivering a working product. |