Testing is an important part of the software development life cycle. I was shown this image today and it got me thinking. We are currently evaluating, and likely to press ahead with completion of purchase in the next week of a new project management system.
The new system will have an integrated source control monitoring system, code review system and bug / feature tracking capability. This fitting in with our somewhat agile development policy.
The number of organizations that seem to consider that software testing is a separate entity and goal from software development is quite surprising. We actively encourage testing as we go policy, and indeed even after a project has been accepted as completed by a client, in many cases we are likely to keep the project alive beyond that. Taking the time to improve the technology so that next time a client comes along and wants something similar, we can role out at a fraction of the development time and get on with our new projects.
The end user must absolutely be involved in these life cycles, they ultimately will know more about the daily operation of the software than anyone else. From day one a client will be granted access to our issue tracking software. They will be able to submit requests for features and report bugs, which the development team will investigate and the accounting team will bill for where applicable.
This allows us to give better estimates in the future we have the information on the system – we know what issues we ran into when doing things previously and this helps us estimate better. It shows how many bugs were encountered, how much code was used this comes together and helps project management figure out whats going on, when to expect things and allows us to deliver projects ahead of schedule and within budget.