Agile Software Development
Software Development for Modern Projects
As software development progresses, newer concepts come to the forefront of developers and project leaders. One of these concepts is Agile software development, intended to make a project much more responsive to the constantly evolving wishes of the customer.
But what is it?
Well there are more than a few interpretations of Agile, but the Agile Manifesto is undisputed:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
This is the whole Agile manifesto. It isn’t much but the deep and labyrinthine lore of Agile started from these few statements. Another very important piece of literature is the 12 Principles of Agile Methodology:
- Satisfy the Customer
- Welcome Change
- Deliver Frequently
- Work Together
- Build Projects around self-organizing teams
- Face-To-Face Time
- Measure of Progress
- Sustainable Development
- Continuous Attention
- Keep It Simple
- Organized Teams
- Reflect for Effectiveness
These self-explanatory principles are the benchmark of Agile project development. It is hoped that, with these principles, products can be made faster and more efficiently, ensuring that less manpower is needed to complete an entire software.
Implementation?
If Agile is the ideology, then Scrum is the implementation. Software Development in Scrum is driven by events, unlike with waterfall software development.
- Sprint
A sprint is a period of software development with associated goals, tasks and timelines. Within the Sprint, no goals may be changed or modified. Scope may be clarified with the customer, but it cannot remove goals of the sprint. A sprint lasts from a week to a month.
- Sprint Planning
Before a Sprint, it is planned with goals and objectives in mind. It is usually done within a day.
- Daily Scrum
Daily scrum events are a 15-minute meeting to synchronize what everyone must be doing. If in Indonesia, there may also be a short prayer session. It is used to plan for the day, it isn’t to be used for reviewing the past.
- Sprint Review
Once a Sprint is done, it will be reviewed when the Sprint is over, it is used to update the backlog and track what has been done. Clients are notified of what progress have been made during the sprint.
- Sprint Retrospective
A sprint retrospective is a review by the team of the previous sprint. Its successes, its failures, what blocks progress and what can be improved.
These sprint events are what drives the Software Development.
Conclusion
The agile methodology is the most modern software development methodology. Many implementations actually exist for the agile methodology, but the Scrum method is one of the most commonly used software development, it is even to a point that agile and scrum has become (incorrectly) interchangeable. It may even last for the next decade.