I am breaking my two-year projects into two major phases: requirements and coding. Does that make my project agile?” The answer to this question is clearly no. Beyond that simple answer, we need to deliver an explanation of what will give a project an agile spin. The various agile processes have some successful patterns in common, which are isolated as key practices. These key practices are so essential to any agile project that they will affect the energy, spirit, and eventually the success of the agile project. These practices are, in no particular order:

  • Iterative-incremental development.

  • Test-driven development.

  • Continuous integration.

  • Face-to-face communication.

Iterative-Incremental development

This practice is, from a management perspective, the most noticeable change toward an agile approach. Instead of executing every software development cycle (requirements, design, programming, and so on) only once in the entire project (which is the traditional or waterfall way of doing it), iterative development enforces repetition and semi-parallelism of the development activities. That means the activities are extremely narrow and close to one another. They seem to blend, and the order of activities can change.

As a rule of thumb, the shorter the iterations, the better. That’s why agile processes require a time frame for each iteration that is typically between 2 and 6 weeks.

The second aspect of this practice is the actual increment. Whereas the iteration provides the rhythm for the project, the increment demonstrates the actual progress of the project.

Source: https://ptgmedia.pearsoncmg.com/images/9780735625679/samplepages/9780735625679.pdf