Table of Contents
Even though agile has been around for over 20 years, defining it is not straightforward. It’s a methodology as much as a philosophy that can revolutionize the way we work. In this article, we’ll cover the specific use of agile software development.
Kambu is an agile software company since its inception. As such, we invited our leaders (and seasoned PMs), Jarek and Maria, to add their input.
What is Agile?
Let’s start with some concepts.
The word “agile” was popularized in 2001 with the publication of the Agile Manifesto. The document outlines core values that can be applied to a myriad of processes.
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plannge over following a plan
Excerpt from the Agile Manifesto
These principles are designed to enhance and speed up development, as well as foster a better relationship between developer and client.
In more practical terms, agile is associated with certain frameworks and tools. For example Scrum, Kanban, Iterative and incremental development (IID), Lean Software Development (LSD), Continuous Integration (CI), and more.
One study found that 95% of 1,211 companies worldwide adopted some Agile development methods in 2019.
Read more: Software Development Life Cycle Models – What Are SDLCs?
The Agile Software Development Principles
The manifesto for Agile also lays out 12 agile software development principles.
They are broad enough that they still to almost any software development project. However, any Project Manager surely can relate specific principles as pressure points in a current project they are working on.
Below is a summed-up version.
- Satisfy the customer through early and continuous delivery;
- Welcome changing requirements;
- Deliver working software frequently;
- Connect business people and developers;
- Support motivated individuals;
- Prefer face-to-face conversation;
- Working software is the primary measure of progress;
- Strive to mantain a constant pace indefinitely;
- Technical excellence and good design enhance agility;
- Simplicity is essential;
- Empower self-organizing teams;
- Regularly reflect and retune.
Some of these clearly ressonate with concepts mentioned before, such as Continued Delivery.
How To Make Agile Software Development Work?
Right, so we have seen the groundwork of agile. But does it help in practice?
As we discussed in our article about SDLCs, there is no one-size-fits-all software development methodology.
To pick the best one, you should assess case by case depending on factors such as the scope of the project, budget, time-to-market, and so on.
We invite our leaders to offer their insight on the subject.
What Agile Software Development Requires
The group of agile methodologies goes beyond software development. They apply to people just as much they apply to projects.
Agile means continuous improvement, learning self-organization, communication, and collaboration.
Maria, COO
Agile teams not only develop faster and better. Since they excel in communication, they work efficiently and collaboratively with minimal directions.
And, since agile teams are attuned to the business, they understand the needs of the stakeholders very well. This reflects in products that deliver more value to the customer and to the market.
What Agile Is Not
Is agile a cure for every lagged project? Certainly not. It’s also important to point out what Agile is not.
Agile does not mean free-for-all. It benefits from structure, planning, and discipline. It is not an excuse for bad quality and it won’t solve all problems.
Maria, COO
Managers cannot expect to simply “apply agile” to a project or team and collect improvements immediately.
On the contrary, implementing agile isn’t a switch. It’s a process.
Agile is not only a toolkit. You need to change your mindset to fully reap the benefits of agile.
Jarek, CEO
But this begs the question – is it worth it to be agile? If the end result is getting ahead of the game, then most likely it is a necessity.
“Agile is an iterative approach to software development that helps teams deliver value to their customers faster and with fewer headaches.”