Long before Agile came into existence, almost everything was done by the waterfall method. Its rigidity ensured that projects were easy to manage, but that also translated to more time to actually get a product deployed. So, it often happened that by the time the end product was ready to be deployed, the business requirements would have changed, thus making the product redundant.
By the start of the millennium, markets had become more volatile, requirements were changing rapidly, and customers wanted quick fixes and accommodation of their changing needs. That’s when 17 engineers got together and decided to come up with a new approach to software development that would address these problems. They came up with principles and values that would guide iterative software development. This document came to be known as the Agile Manifesto.
The authors of the Agile Manifesto came out with 4 values and 12 principles in order to help the professionals understand it easily and put it into practice. The manifesto created an impact and changed the future of project management.
Agile Essentials is a set of resources intended to bring you up to speed on the concepts and principles of Agile. The Agile Essentials provide an overview of Agile values, principles, concepts, vocabulary, terms and roles to provide an understanding of the breadth of Agile and how it differs from traditional project management practices.
Agile teams have created their own agile terminology to manage all these principles and practices. The glossary consists of 50 Agile Terms.
Reference: Check URL for the list of agile terminologies.
The Agile Manifesto drafts out 12 principles for agile development practices. These 12 principles highlight on continuous delivery of valuable software in sprints and attention to technical excellence. The continuous delivery will involve quick feedback from the customer which will help reduce changes at the last minute.
The below picture depicts practices that are interconnected, while the colors at the bottom indicate each category.
The vital value of agile development is that it should deliver value faster, ensure quality and certainty, and offer greater aptitude to respond to changes that correspond to market expectations. At a time when industries were growing rapidly and market expectations were changing, software needs and expectations were also changing and becoming more demanding. Agile software development history dates back to when the Agile Manifesto was created and Agile came into existence.
In early 2001, a group of 17 developers held the (now famous) two meetings -- the first in Oregon and the second in Snowbird, Utah -- to discuss issues and solutions to overcome existing software development methodologies that were making it difficult to respond quickly to change. The group comprised of 17 individuals, including Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor, Ken Schwaber, Jeff Sutherland, and Dave Thomas.
All scenarios led to propose a working session. The working session organized by Dave, Robert and Jim had two objectives.
The Agile Manifesto thus tabled has 4 foundational values and 12 supporting principles. These values and principles lead to the agile approach to software development. Agile methodology applies 4 values in different ways and these values guide the development and delivery of high-quality, working software.
The four Agile Manifesto values are as follows:
The Agile Manifesto values people higher than processes or tools because it is the people who respond to business needs and drive the development process. If the process or the tools drive development, the team is less responsive to change and less likely to meet customer needs. In case of individuals, communication flows and happens when a need arises. In the case of process, communication is designed and requires specific content.
Historically, a mammoth amount of time was spent on documenting the product for development and delivery. Technical specifications, requirements, prospectus, test plans, documentation plans, and interface design were the documents that were created which required lots of time. This mammoth list caused long delays in development. Agile does not eliminate documentation, but provides all the information that is required for the developer to complete the work without getting bogged down in finer points.
Customers are involved in all the agile phases of the project. There is total transparency. The Traditional methodologies have customers negotiate before the project starts and the project ends. This results in wastage of both time and resources. In the agile development process customers are kept in the loop and information is provided to all stakeholders by the product owner; this ensures that the final product meets all the requirements as per the expectations of the client.
Changes should be avoided in Traditional software development as they are considered to be expensive. The intention was to develop elaborate plans, with a well-defined set of features. Higher priority features are developed first and the rest follow. Delivering in the order as prioritized by the product owner will help the team work on itemized sprints.
With Agile, the iteration means priorities can be shifted from iteration to iteration and new features can be added into the next iteration as required. Agile accepts changes as they are ways to improve a project/product.
The Twelve Agile Manifesto Principles are the guiding principles that are included under the title “The Agile Movement”. Agile Manifesto architecture demonstrates the movement’s intent as described by Alistair Cockburn, one of the signatories to the Agile Manifesto, which is to bring development into alignment with business needs.
The twelve principles of agile development include:
Customers will be happy when the software is delivered early for testing and feedback and when they are kept in the loop about the progress, the implementations, and product developers acknowledge the delivery value by fulfilling their top priority requirements first. A completed Iteration has an outcome, a working code to respond to the ever-changing user requirements.
Agile methodology stresses on responding to change instead of staying strictly aligned to an approved plan as was the case in the traditional methodology. It is a simplified version of handling changes with no formal documentation or approval. The changes are integrated for the customer’s competitive advantage because it takes care of the market changes in the business to bolster your advantage to emerging opportunities.
Provide immediate value to the customers by delivering features that are done. The development teams are wholly responsible for completion of sprints. They ensure that each feature developed is tested, and matches the customer’s requirements before it is delivered. The project team needs to focus on the delivery of value to the customer within a fixed delivery timeframe.
Agile accepts changes in software development. It is hence important to clarify requirements on a timely basis to always keep all the team members notified and up-to-date during the development of the software.
Agile depends on focused, trusted, and motivated individuals to complete projects as per requirements of the client. Development teams have all the power to select the work they are most interested in by self-organization with no interference from the external management.
Feedback via face-to-face interaction or video conference with development teams in different geographical locations is always encouraged as it assists in easy and smooth transfer of information amongst the members.
The only way to measure success factors is by delivering a working product that satisfies the customer’s needs. Delivering functional software to the customer is the ultimate way by which progress can be measured.
Teams establish the velocity rate at which they can deliver working software, and they follow the same process with each release. Agile methodology aims to keep the work-life balance of development teams and never burden them with huge amount of work, thus keeping them happy and motivated.
The right technical skills and good design ensures the team can maintain the pace, constantly improve the product, and sustain market changes.
Focus on things that are important to add value to the project and customers. Develop the product as required and get the job done correctly.
In Scrum methodology, the team has overall control and is responsible for completing each sprint. The team performs in the best possible way needed to carry out the task. There is no interference of the project manager or from the human resources department.
Self-improvement, process improvement, enhancing skills, and techniques help team members work more efficiently. It is imperative for Scrum teams to work and focus as a cognitive unit. Working out new plans, checking requirements and adapting to changes will help the Scrum team to work more efficiently.
Agile development is a method based on iterative and incremental development. The requirements and solutions evolve in short sprint iterations through collaboration within self-organizing, cross-functional teams. The idea of the Agile method is to create a working software, compliant to change, and incorporate Face to Face interactions and collaboration over processes, tools or plans. It’s based on the principle of incremental delivery of the business value as quickly as possible through iterative development of software. The Agile Manifesto is the basis of the Agile practices, processes and principles etc used today.
The Agile community is now the Agile Industrial Complex. It is that web of agile institutions, Agile thought leaders and Agile consulting firms that implicitly collude to make normal the very harmful and disrespectful imposition of Agile practices on teams without consent.
According to Martin Fowler agile had become mainstream in 2016. It is no longer exotic or frowned upon on, as in the early days.
The Agile Manifesto has made a profound effect on software development, even reaching beyond into the wider world of business.
There’s ample evidence that the Agile Manifesto remains relevant in software development even today. The Agile Manifesto established some core elements of the best modern software development practices, which are still industry standard.
Examples of its influence include:
Agility means development with incremental approach, making small changes quickly, and learning from it through stakeholder feedback, making adjustments to our understanding of problems and repeating this many times.
What to do:
Below are a few simple steps that really describe what agile is all about.
Agile is a simple and fast way of learning and improving by taking small steps, one after the other.
Implementation of agile values to the project development process promotes communication both horizontally and vertically throughout the organization. It enhances innovation through high-performance multidisciplinary development teams and enhances business value by involving the client throughout the incremental delivery process.
Improved communication, teamwork, collaboration, and organizational change improve the business value of products during the preliminary stages and throughout the project development lifecycle stages.
Below are the concluding thoughts about Agile implementation
Your email address will not be published. Required fields are marked *
Over the past few years, the job market has witnes... Read More