An Introduction to Agile

Kyo
5 min readMar 20, 2021

‘Agile’ seems to be the new hot trend, especially in the tech industry. But what is it exactly?

source : https://appfab.technology/what-is-agile/

This article was written as a submission of CS UI’s software development course’s article task.

If you’re in the tech industry, then I’m sure you’ve heard the term “agile” being thrown around here and there, or maybe you’re using this approach at work right now, or have done so in the past. But if I were to ask you what agile means in tech, how would you answer? Would you say that it’s an accumulation of practices like stand-up meetings and test-driven development? or maybe you’d describe the workflow of scrum and kanban? In this article, we’ll explore what agile really means, and what sets it apart from other approaches.

The Agile Manifesto

In 2001, a group of 17 people discussed the future of software engineering at a ski resort in Snowbird, Utah. They didn’t agree on everything, but they all shared one sentiment; They were frustrated at the current state of software development where companies would focus more on planning and documenting and increasingly less on satisfying the customers. This discussion led to the birth of the Agile Manifesto, consisting of four fundamental values and twelve principles, as listed below.

Source : https://laptrinhx.com/the-agile-manifesto-explained-1018380669/
source : https://www.business2community.com/strategy/what-is-agile-and-why-is-it-important-02329437

These 4 values and 12 principles are what defines “agile”, and many agile frameworks and practices were developed based on this manifesto. Therefore, agile software development isn’t just scrum, and it isn’t just XP. As long as the methodology and practices that you use follow these principles and values, then by definition, that is a form of agile software development.

Agile Methodologies and Frameworks

So now we know that agile itself is a set of principles and values, which means that Agile Methodologies are simply methodologies that are based on those principles and values. Alistair Cockburn, one of the Snowbird 17, defined a methodology as a set of conventions that a team agrees to follow. This means that agile methodologies are case-by-case, and should fit a team’s needs and requirements, instead of being something clearly defined and rigid.

But what about scrum, kanban, etc? Aren’t those methodologies? Alistair defined these concepts as “frameworks”, which started out as a single team’s methodology, but since they were generalized and popularized and used by many other teams, they became frameworks. These frameworks are a good reference/starting point when picking a methodology for your team, but it should never be your main methodology, because, as we now know, methodologies should fit your team’s context and needs at the time, and thus should be adapted accordingly to suit your situation better.

Regardless, here are a few examples of popular agile frameworks and a very short description of each.

Scrum

Consists of fixed-length iterations called “sprints”, with various practices like daily standup meetings, and sprint reviews to review the last sprint and analyze what could’ve been better. Unique roles include product owners and scrum masters.

  • Product Owners: The medium between the development team and the clients. Tells the development team what to prioritize and what the client wants in general. To the clients, the product owner has to explain the development process in a digestible format.
  • Scrum Masters: Responsible for overseeing the scrum. Acts as a servant leader, both leading and supporting the development team through the whole process.
  • The development team: The team that’s responsible for actually making the product.

A scrum has multiple sprints. Each sprint starts with a sprint planning, where the development team chooses which product backlogs (works to be done) that they want to tackle that sprint. After each sprint, a sprint review is conducted, where the team showcase the work that they’ve done to the clients. After that, a sprint retrospective is held, where the team talks about what could be improved. In our case, the scrum takes place over the course of 5 sprints, with each sprint encompassing 2 weeks.

Kanban

A popular work management system, designed to help visualize work, maximize efficiency, and limit work in progress. This popular framework is used to implement agile and DevOps software development. Some key differences with Scrum include the workflow (Kanban doesn’t use a fixed-length sprint), Release Methodology (Scrum releases at the end of each sprint if approved, kanban uses continuous delivery), and roles (Kanban has no existing roles).

Extreme Programming (XP)

Advocates frequent releases with short development cycles. Has five main values in addition to the 4 in the agile manifesto, which are Communcation, Simplicity, Feedback, Courage, and Respect. Has many practices, including pair-programming, and Sit Together.

Agile Practices and Methodologies in My Team

In my team, we uphold the values and principles defined in the agile manifesto to properly implement agile, and use the framework scrum to base our methodology on. Our actions include:

Stand-up Meetings

We hold stand-up meetings twice a week to report on our progress and describe any difficulties we might have had. While the original scrum framework held these meetings daily, we adapted the schedule to fit our needs better.

Sprint Reviews and Sprint Retrospectives

We demonstrate and review what we were able to do on a sprint in a sprint review, and immediately hold a sprint retrospective after that, where we discuss what could’ve been improved and what was sub-optimal. By regularly reflecting on how to improve, we develop an innate ambition to do better and to learn from our mistakes, which helps us plan for the next sprint, and thus makes us better and more efficient in satisfying our customers.

Adapting to Changing Requirements

We welcome every feedback that the customer gives us, and also welcomes changing features and requirement should the customer needs it. For example, after demonstrating what we’ve done to our customers, they wanted the landing page to be more welcoming and colorful, and some sections to be more detailed and concise. We immediately put those new requirements in our backlog and implement them in the next sprint.

Those are just a few examples of how my team implements agile in this project. In reality, every part of this process upholds the principles to some degree, like delivering working software frequently instead of scheduling it at the end of our project, and having face-to-face conversations as much as we can as opposed to texts and emails.

Conclusion

With that, I hope this article introduces you to the concept of agile well if you’ve never heard of it. If you have, I hope this article helps you understand it better and be more open-minded about it. While popular frameworks or methodologies are really good examples of how we can apply agile, agile itself is much more than that, and it encourages us to adapt and make our own methodologies. In my opinion, that’s what made agile so popular, so much so that fields outside of software development have begun to use it.

Thank you for reading!

Sources:
https://www.atlassian.com/agile/manifesto
https://www.agilealliance.org/agile101/
https://laptrinhx.com/the-agile-manifesto-explained-1018380669/
https://www.atlassian.com/agile/kanban

--

--

Kyo

If you're reading an article from me, It's probably a part of my college course.