Age of Agile

Muhammad Fadhil Qorano W.
9 min readApr 4, 2021

--

https://www.agilest.org/what-is-agile-knowledge-base/

Agile methodology is a method used by development teams to manage a project by breaking it up into several phases. Agile as a word itself means “able to move quickly and easily”. By understanding the meaning of the word, we can know that by using Agile methodology in a project management, teams could be more quick and given ease developing their project. Agile methodology breaks project management into several phases, by involving constant collaboration with stakeholders and continuous improvement at every stage of the project. Compared with other methodologies, Agile is much faster, cost-effective, and less risky.

Founded in 2001, the Agile Manifesto set a new standard for development and put forth a groundbreaking mindset on delivering value and collaborating with customers. Here are the four main values of Agile Manifesto:

  1. Individuals and Interactions Over Process and Tools
  2. Working Software Over Comprehensive Documentation
  3. Customer Collaboration Over Contract Negotiation
  4. Responding to Change Over Following a Plan

Based primarily on the 4 agile values, 12 principles for agile software development are later made to help establish the use of the agile mindset. They are not a set of rules used for agile methodology, but rather a set of principles to implement agile itself. Below is a description of each of principles and how they may be practiced on my group project:

1 “Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.”

Some may say that this principle is the most important one, as our endgame on working on a project is to deliver the customers their needs and satisfy them as much as possible. My team strives on increasing our application functionality every week based on our client’s requirements. Iterations on our application may continue to make incremental improvements based on our client’s feedback. Clients may review our existing functionality and decide to report any changes that they would like to make. This feedback would later affect our development process and be used to inform future releases.

2 “Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.”

As a team, we should not be afraid of any changes during the development, because change is the only constant in the world around us. Agile development involves more changes rather than moving forward consistently. This principle supports observing the client’s needs, market changes, and changing course when necessary.

3 “Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.”

By using sprints, a team could deliver working software to their clients to receive feedback. This frequent-release approach creates more opportunities for the team to validate the product ideas and what to improve on the next iterations.

4 “Business people and developers must work together daily throughout the project.”

A successful product requires insight from every role involved in the project management itself: developers, stakeholders, and most importantly, customers, must interact frequently in order for a project to be agile. Communication is a critical part of the team’s success and agile principles support that point well.

5 “Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.”

An agile team needs to be carefully built and correctly assembled. A key part of agile is empowering the team through trust. As a team, we always have each other’s backs and encourage one another to work together on the project. If one of the team members faces a problem, the team must be informed and well-shared in order to solve the problem.

6 “The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.”

This principle sets an overall objective to encourage the team to communicate in real time about the product, requirements, and strategy on driving the development. By using online communication media (such as Meets, Zoom, and Discord), works will be done more efficiently and plans will be discussed more clearly.

7 “Working software is the primary measure of progress”

A product can be released if and only if it’s a finished product. On using agile, teams must have this mindset to keep working until their product checklists all the client’s requirements and become a fully functional application, because the ultimate measure for success is a working product that customers love.

8 “Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.”

While a client’s requirements are everything, it has to be clear that expectations and demands cannot be set too high as rapid development can be taxing on a team. Agile principles encourage us to be mindful and set realistic expectations for both parties. The idea is to keep the team’s morale high and improve work-life balance to prevent overload of works that causes burnout. Before every sprint, careful consideration of the work amount must be set.

9 “Continuous attention to technical excellence and good design enhances agility.”

Agile philosophy encourages to put emphasis on the importance of keeping the project’s works clean, so they don’t cause problems in the future. Therefore, as a team, we must commit to produce high quality work by applying clean code which can make our work maintainable.

10 “Simplicity — the art of maximizing the amount of work not done — is essential.”

On agile, performing the simplest yet highest quality work is a must, in order to maintain suitable development so changes are easy to make. Agile principles encourage us to use the 80/20 rule: the concept that you can usually get 80% of your intended results with just 20% of the work, so basically doing things that can have the most impact.

11 “The best architectures, requirements, and designs emerge from self-organizing teams.”

Different from other software development methodologies where teams are often shaped as a pyramid, agile principles suggest the use of a self-organizing team which uses a flat management structure where decisions are made as a group rather than individually. This agile approach encourages us to work as teams rather than taking on responsibilities alone, so each team member’s decisions influence one another.

12 “At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.”

If a team fully embraces the agile principles, then that team must be ready to learn new things along the way and cannot live by the mindset that old, normal ways of doing things is the only way to go. Agile is not about following a strict process, it’s about continuous improvement.

https://agilemania.com/blog/what-is-scrum/

Scrum is a framework that helps team work together on a software development, it is a method that focuses on project leadership and how to manage it well until the team reaches the finished product. Scrum enables the team that uses it to sustain the development of complex products and is based on the values and principles of Agile methodology.

Scrum is iterative, which means it has a repetition of activities as a cycle. Each sprint cycle usually lasts for over two weeks. The sprint cycle consist the following series of events:

  • Sprint Planning: When starting a sprint, the team must plan to determine the goal of the sprint and what features to work from the product backlog. From there, the development team will later break down the product backlog into tasks that each member can choose to focus on.
  • Daily Scrum: This event involves the development team to share their latest progress, upcoming work, and also share any problems that might prevent the project from finishing. Daily scrum encourages the team to keep working on the project until the time of Sprint Review comes.
  • Sprint Review: The scrum team then collaborate with the stakeholders to share their progress and the stakeholders will examine if the sprint goal has already been reached, and also determine whether they are satisfied or not with the product. The outcome of this event is to receive feedback for the team in order to reach a more comprehensive product.
  • Sprint Retrospective: When a sprint cycle reaches an end, a retrospective will be done to inspect the team’s work environment during the sprint, so they can know what to improve and what to dismiss on their next sprints.
  • back to Sprint Planning.
https://www.visual-paradigm.com/scrum/how-scrum-team-

Scrum is driven by a Scrum team that consists of a Product Owner, Scrum Master, and Development Team. Each role on the team has their own objectives that drives the project forward.

  1. The Product Owner: Product Owner is the one who is responsible for maximizing the product value and have direct communication with both stakeholders and end users. Product Owner have the sole responsibility to manage the Product Backlog.
  2. The Scrum Master: Scrum Master can be seen as a servant-leader for the Scrum Team, they have the responsibility to help mentor the Development Team in organizational environments in order to create high-value products.
  3. The Development Team: Development Team consists of professionals on software engineering and have the responsibility on fully working on the product. The team has to be organized well in order to bring synergy to the work environment. In the end of each sprint, the Development Team has to deliver a potentially releasable increment of the product based on the product backlogs given.
https://usefyi.com/scrum-artifacts/

Scrum Artifacts plays a crucial part in driving a product, the three Scrum artifacts are the Product Backlog, Sprint Backlog, Product Increment. Scrum artifacts keep the team coordinated as they work toward the sprint goal.

  • The Product Backlog is a list of features , defects, or technical work that is prioritized that has yet to be worked on.
  • The Sprint Backlog is a list from the Product Backlog that will be worked on during the Sprint.
  • The Product Increment is sum of product work completed during the Sprint, combined with all the work completed during the previous Sprints.
https://medium.com/@realjoselara/agile-scrum-process-in-a-nutshell-6ec32a59efb

The Scrum Lifecycle is a repeated cycle of sprints that involves each of Sprint Events, Members, and Artifacts described earlier. This series of Sprints targets the end result as a releasable product that satisfy both the stakeholders and end-users. Inside of these sprints, all activities are necessary for the development of the overall product.

The Scrum Lifecycle is implemented on my group project as follows:

  • Our Stakeholder, the representation of Fakultas Kedokteran Universitas Indonesia, reviews last year’s projects that is yet to be finished by us, and determine the highest priority features to be added.
  • Our Product Owner met the Stakeholder to discuss the features that will be prioritized for the development, and had an agreement on the Product Backlog that consists of the product features determined by the Stakeholder.
a small snippet of our product backlog
  • The Scrum Master then held a meeting with the Development Team to discuss what Product Backlog to take during the Sprint, forming a Sprint Backlog. The Product Backlog was divided into tasks that each of the team members can work on.
a small snippet of our sprint backlog
  • The Scrum process is a set of iterative cycles, or a Sprint Lifecycle to be more exact. A Sprint lasts 2 weeks, and in that 2 weeks span the team focuses on designing, coding, and testing the product. Our team work remotely using online communication medias such as Discord.
  • Every Monday and Thursday, a daily stand-up meeting with our Scrum Master will be held in order to report our progress and share our problems if exist. Along the way, The Scrum Master keeps the team motivated and focused on the product.
  • Nearing the end of the Sprint, the work should be potentially shippable for showing it to the stakeholder during the Sprint Review.
  • The Sprint ends with Sprint Review and Retrospective meetings.
sprint retrospective: inspecting each of the member’s “goods and bads”
  • The Sprint Lifecycle continues until the fifth Sprint, as we just reached the second now.

“With Scrum in Agile, a team can work together more tightly yet flexible in order to pursue the end goal of their finished product.”

References:

https://www.productplan.com/glossary/agile-principles/

http://www.cmnogueira.pt/2014/05/13/an-introduction-to-scrum/

--

--