Home > Services > Agile Software Development
Services
Agile Software Development
We believe that Agile Development is often the best way to build solid Software that meets our clients needs.
While this is our preferred option, there are times when we will adapt our methodology to fit a specific project.
Ultimately, we want to work in a way that makes you feel the most comfortable, but still ensures a productive and
communicative project environment.
Iterative Development
Iterative Development occurs when software is developed in small cycles that delivery a predefined amount of tested functionality to the users.
- Small
- Should be at least 1 week and at most 1 month
- Predefined
- The work must be defined, estimated, prioritized and agreed on prior to the start of an iteration
- Tested
- The functionality developed should be high quality and include automated Unit Tests to ensure the developed software works as expected
- User Functionality
- It has to work from the perspective of the user of the system
This process allows for early identification of errors in specification, in development and in communication so that those problems can be addressed.
Automation
Automation of our processes is important because it brings standardization. It is also important because it is a deliverable we can give to our clients
when we hand-off a project. Your internal developers will be able to pick-up right where we left off.
Unit Testing
Unit Testing is the practice of developing small tests for each unit of code as the code is developed. These tests get combined into an automated test suite
that is run continuously throughout the lifecycle of the application. These tests are the basis for quality as they test the lowest level pieces of the application.
The tests help prove to the team that the code does what it is expected to do so the team can have confidence in the project as a whole. Unit Tests also help us to
be Agile by allowing us to respond to changing requirements without fear of unknowingly breaking the system.
Continuous Integration
Continuous Integration is the process of having an on-going automated build, integration and testing process.
It helps us walk-the-walk in addition to talk-the-talk.
Customer Participation
The customer is an active participant in the project. They can and should make decisions about priorities and changes in functionality. This participation
helps ensure the final product meets the needs of the customer. There should be no "big surprises" at the end of the project because the customer and users
have been involved in the whole process.
Back