Agile in action: 10 minutes to know everythingBy Yahong Zhang |
Table of contents
What is Agile?
The word “agile” signifies the capability to keep things in motion with ease and without any hurdles. It is meant to showcase the adaptiveness and response to change, which is an important concept in this approach.
In software development process, for example, it indicates the smooth running of the process, which in this industry has presented a different working approach with some unique pivotal points.
The agile methodology is developed and applied mainly in two areas: software development and project management.
Agile software development methodology is an umbrella term for a set of frameworks and practices, centered round the idea of iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams. This process enables the team to deliver faster and better results. The Scrum and Kanban are two of the most widely used tools in here.
Agile project management is based on the Agile manifesto and starts from the premise that projects are based on people who need to collaborate well and have skill sets that complement one another. It is less about organograms but more about putting professionals together and getting them to think of the best way to get things done.
When it was first used in 2001, in the context of the Agile manifesto, the term Agile was linked primarily with software development. After that the method started gradually spreading to different domains and industries and Agile project management became a generally accepted mindset of accepting and dealing with changes in an ecosystem which is turbulent and uncertain.
The agile manifesto: 4 values and 12 principles established to embrace changes and flexibility
In 2001 when they created the Agile Manifesto, the 17 software developers involved in the process committed to the following four values:
1. Individuals and Interactions Over Processes and Tools. This value states that people are those who design tools and use them to their advantage to drive development.
2. Working Software Over Comprehensive Documentation. Agile accepts the importance of documentation, but considers it a tool rather than a purpose; therefore the mindset gives software developers what they need to work, without overflooding them with information.
3. Customer Collaboration Over Contract Negotiation. Agile project management places customers in all of its processes, from market research to deployment and delivery, in order to ensure that the final result complies with their demands. As opposed to this approach, negotiation only applies before the process. After the two entities involved, i.e. the client and the project manager have decided the details of the deliverable, it is difficult to make changes.
4. Responding to Change Over Following a Plan. While traditional software development did not foster the concept of change and focused on detailed plans that were bound to be fully respected, Agile supports the idea that changes are good as they bring added value to projects.
In what the Agile principles are concerned, they are meant to support a culture that welcomes unexpected changes and revolves around customers and their behaviors and needs, as well as the objectives and potential of the business.
- Customer satisfaction by early and continuous delivery of valuable software;
- Welcoming changing requirements, even in later development stages;
- Delivering working software frequently (weeks rather than months);
- Close, daily cooperation between business partners and developers;
- Building projects around motivated individuals, who should be trusted;
- Face-to-face conversation, as the best form of communication (co-location);
- Working software as the primary measure of progress;
- Sustainable development, able to maintain a constant pace;
- Continuous attention to technical excellence and good design;
- Simplicity—the art of maximizing the amount of work not done;
- Best architectures, requirements, and designs that emerge from self-organizing teams;
- The team’s reflecting on how to become more effective, and adjusts accordingly.
How does Agile work? Process, characteristics and benefits
Agile takes projects and breaks them down into smaller increments, in the scrum framework, and deliver the tasks in cycles known as iterations, which have a recommended duration of 2 week.
Before getting down to work, both the client and the project manager are obliged to make a list of “user stories” or “goals” that are mandatory for the project, assess how much time they take and then prioritize the mini tasks according to importance and urgency.
Those assignments, once approved, will later go to the Kanban until they are achieved, verified and eliminated, which paves the way for new tasks coming in. An agile project is considered done only when there aren’t any increments left to deliver.
1. Two-week implementation cycle: The provision of flexibility on the developmental process is a 2-week implementation cycle.
2. Verification Method: Quick process of step-by-step verification and immediate corrections.
3. Scrum Framework: Elimination of superfluous activities i.e. the finest implementation alive today is the scrum framework.
The Agile approach turns traditional software development phases such as analysis, design, coding and testing into continuous activities that coexist throughout the development of the project.
This type of evolving architecture enables Agilists to stay cost- and time-effective, as well as maintain flexibility and shape projects as they go.
In addition, it consistently relies on customer feedback so that agilists manage to avert issues.
4. Risk Adaptive: Agile supports flexibility and is oriented towards accommodating change, not matter at which stage of the process it intervenes.
5. Extremely pragmatic. The best measure to assess a project for Agilists is by developing software that responds to the client’s demands in the least time possible.
6. Trifling documentation: Breaking down bigger steps into small milestones with minimal documentation.
Agile starts from a basic project built up and developed over time with each small increment instead of delivering the complete task all at once.
7. Collective Approach: Collaborative working style is intended for 10-12 programmers in colocation.
It is based on face-to-face communication as teams are often located in the same room. This reduces waiting times associated with phone calls, emails and so on. To maximize efficiency, each team includes a customer representative, i.e. the equivalent of a Scrum product owner.
8. Diversity in team members.
An agile team is made of different professionals: project managers, UX designers, developers, business analysts, quality assurance analysts etc. But once you bring them together, these roles fade as each of them contributes using their own expertise to bring the best of the team.
As said by researchers, the agile methodology pacts with an upheld and shorter life cycle with spectacular outcomes. This would not only provide a better approach for the work, but in fact saves time and the sweat equity they put in work following the linear approach.
Agile vs. Waterfall: How to choose one that suits your business better?
As opposed to Agile project management, which has an iterative and incremental approach, the Waterfall Model, also known as the Linear Sequential Life Cycle Model, is ruled by sequences, as in order to proceed to a new stage, the team needs to have successfully completed the previous one. This method is also known as the plan-driven approach as it highly sticks to a single plan.
1. Customer Presence: Agile requires customers to be an active part of its mindset, while Waterfall only relies on customers at the completion of each milestone.
2. Purview: In what the actual scope is concerned, Agile is different from Waterfall in that it accommodates changes and is recognized for adapting scope and such features as time, budgets and even goals. It works in a limited scope not beyond. Waterfall, on the other hand is sensitive to changes and works very well when contractual limitations or similar criteria infringe scope.
3. Prioritization: Agile attributes different priority levels to various goals to ensure that the highest-rated are finalized first. It focuses on completing the necessary part first and thus reduces the risks of failure.
Waterfall in comparison has an all-or-nothing approach to things as it is based on negotiations only. It doesn’t welcome challenges unless described in the contract and therefore decreases the flexibility and increases the chances of failure, especially in an unstable, unreliable and ambiguous environment.
4. Working style: Agile relies on collaboration, day-to-day meetings and face-to-face communication; while Waterfalls makes use of classical roles that are brought together at specific stages through project coordinators.
5. Funding: This is the most significant part that concerns businesses when they are trying to switch the approach. The Agile methodology works on the non-fixed funding and gets paid according to finished milestones only. This is beneficial for the customers as they have the option to cancel, stop or make a payment when a single milestone is completed. On the other hand, Waterfall is restricted to proceed with fixed funding.
6. In a Nutshell: which is better? After discussing the advantages and disadvantages of both Agile and Waterfall it can be concluded that the answer lies in your own business ideology and process.
If you want to build a bridge or an infrastructure, for example, it is recommended to adopt a Waterfall approach, as you would need to work a plan firstly with clients and then stick to it. Also in such a scenario it is impossible to reiterate and go back to an earlier stage, which is required by Agile.
Developers as well as management are embracing Agile due to better performances
Agile has become the norm in software development, as research shows that over 85% of developers use the agile methodology, compared to a little over 15% on Waterfall.
Moreover, according to PWC projects implementing Agile are considered 28% more successful than traditional ones. Reasons to adopt such a mindset include: accelerating software delivery (74% of respondents), improving team morale (34%) and reducing project risks (28%).
The agile methodology is leveraged both in software development, as that has been its first use ever since the manifesto was created, and in management. The principals of this approach became so widely used that they expanded even in the marketing industry, i.e. Agile marketing, which uses data collection and analysis to identify opportunities and implement solutions in real time. This kind of working flow enables marketers to generate ideas which can be quickly assessed and tested.
At a global level corporations like Apple, Nokia, Ericsson and Intel are making use of Agile in development, project management and marketing in order to foster innovation, creativity, flexibility and collaboration.
2 real world case studies: software development and marketing
A case study based on the research of Mercado et al. 2018, where a international software developer company in Mexico adopted an agile approach in Business Intelligence (BI) solutions, regarding the design and development of data warehouses.
After comparing the 3 different methods, seen below, the company later decided to roll with the 3rd option and it turned out to be a great choice.
The agile approach focused on the users’ needs and was able to easily respond to changes. In addition, meetings with the working team, i.e., stakeholders, BI users, ETL developers, business analysts, among others, were held in order to compile information requirements during all stages of the project emphasizing uninterrupted communication and collaborative work.
For these reasons, the implementation of agile managed to help enhance the understanding the all stakeholders towards the new BI system, solve the daily problems concerning users and would positively impact the improvement of the company’s value chain processes.
Another case study. Netflix the streaming service is implementing and taking advantages of the agile methodology successfully in terms of content creation, client relationship management and marketing, which might be a good example for you:
1. Netflix doesn’t release pilot episodes. Instead of investing a huge amount of time and resources into one episode that might or not be successful, Netflix relies on data collection and analysis to predict user behaviours to increase success rates and create shows that will attract the maximum traffic.
2. Netflix is consistently integrating consumer feedback. Netflix understands where its users position themselves and applies change in real time so to gain a win win.
3. Netflix is successfully streamed on 900 different devices, which means that the company makes perfect use of cross-browser testing based on consumer demands.
4. Netflix prefers to do frequent and consistent releases. The platform creates content that is released in shorter cycles, as supported by Agile project management.
5. Netflix works with detailed Agile goals involving each viewer, by creating personalized content, recommendations and analysis for each user depending on their browsing history and customer journey.
Future consideration and upcoming challenges for the agile admirers
Research indicates that 76% of the businesses will grow by 2020 especially the companies using an agile methodology. Fact is, most of time the reason why companies are facing struggles really just lies in the basic approach itself (Williams, 2010). This can be a clue for all of those who want to survive in a world where each company is affected by rapid, massive and complicated changes: it is increasingly difficult to find any other method that proves more resourceful and versatile than Agile, said Steven Denning for Forbes.
Despite some of its shortcomings, for example, demands for a high level of commitment from each team member as well as clients and less detailed documentation to facilitate necessary processed like the on boarding, the Agile methodology is still a technological revolution and is improving till today.
Good news is that thanks to the advance of Artificial Intelligence (AI), the automation of this approach will have more implications than before.
From this, we can predict that the process of agile would become even smoother as most of the traditional tasks will be done with the help of automation and therefore the team size will be smaller, which further boosts communication and efficiency (Williams, 2010).
Abrahamsson P. Salo, O. Ronkainen, J. & Warsta, J. (2017). Agile software development methods: Review and analysis. arXiv preprint arXiv:1709.08439.
Mercado K. E. Perez, C. B. Lopez-Arredondo, L. P. Caro, K. Castro, L. A. & Rodriguez, L. F. (2018). Agile Dimensional Model for a Data Warehouse Implementation in a Software Developer Company. Research in Computing Science, 147, 27-34.
Williams L. (2010). Agile software development methodologies and practices. In Advances in Computers (Vol. 80, pp. 1-44). Elsevier.
Contact Hapticmedia now to see our successful user cases and the visible improvement we have brought to our clients. You will be amazed.