| Agile is based upon a number of guiding principles that | | | | framework is empowering because it enables |
| all Agile teams follow. For the purposes of this | | | | continuous improvement, with testing/quality |
| discussion, three principles - or values - are of | | | | assurance occurring as part of the iterative process, |
| particular interest:o Quality software developmento | | | | rather than only periodically or at the end of a long |
| Iterative flexibilityo Continuous improvement | | | | process when it is often difficult or not cost |
| Quality Software Development | | | | effective to fix coding defects or to incorporate |
| The primary focus of Agile development is to enable | | | | lessons learned along the way. Agile also makes the |
| the development of quality software that satisfies a | | | | testing and QA process transparent to the |
| customer need - i.e. provides a functioning feature or | | | | developers who originate the source or static code |
| capability - within a specific period of time (typically | | | | analysis, further contributing to their learning and |
| no more than a few weeks) called an "iteration". In | | | | facilitating future improvements and coding |
| theory, a product developed in an Agile environment | | | | efficiencies. |
| could be market-ready after each iteration. | | | | Bug-Free Code Greases Agile's Wheels |
| Delivering a series of market-ready products, each in | | | | One of the development principles put forth in the |
| just weeks, demands that a rigorous quality process | | | | Agile Manifesto (widely recognized as the de facto |
| be built into the Agile development cycle. Each | | | | definition of Agile) states that, "Working software is |
| iteration must be fully developed: tested, defect-free, | | | | the primary measure of progress." Working software |
| and complete with documentation. Our expert team | | | | implies software that is free of issues that break |
| solve source code analysis problem easily with wide | | | | builds, cause unexpected behaviour, or which do not |
| experience. | | | | meet the product's requirements, as well as mundane |
| Iterative Flexibility | | | | programming defects (a.k.a. "bugs"). |
| With a focus on speed and nimbleness, Agile is open | | | | This principle is not unique to Agile - many software |
| to changes that inevitably arise throughout the | | | | development processes, including formal ones such as |
| development cycle. The iterative process is flexible, | | | | CMMI and Six Sigma, encourage the creation of |
| based on an understanding that original requirements | | | | bug-free code as a fundamental principle. These |
| may (or will likely) need to change due to customer | | | | processes encourage in-phase bug containment - the |
| demand, market conditions, or other reasons. | | | | practise of preventing bugs from being passed |
| Because business users are involved throughout the | | | | downstream from the phase in which they are |
| process, and because each iteration is short, new | | | | created. Agile also implicitly emphasizes in-phase bug |
| requirements can be introduced and prioritized very | | | | containment. Given its focus on short iterations, Agile |
| quickly. | | | | processes must ensure that any potential software |
| Continuous Improvement | | | | degradations are quickly identified and corrected so |
| An Agile environment provides developers with an | | | | that the whole team can move on to the next |
| opportunity to learn new skills and to exercise | | | | iteration - all while creating functionally complete, |
| greater autonomy to do their jobs. The iterative | | | | working software. |