Request For Quote

Project Management

Agile processes use empirical, adaptive processes for rendering emergent requirements into a working system. An illustration of a traditional, defined process shows individuals sequentially completing a list of tasks, each task telling them precisely what to do and how long it will take to do it. The illustration is linear, with each task done after the other until all are completed. An agile process has a skeleton and a heart. The skeleton is the framework on which the rest of the process works. It supports the iterative, incremental nature of all agile processes. Its backbone is the Sprint.

While Scrum uses 30-day Sprint, other agile processes use shorter or slightly longer iterations, but they rarely exceed 60 days.Iteration length is limited so that the team is forced to deliver a potentially shippable product increment with regularity. At the end of every Sprint, the increment is inspected, which dictates the projectís future progress. If the increment is appropriate and useful, the project progresses with only minor changes. If the increment is unsatisfactory, the cause is determined and adjustments made before the next Sprint begins. Anything unexpected can be detected and adjusted to at the end of a Sprint, based on the inspection of the increment.

Agile processes try to have all analysis, design, coding and testing work done within a Sprint. Teams perform this work. The optimal team is a small, cross-functional group at the same site (or as ďcollocatedĒ); but since thatís hard to achieve, projects make do and adjust to less-than-optimal circumstances. A new aspect of agile processes introduced by Alistair Cockburn (Agile Software Development, Alistair Cockburn, Pearson Education, 2002) measures the impact of less-than-optimal teams, helping management measure the costs and benefits of optimization. Agile processes operate optimally when an organization adopts all of their recommended practices. When scaled to multiple, distributed teams, however, the communication and coordination creates overhead.

The heart of agile processes occurs within the Sprint. The team takes a look at the requirement, the technology, and evaluates each otherís skills and capabilities. It then devises the best way it knows to build the functionality, modifying the approach daily as it encounters new complexities, difficulties, and surprises. The team figures out what needs to be done, and determines the best way to do it. This creative process is the heart of the extreme productivity thatís found in agile processes.

Teams using tradition software development processes spend a lot of time in so many preliminary activities that the teams canít get around to building user functionality. These activities include setting up development environments, selecting the implementation hardware or software, figuring out how to conform to external standards, or laying out detailed systems architectures.