Dixons is nearing completion of a UK-wide roll-out of a bespoke point of sale system which has been created using the agile development method.
The retailer used the agile method to improve the flexibility of the software development process and cope with the rapidly changing demands of the retail environment.
Jo Humphries, programme manager at Dixons, said, "We needed greater flexibility than off-the-shelf software and wanted a development and system platform that would be responsive to market conditions."
Getting the business involved has been key to the project’s success, Humphries said. This meant business staff were confident they were getting the software they needed and the sign-off and approval processes were quick. Agile programming also reduced errors and missing functionality. "We were confident there would be no surprises," said Humphries.
Due to complete in May, the project will replace a 10-year-old system with a flexible trading platform that supports multiple currencies and 24-hour trading. It will be available across the company’s four main brands: Dixons, Currys, The Link and PC World.
Each store is being equipped with Windows XP-based touch-screen point of sale terminals connected to a local SAP database. The system uses web services to link to IBM Websphere application servers at Dixons’ head office.
Humphries said the application uses workflow systems to present in-store staff with the screen they require, which simplifies training. It also allows staff to take card payments at terminals rather than only at cash tills.
It was felt that traditional in-house software development would have taken too long for the point of sale project, as the thorough business analysis required would not have kept up with the pace of change in the company. Instead, Dixons hired custom software specialist ThoughtWorks to support the application development process and train Dixon’s in-house team in the agile methodology.
More than 90 ThoughtWorks programmers, based at Dixon’s Hemel Hempstead site and offices in Bangalore, San Francisco and Chicago, worked on the project.
Dave Whalley, account director at ThoughtWorks, said the global development effort was required because agile programming involves a highly iterative development process, where the business is able to try application code regularly. Whalley said 24x7 development was essential to support this level of coding. "It has given us a tremendous increase in terms of developer productivity," he said.
What is agile programming?
Agile programming is a method of running a software development project where end-users are involved at every step.
Rather than the traditional waterfall method of software development - specification, design, analysis, coding, testing, implementation - agile programming is continuous. Through an iterative process of improvement, end-users are provided with regular updates to functionality on which they provide feedback to the programming team.
The benefit is that the end product should more closely meet user requirements and that the application can be deployed in pilot before it is fully developed.