Design The software development life cycle SDLC

122 Chapter 6 n Software development While these estimates of values and costs are subjective, they do provide you with a relative measure of the importance and effort required for adding certain aspects of functionality to your system. By dividing the value of the increment by its estimated cost the value to cost ratio you can determine the added value that increment will pro- vide to your system and draw up a priority list – identifying the order in which the in- crements should be tackled. Note that estimated costs and values do not remain static as the project progresses and after each increment is released it is worth revisiting your cost and value estimates to determine if any changes need to be made. For example, having developed part of the system in one release your understanding of the coding in- volved may have improved and you might wish to revise down some other develop- ments costs particularly if you can reuse some code. Conversely, having completed an increment, you might realise that your cost estimates were too low and revise up the re- maining estimates accordingly. Having provided the user with another release they might have new ideas or change their mind on what aspects of the system are important to them. This may result in you having to readjust your value estimates and change your prioritise accordingly. The second example below provides an outline of how value to cost ratios might work in practice. Example 1 – Two increments Suppose you were developing a system for a user that logged and statistically analysed calls to a help desk. You might release this system to the user in two increments during the course of your project. The first release would provide the overall structure for the system and would allow the user to log calls to the help desk. The second release would provide the added functionality of the statistical analysis of the logged calls for example, identifying peak periods, common problems, regular callers, etc.. Thus, by providing the user with a partially working system early, it allows them to become familiar with the system’s operation before the added complexities of the analysis component are brought online. The first release would also enable them to start gathering data into the system earlier – data that would otherwise have been lost had they waited for a fully working system later on. This also means that you can check that the right information is being gathered by the system for subsequent analysis by the second release. Example 2 – Multiple increments Table 6.1 provides an example of a valuecost table for a student project that aimed to develop a simple web site to support a local, amateur football club. The club wanted to keep members and potential members informed of various aspects of the club including: match fixtures; results; important dates presentation evenings, etc.; duty rotas who was responsible for cutting the grass, assisting the referee on match days, etc.; contact details for the club committee and other officials; photograph