Agile methdology
An iterative methodology which condenses the system development life cycle. Typically executes the SDLC in sprints lasting one to three or four weeks long. At every sprint, coding, testing, and quality verification is done. Refers to the Agile Manifesto to establish principles to guide a better approach to software development.
# Process
# Stand-up meetings
Frequent meetings used by development teams to:
- share need-to-know information;
- keep the team on the same page;
- disseminate announcements and briefings; and
- evaluate current work performance.
# User stories
A short description of a function that the end-user wants told from their perspective. Agile generally involves the creation of user stories and discussion of them among the team.
For a good user story, consider using the mnemonic INVEST:
- independent — stories must not be dependent on each other;
- negotiable — details of stories must be changeable and agreeable between the client and development team.
- valuable — stories must have business value to the client;
- estimable — stories should be understood well enough by the client and small enough such that an approximation of time the developer will take to develop the feature can be established;
- small — stories should be succinct as they’re done in short sprints; and
- testable — stories must allow for the development team to write tests.
# Evaluation
# Benefits
- Agile encourages the client to be engaged throughout the project. This increases trust between the team and the client and fosters deep collaboration while ensuring that the requirements are understood.
- Agile promotes transparency between the team and the client, such that the client can see the work in progress and check in frequently.
- Agile promote the frequent delivery of progress, whether it’s time-boxed or following a fixed schedule. Teams can test in stages, allowing for early release and beta builds for testing.
- Sprints are often fixed in duration, meaning that Agile is generally predictable. The cost accrued is also limited to the work performed in each sprint.
- Agile allows for changes to be made throughout the project, usually at each new iteration. This means that changes can be implemented in a matter of only a few weeks.
- From a business perspective, Agile prioritises the client; the client determines a feature’s priority. The features with the most value in business generally tends to be delivered first.
- Agile is customer-focused, focusing on the development of user stories to define needed product features. Features are also generally tested (beta-tested) after each sprint to get feedback from customers.
- Agile breaks down tasks into manageable units, making it easier to uphold a higher quality of standard. Each sprint can also find and fix bugs.
# Detriements
- An initial project with Agile lacks a stable plan, and the final product can look different from what was originally intended.
- Agile can be a potential threat to business continuity and knowledge transfer as it emphasises less on documentation.
- An Agile project can easily go off-track due to the client not being clear on the requirements or being unavailable.
- An Agile project requires highly-experienced Agile developers.