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