Agile Software Development: Definition, Manifesto, Framework, And Benefits

SHARE

The chance that you have stumbled upon the term ‘Agile Software Development’, ‘Agile methodology’ or ‘Agile’ are relatively high. It’s not a surprise as using an agile approach can benefit the development process, hence why we use it here at Rare Crew. It’s a broad topic that can be divided into many sub-articles, but we want to give you a comprehensive overview of it. Let’s get into it.

 

What is Agile Software Development?

Agile Software Development is many things, but first we have to mention that it’s continual. In this scenario, continual means that there are several parts of the development process that are simultaneously being worked on. This may be the biggest difference compared to older approaches to development.

If we were to divide the development process into parts or functions it would be:

  • Planning
  • Analysis
  • Design
  • Coding
  • Unit testing
  • Acceptance testing

With different and so-called old school approaches, such as Waterfall, it’s natural to finish one part of the development process before moving to another part. In Agile development we have development sprints which lead to improving iterations of the product. Ideally these sprints are always the same length of time that way stakeholders know when to expect the next iteration.

Teamwork is another important aspect in Agile. Since everyone is working on different parts, it’s important not to forget the bigger picture. You may also be curious if there is room for failure. There is. By failing before the date of release, you can catch all the bugs and make the product bulletproof – that’s the whole point.

Sometimes we don’t talk about bugs as it can be a flawed or misunderstood design (User Experience), changes to the market, or the activities of your competitors that cause you to fail. Being agile means you are flexible and can adapt. 

 

Agile Manifesto

The Agile approach has its own Manifesto that we use in this article with the permission of the Agile Manifesto creators' website.

“We are uncovering better ways of developing

software by doing it and helping others do it.

Through this work we have come to value:

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

That is, while there is value in the items on

the right, we value the items on the left more.“

After you read it a few times it starts to resemble a customer-centric marketing approach. Programming can get as frustrating as outbound marketing practices. Agile development has a goal to make the development process smoother and more suitable for human thinking and cooperation. For example, there are very few things more distant to human nature and human thinking than the documentation of code.

That doesn’t mean there is no documentation in Agile, but it can’t be compared to the heavy development blueprints from years ago in the Waterfall methodology.

To understand why the Agile approach emerged, we have to go back to the past. Back in the 90’s when computers were big and heavy the average span of the development process, from demand for an application to its delivery, was about three years. In other words, when you finished a project you were working on for 3 years, everything had changed. New technology, new objectives, new requirements.

Fed up with the slow process, a group of software engineers met in 2001 and created what we now know as the Agile Manifesto and its 12 Principles.

 

Read on: Simplifying The 5 Ps Of Project Management

 

12 Key Principles behind the Agile Manifesto

Again, the principles are cited from the creators’ original website.

“We follow these principles:

Our highest priority is to satisfy the customer

through early and continuous delivery

of valuable software.

 

Welcome changing requirements, even late in

development. Agile processes harness change for

the customer's competitive advantage.

 

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.

 

Build projects around motivated individuals.

Give them the environment and support they need,

and trust them to get the job done.

 

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.

 

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.“

As you can see, this is no tech-speak. It’s about practical thinking and how to be more effective without excessive bureaucracy. Since it’s about 20 years old and still in use, we can say the idea has been successful.

 

Benefits of Agile

Apart from the idea of a more customer-friendly approach, Agile has many benefits that are derived mostly from self-organized teams and collaborative work not just among developing teams, but also with the ‘outer ring’: business development, marketing, sales, stakeholders, and clients. The main benefits of Agile Software Development are:

Enhanced flexibility

More teams dedicated to specific tasks means you can quickly react and fix any problems. Agile is the king when it comes to flexibility.

Higher predictability

Some might disagree that if you have more sprints (iterations) and in every session you discover something that needs to be tweaked, how can Agile be more predictable? Look at the problem from a finance perspective. Every iteration has a defined time window (more or less 1 - 4 weeks). That means the dedicated work has a cost.

While with Waterfall you can predict costs based on the timeline, all of these predictions are disrupted if there are any bugs or flaws after the launch. In an ideal world, Waterfall would win in the question of predictability. But this world isn’t so ideal!

Better control

Project management can be frustrating in plan-based approaches. In order to start the next phase, you have to finish the previous one. Benefit of agile is the flexibility of iterations and simultaneous work, which gives the project transparency and better control to managers across teams.

Superior quality

After the last iteration you get a functional, tweaked, oiled, and polished product that is thoroughly tested, debugged and ready to launch. Of course, your Agile approach must be working otherwise you won’t discover flaws.

Transparency

In older approaches, clients or stakeholders get in touch after the project or product was finished. With Agile, the client is in contact at different stages and iterations which makes the whole developing process more transparent.

 

Waterfall vs Agile: which one is better?

Since we use an Agile methodology, you could guess our answer. However, Waterfall still has a place in the field of software development.

You should consider a Waterfall approach for:

  • Projects in need of excess documentation, such as healthcare projects with strict regulations
  • Thoroughly defined requirements and objectives of the project
  • Existing products in need of enhancement
  • Projects on fixed budgets
  • Projects on fixed timelines

 

Frameworks of Agile Software Development

Speaking of Agile, we couldn’t leave out frameworks related to the software development lifecycle. The methodologies may focus on the practices or on the workflow. Some of them are well-known outside of the IT field, for example:

  • Kanban
  • Scrum
  • Lean startup

Less known frameworks outside of the programming community would be:

  • Adaptive software development (ASD)
  • Agile modeling
  • Agile unified process (AUP)
  • Disciplined agile delivery
  • Dynamic systems development method (DSDM)
  • Extreme programming (XP)
  • Feature-driven development (FDD)
  • Lean software development
  • Rapid application development (RAD)
  • Scrumban
  • Scaled Agile Framework (SAFe)

 

What is scrum?

The best way to describe scrum is to use the words of a website dedicated to this framework that promotes the Scrum Guide with rules made by co-creators Ken Schwaber and Jeff Sutherland:

“Scrum is simple. It is the opposite of a big collection of interwoven mandatory components. Scrum is not a methodology. Scrum implements the scientific method of empiricism. Scrum replaces a programmed algorithmic approach with a heuristic one, with respect for people and self-organization to deal with unpredictability and solving complex problems. “

To put it simply, scrum is about effective teamwork and learning from experience, repeating success, and avoiding mistakes identified in the past.

 

What is Kanban?

Sounds Japanese to you? That’s because the Kanban framework comes from Japan and was created by Taiichi Ohno, an industrial engineer of Toyota working on Toyota’s Production System. The word Kanban means ‘card you can see’ and explains its functionality.

Imagine a board with a column where you stick your tasks. This column would be called ‘To Do’. Every time you are free, you would take one sticker from the ‘To Do’ column and work on it after moving it to the ‘Work in progress’ column. Every team member works this way. This is what a Kanban board is and you may be familiar with it thanks to tools like Trello.

 

Read on: Kanban Methodology: How Can It Help Your Software Development?

 

Why do we use an Agile approach at Rare Crew?

We are used to an Agile approach because we create business apps from the scratch while helping clients identify their needs. A customer-centric approach with continual contact is always a better idea as you can guide your client’s expectation with your expertise.

It’s far too common that companies don’t know what they want or need to fulfill their objectives. But that’s okay – that’s what experts are for. If you need consulting feel free to reach out. We are happy to help, Agile as ever!

 

SHARE

Cookie Settings

×

When you visit any website, it may store or retrieve information on your browser in the form of cookies. This information may be about you, your preferences or your device. This is mostly used to make the website work as you would expect it to. The information doesn’t identify you but can be used to offer a more personalized web experience.

Because we respect your right to privacy, you can choose to not allow certain types of cookies. By clicking on the different category headings, you can find out more and change from our default settings. However, blocking certain types of cookies may negatively impact your experience on this site and the services we are able to offer.

Cookie Policy

Manage Consent Preferences

These cookies are necessary for the website to be able to function, hence cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services. This includes setting your privacy preferences, logging in or filling in forms. You can set up your browser to block or alert you about these cookies, however some parts of the website won’t work as a result. These cookies don’t store any personally identifiable information.

These cookies allow us to count visits and traffic sources, so we can measure and improve the performance of our site. They help us know which pages are the most and least popular and see how visitors move around the site. All information these cookies collect is aggregated and therefore anonymous. If you do not allow these cookies, we will not know when you have visited our site.

These cookies may be set through our site by our advertising partners. They may be used by those companies to build a profile of your interests and show you relevant adverts on other sites.    They do not store directly personal information, but are based on uniquely identifying your browser and internet device. If you do not allow these cookies, you will experience less targeted advertising.