The building of software is a lengthy process that includes an extensive team of experts and a comprehensive plan of action. The extent of work behind the scenes is not always visible and although many believe that it is as simple as putting an idea together, typing in a few codes and the software is ready to be shipped and sold, this is simply not true. Agile methodology and Agile software development is the process that I believe is best when building new software as it delivers a final product that is current, relevant and well-tested.
What is agile methodology?
Agile software development bases its principle in iterative development, which is the repetition of a process in order to generate the desired outcomes. What this means is that instead of working on a job from start to finish and then discovering what works and what doesn’t, as with the waterfall approach, tasks are instead organised into bundles called sprints, with one sprint completed at a time.
Each sprint ends with a demonstration meeting for the product owner, which is followed by a retrospective meeting where the team discusses what works and what needs improvement. If changes need to be made, it is done and reassessed before moving on to the next sprint. This occurs until the entire project is completed, tested and approved. It is important for everyone involved in the process to understand this working methodology. Unfortunately, clients are not able to call up team members while a sprint is in process and request changes to the sprint or try to push in additional functionality that was never planned for the sprint without a full review and planning with the team. If this process is disrupted it can be risky and compromise the quality of the product.
By approaching software development in this way any changes – industry, technology or otherwise – that have occurred during the development process can be taken into account, keeping the software current and addressing any issues before it is too late.
Terms such as scrum and scrum master are often used when referring to agile methodology. Scrum is a popular agile framework that uses sprints and meeting structures to outline the development process, while implementing the three pillars of transparency, inspection and adaptation.
A scrum master is appointed to make sure that the scrum process is managed correctly and often helps the team stay on track. Daily scrum meetings are held where the team members update each other on their development status and strategies – everyone needs to be kept in the loop to ensure a fluid project. At these meetings, planning and commitment are focused on: planning involves identifying the sprints according to priority, and commitment has the team reviewing a list or backlog of user stories (what an end user may want from the finished product) to decide on how much work can be tackled within each sprint.
The team members involved in the project do not work in solitude, and rather work together, including the product owner. The agile method promotes a disciplined management style that involves frequent inspection and adaptation. Teamwork under a strong leader is needed, but it is also reliant on self-organisation and accountability.
Agile methodology using a scrum framework allows for the entire team to be involved in the production of software from start to finish, with a more comprehensive flow and sections not being handed off from one member to another. Lastly, the agile method also brings about a need for constant communication, group brainstorming and a single vision.