IT Project Management
Agile Project Management
Approaches for software engineering or IT application development are fundamentally different from IT infrastructure projects. In agile software development, requirements may change dynamically in short iterative planning and execution cycles. Requirements and scope are defined and reworked throughout the project, resulting in a higher number of release versions.
Agile software projects are characterized by a high degree of change and a high frequency of delivery. Iterations provide flexibility in view of requirement changes; they allow feedback from customers or users on partially completed deliverables to modify the work and improve the results. The requirements can be refined as more is learned after each iteration cycle (e.g., by prototyping) so that the customers' expectations are met and high quality is achieved. Increments provide finished deliverables that the customer may be able to use immediately. Increments are compiled in product releases, i.e., the actual delivery of a new software version to the customer.
Agile projects are typically organized in timeboxes of constant duration. Scrum, presumably the best-known framework for agile developments, denotes these timeframes as sprints. The duration of a sprint can be two weeks or one month. Depending on the projects, the length of a timebox can be longer or shorter; it can also vary depending on the goals. Sprints can be repeated as needed. A sprint can be viewed as a very short predictive project. Within each sprint, goals are agreed upon, requirements are collected, designs are engineered, codes are programmed, and outputs are tested. Each sprint has to produce at least one increment.