About Agile Approaches
The most straightforward (Predictive) methodologies, like Waterfall, present a relatively rigid management framework – Waterfall itself is fundamentally opposed to changes and is seldom used and generally recommended against. Agile (adaptive) lifecycles are geared towards customer value, incorporate iterative approaches and aspects that allow the addressing of any encountered shortcomings not present at initial evaluation of requirements.
‘Chaordic’ projects are well suited to Agile development; the approach’s core values are:
- Tackling change instead of sticking to a plan
- Prioritising individuals and interactions over specific processes
- Devaluing documentation in favour of functionality
- Customer interaction in place of stringent contract negotiations
- Mitigation of risk by client interaction and regular correspondence delivery
- Using Scrums
Spiral, the first Agile approach, is iterative (and effectively adaptive, due to its implementation of changes at each cycle end) but with a defined end, whereas more Agile methodologies are conceptually able to be unending, more nuanced by conventions and allow development to be turned back or shifted at ends of a cycle.
Agile lifecycles create mini-projects (increments returning iterations) to progressively work more manageably towards a planned completion state. Iterations are defined as chronologically related groups of Minimised-Waterfall cycles.
Each Agile iterative cycle is known as a ‘sprint’ and involves a modest sequence of defining requirements, designing, creating and testing within a short timeframe of a few weeks. This methodology provides faster deliveries, better measured expectations and increased adaptability.
Agile focuses on the skills of individuals rather than defined roles, allowing for staff reallocation at closer intervals and further project adaptability. A ‘Product Backlog’ is created as a list of prioritised tasks to be ‘groomed’, each titled ‘User Story #’ and defining events or activities, with the most important set of a time organised into a ‘Sprint Backlog’ of available sprints to undertake next.
A ‘Scrum Leader’ manages a Scrum team, planning sprints, delegating tasks, analysing progress and overseeing the daily Scrum meetings. The SL keeps track of a ‘Burndown Graph’ that plots project progress against ‘story points’ toward completion of a sprint.
The story points are derived from the amount of User Stories allocated to a sprint and, when completed, serve amendments to the Product Backlog – as will feedback from the delivered sprint product. The sprint is finalised with a retrospective meeting where the team discusses the previous sprint and can identify extra information about the project.
In ‘Stand-Up Meetings’, a methodology-linked concept of quick daily meetings, each team member stands up and states where their focus is, it’s status, if there are any obstacles, what happened the previous day, how much more is to be done and what could be done. This approach to group conversations can raise productivity as the speaker is standing and not in a comfortable seated state and communication of team operations is refined.
Best suited to modest or non-critical developments that are original and high skilled, Agile modelling (AM) uses best practice conventions and builds on UML to provide a methodology for documentation and design with focus on flexibility and swiftness. With respective tools as support, AM incorporates (among other techniques) continuous documenting, iteration modelling, prioritised requirements, model brainstorming and envisioning of a system’s high-level model.
One downfall of Agile development is the principal opposition to rigid documentation. Agile development is also recommended only for unpredictable projects that have the clients able to comprehend operations and be deeply involved with development. Another is the increased requirements on management and teamwork, ‘weak links’ in teams are broken faster with Agile development as adaptability and coordination is tested more strenuously than with traditional sequential development cycles.
All Agile iterative development approaches are prone to undesirable cost and problematic increments. One way to reduce risk of those detractions is to define requirements as well as client-satisfying deliverables within timeframes, which is against Agile fundamentals. Also, defining ‘release candidate’ testing for increments to only deploy when ‘stable’ can provide quality assurance.