The Role of a Software Engineer – The Agile Model – Part 3
Besides accuracy and efficiency, speed is one of the most desired traits for a software engineer. Developers, in their quest for improvement, took the decision of improving the software development cycle. The resulting solution that developers and managers collectively created was the Agile methodology.
There is more than one Agile methodology. All of them have their own sets of pros and cons. We will focus on the most used of the Agile method called Scrum.
Even though Scrum is the most common development process out of the Agile method, it’s not simple at all. Scrum can be broken in two different subsets of tasks. These two different sets work as one big puzzle that takes into consideration all the customer requirements and breaks it down in smaller projects called sprints. To explain the model we will name the sets of work into:
The Project: The overall project, let’s say an e-commerce site. Developers will sit with the project owner and assess the key requirements and specifications to begin working. The key tasks for the project to conclude are:
- Definition of Ready
- Definition of Done
Sprints: In this Agile method you have sprints and they work as key micro projects. There can be as many sprints as needed for the project manager to set the correct deadlines and workloads for the development teams. The key pieces of sprints are:
- Stand up meeting
Where Did Agile Come From?
Back in 2001, a group of 17 developers tired of the traditional software development process got together and created a set of guidelines called the Agile manifesto. This was a document that encouraged small teams to have great project management capabilities without compromising their budget and timetable.
The Agile Manifesto
The conclusion the 17 developers agreed on for the manifesto is here:
We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.
Key Agile Advantages
- Higher in Quality
- Less Costly
- More Productive
- Quicker time to market speeds
- Enhanced value
There are many reasons why Agile methodologies and models are better than traditional development processes. It really stands out from the more traditional waterfall method and requires fewer processes to integrate and release. In the end, software engineers are moving towards Agile models to improve themselves and enhance their customer’s projects.