Agile Software Development
Day3 is a strong advocate of agile development for custom software development projects.
Traditional software development approaches have followed an engineering-inspired waterfall approach to developing systems, with long planning, analysis, design, build, and test phases only to be followed by the disappointment of unmet customer expectations or the failure of finding that a system has been built that nobody is interested in using.
Agile software development promotes iterative development, that is, developing small portions of the end-to-end solution in short, time-boxed iterations that typically last from one to two weeks. At the end of the iteration a working software product is demonstrated to stakeholders. This approach ensures customer feedback on the real product is received in real time, and that what is being built is relevant, applicable and useful to the target audience. Agile enables real-time data on end-user impact and value, allowing the project to adapt to changes quickly.
Agile is premised on maximising customer satisfaction and business value by rapid delivery of useful software, usually in weeks rather than months. Agile recognises that requirements change through the life of a project, as the team and the customer learn more together. Agile approaches drive close, daily cooperation between business people and developers. Working software is the principal measure of tangible progress ahead of budget and timeline-style progress reports. Agile means that we build what your customers want, as fast as possible, in the most price efficient manner possible.