Agile with Scrum: An open-minded development
What is Agile?
Agile is the ability to create and respond to change. It is the ability to adapt and find solutions to an uncertain environment. There are 3 main things from agile thinking, the first one is to understand what’s going on in the environment right now. The second one you need to identify what changes you’re facing so you can learn from them. Lastly, after understanding the main problem you must figure out the solution to adapt to the changes that come to you.
But, what is Agile Software Development?
Agile is a type of software development that mainly based on iterative development. In agile, requirements and solutions evolve through time between collaboration from team to client. Generally, the agile process always encourages adaption and frequent inspection of any kind of change. This method also allows rapid iterative software delivery to the client. Agile also has a goal to provide a high-grade management system to meet the company’s goals and the customer’s needs.
Agile Development Process
Agile software development has a flow step for its software development. The first one is the process to learn and knowing your client's requirement for the software. In this step, you must define your client's needs by making backlog items for every feature in the software. The second process is to make the software design by making a prototype or mockup to explain an overview interface to the client. The third and the heaviest process is development. In this step, you do the code development from the requirement and the design that already been made at the step before. After making the code, you must test your code so it doesn't make any bugs and work concisely as you plan before. After finishing the test, now you know that your software work as you plan, so the next step delivers the software feature to your online repository so it can be accessed on the internet. Lastly, you must review your work and check if its fits what the client needs. But it’s not done you do this process iteratively until the software considers to be done and corresponds to what the client needs.
What’s the benefit of using Agile Development?
There are many benefits of using the agile method to your software development method.
- Fast delivery of your software
By making it per feature, agile delivers consistently by updating the progress and tells how far the work progress. Agile also determines the process by making a fixed schedule by sprints. This means the client can expect the delivery time and get clarity on the software development.
- Correspond what the client needs and want
Agile method develop software by making requirement per feature and document it on the product backlog items. The advantage of this process is to meet the company’s or developer goals and the client’s needs.
- Increased flexibility and Allows for Change
One of the characteristics of agile is that this method is open to any changes and adapts to them. This means any kind of news or the changes of the requirement are allowed and can be implemented in the development process.
- Continuous improvement
By making every feature iteratively, it will make the development process continuously improve by any new update that comes to the process.
- Produce a collaborative environment
The agile development process involves not only the developer team but all the project team and also the client. This means its development process walks collaboratively between all parties involved in the project.
- Transparency
Because of the collaborative environment, agile development raises transparency to its process. This means all of the parties involved in the project with different tasks altogether.
What makes agile different from another method?
- Working iteratively
The agile process uses an iterative approach for its software development. This means it will always be work on repeatedly for its feature development from the client's needs.
- All parties involved in the software development
By making a collaborative work environment, agile development includes all teams and clients. This means it will benefit all parties on the software development.
- Clear and fast expected delivery time
The agile software development divide progress for its feature by sprint. Usually, the time for development cost around 1–5 weeks but depends on the scope of the project.
- Open to changes and new input feedback, so it will always improve
Agile by its definition is the ability to create and respond to change. It makes the process for software development to adapt and find solutions to new things. This means agile will always improve the development process.
- Transparent progress update
The agile software development has a daily stand-up meeting to update work progress from the developer to all parties. This means every update will be known by all the development teams.
- Provide benefits for all parties
Clear communication makes agile development provide benefits to all parties. This means all requirements will meet all the development team needs from developer to client.
What’s the connection between Scrum and Agile?
By definition, Scrum is a framework within which people can address complex adaptive problems, while productively and creatively delivering products of the highest possible value. You must wonder, so what’s the difference between agile and scrum?
In summary, Agile is a project management philosophy that utilizes a core set of values or principles, while Scrum is a specific Agile methodology that is used to facilitate a project. This means a scrum is one of the Agile approaches for project management and scrum isn’t always the only approach for Agile development.
How’s scrum work
In scrum, there is a fundamental unit that responsible for the scrum process. The unit name is the Scrum team that consists of SM (Scrum Master), Developers, and PO (Product Owner). SM and PO only consist of one person, while developers can consist of more than one person. The task of each role in the scrum team are :
- Scrum Master: SM is accountable for establishing Scrum as defined in the Scrum Guide. This means they helping everyone in the team to understand Scrum practice and theory and direct the development process to stay on the lane.
- Product Owner: PO is accountable for maximizing the value of the product resulting from the work of the Scrum Team. This means they help “translate” what the client wants and needs to the developer team in the product backlog items.
- Developers: Developers are the people in the Scrum Team that are committed to creating any aspect of a usable Increment for each Sprint. This means they make the product in the project development process.
The work process in scrum divided into a scrum event. Scrum events consist of :
- Sprint: Sprints are the heartbeat of Scrum, where ideas are turned into value. They are fixed length events of one month or less to create consistency. In this event, all the members of the project work for the project in a certain time interval.
- Sprint Planning: Sprint Planning initiates the Sprint by laying out the work to be performed for the Sprint. This resulting plan is created by the collaborative work of the entire Scrum Team.
- Daily Scrum: Daily Scrum is to inspect progress toward the Sprint Goal and adapt the Sprint backlog as necessary, adjusting the upcoming planned work. This usually takes a 15-minute event for developers to communicate, identify impediments, promote quick decision-making, and eliminate the need for other meetings with each other team member.
- Sprint Review: Sprint Review is to inspect the outcome of the Sprint and determine future adaptations. In this event, the developer's work is being reviewed by the stakeholders and another team.
- Sprint Retrospective: Sprint Retrospective is to plan ways to increase quality and effectiveness. In this event, the scrum team plans what to do in the next sprint by inspects how the last Sprint went.
In conclusion, the Agile with Scrum framework is one of the best ways to develop projects these days. Many advantages are obtained such as fast delivery time, flexibility and allow changes, correspond to everyone's needs, and a collaborative working environment. I will be so happy to implement this method in my project development in PPL Course.
Wow! Nice job finishing this article. Now you have mastered the basics of the Agile Software Development Method. So are you ready to implement it in your work process?
What’s the connection to the Agile Manifesto?
The Agile manifesto is a brief document built on 4 values and 12 principles for agile software development. The purpose of the agile manifesto is to designed to improve software development methodologies and directly respond to the inefficiency of traditional development processes. This manifesto was built to help software developers build business solutions in a faster and more efficient way, it has had a huge impact on the wider development industry and beyond. The contents of the Agile manifesto and the agile principle inside is:
Disclaimer :
This is my article for my Individual Review for PPL course at the Faculty of Computer Science, University of Indonesia.
Resources :
- https://www.cprime.com/resources/what-is-agile-what-is-scrum/#:~:text=Agile%20software%20development%20refers%20to%20a%20group%20of%20software%20development,%2Dorganizing%20cross%2Dfunctional%20teams.
- https://www.agilealliance.org/agile101/
- https://kissflow.com/project/agile/benefits-of-agile/
- https://www.seguetech.com/8-benefits-of-agile-software-development/
- https://www.scrum.org/resources/what-is-scrum
- https://www.northeastern.edu/graduate/blog/agile-vs-scrum/#:~:text=The%20Difference%20Between%20Agile%20and%20Scrum&text=The%20key%20difference%20between%20Agile,used%20to%20facilitate%20a%20project.
- https://airfocus.com/glossary/what-is-agile-manifesto/
- https://www.productplan.com/glossary/agile-manifesto/
- https://www.agilealliance.org/agile101/the-agile-manifesto/