Our Methodology - An Agile Approach
SD's ideals, values, and approach lie within the Agile and Lean Software Development Methodologies. In order to review and understand these methodologies, it is important to understand alternative to traditional methods.
Over the past few decades, there have been several themes across almost all software development projects performed using alternative, traditional (waterfall) methods. One is that traditional approaches assume that inputs (or requirements) are well defined and do not change. The other assumption is that end users are engaged and understand the requirements development process. In a creative solution development process, these assumptions are typically incorrect and lead to costly overruns and missed expectations.
To overcome these limitations, the SD team changes the focus to embracing change with Agile and Lean methodologies and rapid iterations. This involves always trying to reduce the complexity of problem to be solved and delivering in a value-based, incremental fashion.
SD's principles for agile project management methodology include:
Visibility
Business people are collaborated with and provided results throughout the project lifecycle, not just at the end of the project as with traditional software development.
Value
Working software is delivered early (within the first several week) and often to shorten the feedback loop and provide business value as quickly as possible.
A continuous integration build server will be setup to recompile the application, run the automated tests and deploy the application whenever changes are made.
Change
Iterative-software development lends itself to making changes on the fly as business people review and suggest improvements to working software.
Quality
Automated tests are written while the application is being built ensuring features work as expected and added features do not break existing functionality.
Mitigated Risk
Because of the aforementioned items, risk is significantly mitigated as business people are included in every step of the process, change is expected and appropriate tests are in place to ensure changes in direction don’t break existing functionality.
Over the past few decades, there have been several themes across almost all software development projects performed using alternative, traditional (waterfall) methods. One is that traditional approaches assume that inputs (or requirements) are well defined and do not change. The other assumption is that end users are engaged and understand the requirements development process. In a creative solution development process, these assumptions are typically incorrect and lead to costly overruns and missed expectations.
To overcome these limitations, the SD team changes the focus to embracing change with Agile and Lean methodologies and rapid iterations. This involves always trying to reduce the complexity of problem to be solved and delivering in a value-based, incremental fashion.
SD's principles for agile project management methodology include:
Visibility
Business people are collaborated with and provided results throughout the project lifecycle, not just at the end of the project as with traditional software development.
Value
Working software is delivered early (within the first several week) and often to shorten the feedback loop and provide business value as quickly as possible.
A continuous integration build server will be setup to recompile the application, run the automated tests and deploy the application whenever changes are made.
Change
Iterative-software development lends itself to making changes on the fly as business people review and suggest improvements to working software.
Quality
Automated tests are written while the application is being built ensuring features work as expected and added features do not break existing functionality.
Mitigated Risk
Because of the aforementioned items, risk is significantly mitigated as business people are included in every step of the process, change is expected and appropriate tests are in place to ensure changes in direction don’t break existing functionality.