Agile methodology is a project management approach that makes the project changeable by continuous testing and ensures that changing customer requests are easily integrated into the project.
The agile methodology, which emerged in the 1970s, is an approach used in software development projects. It emerged in response to other methodologies in order to make the software development process fast and effective. Later, Kent Beck, one of the well-known names in the software world, and 16 software developers published the “Agile Software Development Manifesto” and “Principles of Agile Software” and supported this approach.
- Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
- Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
- Deliver working software frequently, from a couple of weeks to a couple of months, with a preference for the shorter timescale.
- Business people and developers must work together daily throughout the project.
- Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
- The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
- Working software is the primary measure of progress.
- Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
- Continuous attention to technical excellence and good design enhances agility.
- Simplicity — the art of maximizing the amount of work not done — is essential.
- The best architectures, requirements, and designs emerge from a self-organizing team.
- At regular intervals, the team reflects on becoming more effective, then tunes and adjusts its behavior accordingly.
As can be understood from these principles, the primary purpose of the agile methodology is to have better communication throughout the project, make the necessary changes immediately, and minimize the error level by testing frequently.
The Agile software development process is as follows;
What is Scrum?
Scrum is one of the successful agile project management techniques. It is used for complex software processes. By dividing the whole into parts, it ensures that the project progresses with firm steps and keeps up with the changes. Time is saved as work is divided into parts. This is because communication and teamwork are vital in Scrum. Since we are in constant communication, the probability of error decreases, and time is saved.
Scrum is based on 3 fundamental principles;
- Transparency: The progress of the project, the problems, and the developments that are being tried to be solved should be open to everyone.
- Inspection: By controlling the project process with frequent controls, the possibility of encountering an unexpected error is minimized.
- Adaptation: The process can be changed when there are unsolvable problems or any innovation in the project process.
The operation of Scrum is as follows;
Roles in Scrum
Product Owner: He/She is the person who conveys the customer’s wishes. In some cases, this person may be the customer himself. It forwards these requests to the software team.
Scrum Master: The Scrum Master is the person who guides the team to understand and fulfill Scrum principles and plays a role in communicating for the team.
Development Team: It is the team responsible for the creation and development of customer requests.
Sprint Planning: The Product Owner sets a goal before the Sprint. Working with the Development Team, they decide which jobs will be included in the next Sprint. If the workload becomes too much for the development team, the work is split into multiple Sprints.
Daily Scrum Meeting: Daily Sprint Meetings (Daily Scrum Meeting): The Scrum team holds meetings that last a maximum of 15 minutes per day. In this way, the problems are solved immediately by establishing frequent communication.
Sprint Review: This meeting, attended by the development team, Scrum Master, Product Owner and customer is held after each Sprint. The development team presents their work during the Sprint process and the result. After the works are submitted, the customer transfers their comments and notifies if there is a place that needs editing.
Sprint Retrospective: It is the meeting held at the end of the Sprint where the Scrum team evaluates itself. These are important meetings to continue the development of the teams. Right and wrong works are evaluated and “What, how can it be done better?” questions are considered.