Agile: A “Sprint” Running Without Sweating.
Sprint? A Running Method?
Did you see the runner above? YES, HE’S DEFINITELY USAIN BOLT! A Jamaican sprinter who won gold medals in the 100-meter and 200-meter races in an unprecedented three straight Olympic Games and is widely considered the greatest sprinter of all time (Britannica.com).
But do you know guys, the fastest runner does not always win the race. Remember the story of the rabbit and tortoise? A belittled and slow walker tortoise but able to beat the reckless rabbit in a race, so on sprint. Sprint does not only talk about the speed, nor about adrenaline. But sprint is about how the planning would run efficiently to achieve the goals (In this case, winning is the goal).
We definitely need planning in our daily activities. You’re all lying if you don’t. Even cook instant noodles, we prepare the ingredients first, and it is also called planning. As well as working on a project.
Without planning, it will totally mess our works. To prevent the mess, this article would give you a brief lesson about agile software development.
What is Agile?
Based on Jeff Sutherland, “Scrum.” Apple Books,
Agile refers to a set of “methods and practices based on the values and principles expressed in the Agile Manifesto,” which includes things like collaboration, self-organization, and cross-functionality of teams.
- Individuals and interactions over processes and tools.
- Working software over comprehensive documentation.
- Customer collaboration over contract negotiation.
- Responding to change over following a plan.
The term “Agile” dates back to a 2001 conclave where Jeff Shuterland and sixteen other leaders in software development wrote up what has become known as the “Agile Manifesto.” It declared the following values: people over processes; products that actually work over documenting what that product is supposed to do; collaborating with customers over negotiating with them; and responding to change over following a plan.
Agile provides a shorter development cycle and support just in time analysis of requests. This allows agile teams to change quickly and at a low cost. This process runs iteratively and incrementally as agile well-known for its both process flow. It allows the team to learn something new and think creatively to solve problems in each iteration. Completed work will be delivered after the incremental process is fully done.
About Software Development Methodology.
Based on Alliance Software,
Software development methodology is a process or series of processes used in software development.
Which means, software development methodology has several metholodogies designed to describe the how of the life cycle of a piece of software. There are 3 types of methodologies that can be used in our projects; agile, lean, and waterfall. In this article, we’re going to dive deep into the agile software development.
Agile Software Development.
Agile software development is an umbrella term for a set of frameworks and practices based on the values and principles expressed in the Manifesto for Agile Software Development and the 12 Principles behind it.
Agile is the ability to create and respond to change. It is a way of dealing with, and ultimately succeeding in, an uncertain and turbulent environment. This method’s basic is the short-term system development principle with a fast adaptation rate in any changes. Teamwork is the main point in this method. Since agile is a set of methods, the methods really can’t be compared which one is better. These methods is used based on the development needs.
In the Agile Software Development, there are 12 Principles based on the Agile Manifesto. Some of them will be discussed by me since they’re quite interesting and related to my project. So, let’s check them out!
The 12 Agile Principles
- Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Personal opinion: However, this point is unrealistic sometimes. We would probably overwhelmed if we always do what the customer wished. A ‘customer pleased product’ is priority, but a ‘problem solver product’ is the most needed.
- Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage. Personal opinion: Changes are indeed required, often beneficial — parts in agile software development. But significant changes are not allowed. It can be troublesome and will cause the decay of project flow.
- Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
- Business people and developers must work together daily throughout the project. Personal opinion: A collaboration between business people and developers would lead the product accurately to the market.
- Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. Personal opinion: A project that runs without a motivated team will only make the team find it difficult to collaborate and absolutely won’t deliver anything.
- 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. Personal opinion: Of course, as mentioned in point 3, measuring the software development is based on how the software requirements can work properly, and that’s what every sprint expects.
- 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 self-organizing teams.
- At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Scrum is an agile framework that helps teamwork together and generates value through adaptive solutions for some problems. Scrum encourages teams to learn through experiences, self-organize while working on a problem, and reflect on their wins and losses to continuously improve. The key points in Scrum are teamwork, accountability, and two weeks of the iterative process with defined goals.
There are 3 main roles in Scrum, those are:
- Product Owner
The product owner is responsible is to ensure that they (Scrum Team) delivering the most value. The product owner shouldn’t only understand the customer’s needs, but the product owner must also understand what value can be delivered by the team and how they can complete those tasks. So that means the product owner needs to understand every single item in the product backlog in effort to avoid miscommunications. The product owner must be able to manage stakeholders, customers, and the business domain.
- Scrum Master
Scrum master is like a bridge between the product owner and scrum team members. Not directly bridging because the product owner still able to directly communicate with the development team. The scrum master should “gluing” everything together and ensure that Scrum is being done well. The scrum master is also responsible for leading the sprint planning, sprint review, sprint retrospective, and daily stand-up meeting. Scrum master focuses on transparency, empiricism, and self-organization.
- Development Team.
The development team is the people that do the work. The development team not only consists of programmers, but the development team includes designers, UX, testing, and others depends on the project development team’s needs. As they work in a team, scrum master will help and control every job, so the sprint is being done well.
Scrum Events have several events that run iteratively and incrementally. These phases usually run every two or four weeks.
- Sprint Planning
Sprint Planning is the sprint kick-off. This phase aims to define what can be delivered on each sprint and how the work will be achieved. Sprint must be done correctly, so if it’s done correctly, it will also make the team motivated, challenged, and can be more successful in the next sprint. Bad sprint plans otherwise. In this phase, product owner will break down every product backlog that the development team chooses as a sprint task. Each task will be determined by task estimation point with Fibonacci Value (1,2,3,5,…). This estimation point will determine how difficult the tasks are. The higher number, the harder it takes.
- Sprint Phase
Sprint phase is where you can start working on your tasks. Our focuses are to do the tasks assigned in sprint planning.
Must Do’s and Don’ts
- Make sure the team sets and understands the sprint goal and how success will be measured.
- Do ensure you have a well-groomed backlog with your priorities and dependencies in order.
- Ensure you have a good understanding.
- Don’t pull in too many stories.
- Don’t forget about quality or technical debt.
- Don’t let the team have a fuzzy view of what’s in the sprint.
- Daily Scrum Meeting
Daily scrum meeting is a short everyday meeting, which ideally during the start of the working day. This meeting is a time that you’re questioned by the scrum master about “is the sprint going well?”, “What did you do yesterday?”, “ what will you do today?”, etc. It enables the team to be in sync with how things are going.
- Sprint Review
It is also known as “demo,” where all the team members present about what has been done in the sprint. Sprint review takes place at the end of the sprint. During the sprint review, the project is assessed against the sprint goal determined during the sprint planning meeting.
- Sprint Retrospective
A sprint retrospective is a phase for the team to reflects on the past to improve the future. The team usually shares what they’ve learned, what they should maintain, what should be improved, and the next sprint plans.
It’s all from me about Agile and Scrum! Cheers🍻
Thanks For Reading!
Follow my medium for more articles.
Also, if you want to browse other content, here are my Social Media😁: