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