Do you know something I never heard is “the project is finished ahead of schedule”, its always behind. Now I thought maybe this is down to over-optimistic planning, and so cursing project to be behind schedule right from the start. Certain seemingly minor dependencies grow into big ones over time as they start to affect other dependencies. One thing that can be planned, and be delivered either on schedule or ahead of schedule, Agile-run projects, simply because the whole outlook is one of blinding optimism, but solid processes. How good it would be to say to a client that the project is ahead of schedule, so if they have any other requirements it is possible to include them. Of course, I am not realistic – it is considered prudent to hold back on reporting too much progress, to give yourself a buffer zone for the unpredictable.
An optional element of Agile is test automation, but it is with automation that you really get the full benefit of Agile. Test automation is another part of the end to end process of delivering user stories/requirements in finished product. And not just unit testing, but front-end driven testing (the best way to validate user stories). But it is not a forgiving area – try implementing that kind of test automation too late, and it could hamper progress of project, and end up too much trouble than it’s worth. Test Automation can result in actually hearing “the project is finished ahead of schedule”, because good test automation process means less bugs, and far more bugs caught early.
But now start planning at the beginning; if tests are drawn up against user stories as they are done, then that means the test automation setup can run in parallel with development (in fact many of the developers unit tests can be utilised to speed up progress). This is in realms of BDD, but I do believe this should be a rule, rather than methodology specific. Always assume automation when writing test scripts, and user story scenarios to write them. They are what is to be tested, after all. This process means that everything in the chain is hanging tighter together. As development requirements change, as user stories may be added or changed, the test automation is updated as part of same process.
There are tools where you can do all of this in one bit of software, or a few tools hooked up together (Selenium/Fitnesse) has been a long favourite for Acceptance Test Management and test automation. The user stories go straight to Acceptance Tests – important to keep the goal in focus. All the stakeholder is interested is progress, and if they need to worry – so they will be looking at user story history, generally percentage completion – maybe the test results. The Product Owner and Scrummaster will be keeping an eye on testing activities, and with something like Fitnesse or SpecFlow, can initiate automated tests with click of a button, by simply selecting user stories, or set of user stories, or just one scenario. Transparency is a favourite word in business at the moment, and Agile goes some way to provide it.