WHAT IS AGILE METHODOLOGY AND WHY IS IT USEFUL
Agile methodology is a practice that allows companies to respond to changing requirements and customer unpredictability through incremental, iterative project work, and testing throughout the software development lifecycle.
Technology is evolving, we consume more information daily and there are new challenges to be faced every day. If companies don’t adapt soon to these changes, they will be left behind and will not be able to continue competing in the market.
Why Agile? Because it has proven that companies that embrace it get better results. Some of the benefits of an Agile Organization are:
- Higher productivity with lower costs.
- Higher quality of products and services
- As there is a better read on customer’s needs and wants, customer satisfaction and retention increases.
- As the products enter the market faster and there are frequent product releases, customers have a faster return on investment (ROI)
- Faster reaction time to events and changes
- Greater flexibility in defining priority functions and setting goals.
However, there are also some disadvantages with agile methodology:
- More stress on the team if it is not implemented correctly
- It is difficult to determine the amount of time and money that will be needed to complete the project.
- As teams work on each component in different cycles, the complete output often becomes very fragmented.
- Requires highly skilled and multi-functional team
- There is a lack of predictability as there is never a clear vision of what the “final product” looks like.
Despite having some negative aspects, agile methodology is the future and it will help your company to grow and to evolve. If your organization is not already agile, what are you waiting for?
The Agile Manifesto was written in 2001 by 17 independent-minded software practitioners. They established four core values:
- 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 12 Principles Behind the Agile Manifesto are the guiding practices that support teams in implementing and executing with Agility. They can be summarized as follows: satisfy customers, changing requirements are welcome , deliver working software frequently, people must work together, keep individuals motivated, face-to-face conversations, working software is the measure of progress, sustainable development, technical excellence, simplicity, self-organizing teams, effectiveness.
AGILE VS WATERFALL METHODOLOGY
Companies are starting to use this types of agile methodologies, rather than the traditional software development such as the waterfall model since it has been shown that leads to a higher success.
The main difference between both types of methodologies is that with the traditional one it may take months or even more type to work on a project without showing to the user which imply spending a lot of money, time and effort making decisions based on assumptions, while agile “is all about moving fast, releasing often, and reacting to the real needs of your users” (MacKay, 2018). This means that with agile methodologies at the end of every sprint, user acceptance is performed, while when it comes to traditionals models the user acceptance is performed only at the end of the project.
In addition Agile method proposes incremental and iterative approach to software design and is broken into individual models that designers work on. But on the other hand with the waterfall model development of the software flows sequentially from start point to end point and the design process is not broken into an individual models.
Scrum is the most popular framework for Agile. It “replaces a programmed algorithmic approach with a heuristic one, with respect for people and self-organization to deal with unpredictability and solving complex problems.” (Scrum.org) It is an agile way to manage a project, usually software development. The projects progresses through a series of sprints, no longer than a month. The steps to follow in order to implement scrum are the following (Gurendo, 2015):
- Product Backlog Creation
- Sprint Planning and Sprint Backlog Creation
- Working on the Sprint. Scrum Meetings
- Testing and Product Demonstration
- Retrospective and Next Sprint Planning
This short video explains these steps breefly: A Brief Overview of the Scrum Framework by Scrum.org. https://youtu.be/gy1c4_YixCo
There are three core roles that take part in the scrum process: the product owner, the scrum master and the scrum team, which is self-organizing and cross-functional. Moreover, the teams are designed to optimize productivity, creativity and flexibility (Scrum.org). Scrum is based on the permanent communication and close cooperation between the stakeholders at each step.
Numerous firms are making use of this type of agile methodology and one famous example is Spotify. This firm adopted scrum and, after growing, scaled by making a few changes in order to optimize its results by prioritizing agile principles over practices (Gupta, 2019).
They modified scrum by introducing similar roles: the agile coach (instead of the scrum master) who is in charge of training and supporting the scrum teams, which they denominated squads. These squads are provided a high dose of autonomy and function like small startups.Their autonomy is bounded by the squad mission and product strategy. Squads are also organized into tribes, and those belonging to the same tribe work in a similar feature.
The implementation and modification of this agile methodology has given Spotify prosperous results and has allowed the company to continue its growth.
Kanban is a “workflow management method designed to help you visualize your work, maximize efficiency and be agile” (Kanbanize). Its origin is found in Toyota’s Production System which in 1940 introduced Just-in-Time which was created with the purpose of eliminating waste and unreasonable requirements on the production line completely and optimizing efficiency (Toyota). The purpose is to create more value without increasing cost.
The six rules that Toyota followed that lead to its success with Kanban are the following (Boiser, 2019):
- Never pass on defective products
- Take only what is needed
- Produce the exact quantity required
- Level the production
- Fine-tune production
- Stabilise and rationalise the process.
At the beginning of the 21st Century, Kanban was successfully implemented in other complex sectors like IT and software development (Kanbanize). The use of a simple Kanban board that allows to visualize three columns – “Requested”, “In Progress” and “Done” helps find the exact part of the process that needs to be intervened to increase its agility.
This agile methodology works on four principles (Kanbanize):
- Principle 1: Start With What You Do Now
- Principle 2: Agree to Pursue Incremental, Evolutionary Change
- Principle 3: Respect the Current Process, Roles & Responsibilities
- Principle 4: Encourage Acts of Leadership at All Levels
Moreover, Kanban is based on six practices:
Extreme programming (XP)
Extreme Programming was introduced by Kent Beck in 1996 and even though it was considered a new term, some of the method introduced such as pair programming, unit testing, and customer acceptance tests already existed, but XP took this practice to “extreme levels” (Delos Santos, 2018).
It is an agile software development methodology that aims to produce higher quality software, and higher quality of life for the development team. XP empowers developers to confidently respond to changing customer requirements, even late in the life cycle (Wells, 2009).
The five values of XP are communication, simplicity, feedback, courage, and respect.
–Communication: Face to face daily communication between team members
–Simplicity: Do what is needed and asked for, but no more (Powell-Morse ,2017). By keeping the design of the system simple so that it is easier to maintain , it will be possible to maximize the value created for the investment made to date.
–Feedback: It is essential to achieve a great outcome since people learn from and inspire each other.
–Courage: A lot of courage is needed in order to embrace change
–Respect: It is essential to create a good working environment.
We can conclude that the main goal of XP is to deliver software that is needed when it is needed. A great example of a company that applies this method would be Microsoft.
Dynamic systems development method
The Dynamic systems development method is an Agile method that focuses on the full project lifecycle. It was introduced in 1994 and was originally based on the Rapid Application Development (RAD) methodology. This type of agile method states “that any project must be aligned to clearly defined strategic goals and focus upon early delivery of real benefits to the business” . It also highlights the importance of the actively involvement of the user and the power of teams to make decisions.
“The Dynamic Systems Development Method is about people, not tools. It is about truly understanding the needs of a business, delivering software solutions that work and delivering them as quickly as possible” (Stapleton, 1999). In order to be able to deliver things quickly some techniques, such as time boxing or prototyping are used.
DSDM consists of eight principles that will contribute to a better organization of the team, as well as to create a mindset to deliver on time and stick to the budget:
- Focus on the business need
- Deliver on time
- Cooperate and Collaborate
- Never compromise quality
- Develop iteratively
- Communicate continuously
- Demonstrate control
- Build incrementally from firm foundations
The DSDM is divided in 3 phases:
- Phase 1: The Pre-Project
- Phase 2: The Project life-cycle:
- Feasibility Study
- Business Study
- Functional Model Iteration
- Design and Build Iteration
- Phase 3: Post-project
Since DSDM is consider a framework and a more generic approach to project management rather than just a software development method, it can be implemented on non-IT projects as well.
Crystal development framework
Crystal is an agile framework focusing on individuals and their interactions rather than on processes and tools. It focuses on six primary aspects: people, interaction, community, communication, skills, and talents. It promotes:
- Early frequent delivery of working software
- High user involvement, adaptability
- The removal of bureaucracy or distractions
The name Crystal is derived from the characterization of projects according to the size of the project. Clear is for teams of up to 8 people or less, Yellow is for teams of 10 to 20 people, Orange for teams between 20 to 50 people, Red for teams of 50-100 people.
Feature driven development (FDD)
It is focused on organizing software development around making progress on features. In this context, features are user “stories” or actions that should be completed, such as completing the login process . FDD consists of five main steps that constitute the project lifecycle: develop an overall model, build a features list, plan by feature, design by feature and lastly, build by feature. It has a top-to-down decision making approach, heavily relying on chief developers, and it can be very useful when working in large teams, however it may not be efficient in smaller projects (ProductPlan, n.d).
The first real-world application of the Feature Driven Development methodology was on a 50-person software-development project for a Singapore-based financial institution (ProductPlan, n.d).
This methodology is focused on developing businesses and products by reducing product development cycles through a combination strategy. The strategy combines experimentation based on a hypothesis and the launching of iterative products aiming to receive consumer feedback to nurture and improve the product (Nieva, 2018). The main goal is to launch a minimum viable product into the market and improve it using consumer feedback in order to reduce initial investments. This way a dynamic environment is created where there is a continuous feedback loop between users and creators, and the product is updated regularly in order to make sure it fulfills customer needs.
A good example of this put into practice is Dropbox, who focused on changing and adapting their product quickly according to the consumer feedback they received. This way the number of users went from 100,000 to over 4,000,000 in 15 months (The Lean Startup, n.d).
Lean software development
It can be considered a software adaptation of Toyota’s lean manufacturing. Its main focus is to reduce waste, selecting characteristics that create value, and focusing on speed and efficiency in particular.
There are 7 main principles lean software development follows (Hawks, 2010):
First, eliminate waste, ie anything that doesn’t bring value to the customer: large inventories of partially done work, repeating tests, delayed integration, overproduction, etc.
Second, build quality in. Focus is on avoiding creating defects, include defect tracking queues of partially done work, write less code thus keeping the code base simple, expect to change existing code.
Third, create knowledge: here software is a knowledge-creating process, where validation of architecture comes as the code is being written. Expect the design to evolve, rapid feedback from integration tests, encourage systematic learning throughout the development cycle and focus on reducing response time to quickly deal with unforeseen events.
Fourth, defer commitment: schedule irreversible decisions for the last responsible moment and try to make most decisions reversible.
Fifth, deliver fast. Companies that compete based on time often have a significant cost advantage, eliminating large amounts of waste, lowering defect rates. This, however, is only possible with high-quality work. People doing the work know what to do without being told and are expected to solve problems and adapt to changes without permission.
Sixth, respect people. Have good leaders who make sure teams are engaged and focused on creating a great product, nurture appropriate technical expertise, give responsibilities to different team members.
Seventh, optimize the whole value stream, using continuous testing and adapting the code at every stage of its creation to save time and costs.
AGILE + DIGITAL
Digital as a tool refers to knowledge about virtual tools and agile refers to fast adaptation with little waste. Digital and agile development are evolving in parallel and may soon merge into one in certain markets, as they would both have to be implemented simultaneously, particularly in the software development and tech worlds. According to Calafell, when the level of awareness of what agile software development is, reaches the same level of awareness of digital as a tool that is expected to happen around 2025, “Agile will be more relevant than Digital training-wise” (Calafell, 2020). This could be because digital is already commonly used, whereas agile is still a relatively new concept that many companies are yet to adopt.
However, their combination will be the recipe for success: maximize efficiency using the most modern, up-to-date tools.
Both of them will be required skills in the future, and it is important for us, as future workers, to be aware of them as we will be using them in our everyday work.
Conclusion: Key points
As a conclusion to our blog, we want to take a look at the future of agile methodologies. It is demonstrated that embracing the Agile mindset entails a deep change for most organizations (Denning, 2019) but this does not change the fact that it is necessary and beneficial. Rapid change and the growing complexity that define the world we live in nowadays ensure a bright future for the Agile revolution.
Baggot, A (October 8, 2019). What is Agile Methodology and why is it useful?. Retrieved from:https://www.holded.com/blog/what-is-agile-methodology-and-why-is-it-useful/
Calafell, J. (2020, February 18). From Agile Training to Business Agility: Changing the future of organisations. Retrieved May 1, 2020, from https://www.goodrebels.com/from-agile-training-to-business-agility-how-we-helped-to-understand-a-product-that-will-change-the-future-of-organisations-/?utm_source=feedburner&utm_medium=email&utm_campaign=Feed:+tcblog-marketing+(TcBlog,+el+Marketing+en+español)
Cervantes, J. (August 18, 2019). ¿Cómo surgió el desarrollo ágil? Principios fundamentales. Retrieved from: https://www.pensemosweb.com/como-surgio-el-desarrollo-agil-principios-fundamentales/
Delos Santos, J.M. (October 2, 2018). XP, FDD, DSDM, and Crystal Methods of Agile Development. Retrieved from: https://project-management.com/xp-fdd-dsdm-and-crystal-methods-of-agile-development/
Denning, S. (2019, August 25). Why Agile’s Future Is Bright. Retrieved from: https://www.forbes.com/sites/stevedenning/2019/08/25/why-the-future-of-agile-is-bright/#3e73049d2968
Don, W. (2009) Extreme Programming: A gentle introduction. Retrieved from: http://www.extremeprogramming.org/
Don, W. (2000) Introducing Extreme Programming. Retrieved from: http://www.extremeprogramming.org/introduction.html
Gupta, S. (2019, September 14). Spotify Scaling Model and its similarities with SAFe. Retrieved from: https://www.agileincrement.com/post/spotify-scaling-model-for-agile-teams
Gurendo, D. (2015) Software Development Life Cycle (SDLC). Scrum Model Step by Step. Retrieved from: https://xbsoftware.com/blog/software-development-life-cycle-sdlc-scrum-step-step/
Hawks, D. (2010, April 10). 7 Lean Principles of Software Development. Retrieved April 30, 2020, from https://agilevelocity.com/7-principles-of-lean-software-development/
Kalra, D. (2017, January 22). Lean Software Development – 7 Wastes of Software Development. Retrieved May 4, 2020, from https://agilecoachdiaries.wordpress.com/2017/01/19/lean-software-development-7-wastes-of-software-development/
Kanbanize. Kanban Explained for Beginners. Retrieved from: https://kanbanize.com/kanban-resources/getting-started/what-is-kanban
Lena Boiser, L. (2019, May 28). The Six Rules of an Effective Kanban System. Retrieved from https://kanbanzone.com/2019/effective-kanban-system-six-rules/
Lvivity (March 6, 2018). Agile methodology: advantages, disadvantages and when to use it. Retrieved from: https://lvivity.com/agile-methodology
MacKay, J. ( January 11, 2018). The Ultimate Guide to Implementing Agile Project Management (and Scrum). Retrieved from: https://plan.io/blog/ultimate-guide-to-implementing-agile-project-management-and-scrum/
Mrsic, M (August 9, 2017). Crystal methods, Retrieved from: https://activecollab.com/blog/project-management/crystal-methods
Mountain Goat Software. Scrum. Retrieved from: https://www.mountaingoatsoftware.com/agile/scrum
Nieva, C. (2018, August 23). Lean Startup. Retrieved April 30, 2020, from https://www.emprendepyme.net/lean-startup
Ouriken, (November 28, 2019) Which one is right for you: Waterfall or Agile?. Retrieved from: http://ouriken.com/blog/which-one-is-right-for-you-waterfall-or-agile/
Powell-Morse, A. (January 20 ,2017). Extreme Programming: What Is It And How Do You Use It?. Retrieved from: https://airbrake.io/blog/sdlc/extreme-programming
ProductPlan. (n.d.). Feature Driven Development (FDD). Retrieved April 30, 2020, from https://www.productplan.com/glossary/feature-driven-development/
Robins, D (March 6, 2018). Why Agile is important? Retrieved from: https://www.binfire.com/blog/2018/03/why-agile/
Sabry, H. (2010, September 21). Six Rules For An Effective Kanban System. Photo retrieved from: https://www.processexcellencenetwork.com/lean-six-sigma-business-performance/articles/what-is-kanban
Stapleton, J. (June 1999) DSDM: Dynamic Systems Development Method, Proceedings Technology of Object-Oriented Languages and Systems. TOOLS 29 (Cat. No.PR00275). Retrieved from: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=779095&isnumber=16896
The 12 principles behind Agile manifesto. Retrieved from: https://www.agilealliance.org/agile101/12-principles-behind-the-agile-manifesto/
The Home of Scrum. What is Scrum? Retrieved from: https://www.scrum.org/resources/what-is-scrum
The Lean Startup. (n.d.). Case Studies. Retrieved April 30, 2020, from http://theleanstartup.com/casestudies
About the authors
Sofía García Moreno. I am currently a student of Management and Technology, some of my main interests are digital business, as well as the use of new technologies in the business environment. I have a great desire to continue learning and to face new challenges in the future.
Marta Lacadena Pérez. I am a Management and Technology student, passionate about economics and technology. In 5 years I see myself working in a very dynamic environment, constantly learning and maybe running my own company. I also love cooking and skiing
Gracia Moreno de Oriol. I am a Management and Technology student, passionate about business management and digital marketing. In 5 years I see myself working in the e-commerce part of a fashion company, always trying to learn and practice new things. I love horse-ridding and reading.
Marta Rincón Martínez. As a second year student of Management and Technology I am curious about what the evolution of technology holds for the business world. I would love to have the opportunity to work in a social startup in the future. I enjoy traveling, dancing and spending time with kids.