We believe that one of the highest priorities is to deliver business value through early and continous delivery of software. This plays out it in short iterations of successive delivery culminating in new releases of your software. Waterfall methodologies which include large requirements gathering windows and BDUF (Big Design Up-Front) documents and artifacts provide little business value to the customer. Time and time again we see that what is delivered is not what your customer actually wanted. Agile can help with this.
We believe that working software is the primary measure of progress on your projects. Too many times we rely on project plans which give a false sense of task completion - and as the project is nearing completion in the plan - we see that many unknowns and missed estimates cause your dates to slip. The ability to get quick and accurate feedback during the project's iterations give us the information we need to be able to make modifications to the schedule as the project progresses.
We believe that business users and customers must work together with your development team to ensure successful software delivery. Too many times your business users are only involved in gathering requirements and then relegated to waiting for their new system only to find out in the UAT phase that its not what they wanted. The daily interactions with the business and your development team will ensure that what you deliver is in fact what your business users want.
Plan your software in releases with multiple short iterations of two to three weeks putting out a new release every two - three months. While we can set a date for a release. We can plan for it - however - we can not see into the future to guarantee it.
Document your users' functionality requests in User Stories - short one to two sentence requirements that provide a high-level picture of a requirement. These stories are then organized by the business - and prioritized into iterations. Your development team then estimates these stories and begin working on them thru each iteration. The developers work daily with the business to develop acceptance criteria and tests to ensure that what was requested is delivered.
Testing is paramount to a successful project. Our developers use Test-Driven development (TDD) along with automated unit and functional tests to ensure that your systems are fully tested and allow for quick regression testing at any time.
Continuously build and test your project. Continuous integration is used to build and test your system after each change. This ensures that you get quick feedback after any change to the system. This gives you the confidence to refactor your application anytime.