What is Agile?
The term agile was not chosen at random; at the Utah workshop in 2001 where a group of modern methodology leaders convened, two alternative names were considered: adaptive or agile. Both emphasize flexibility. Oxford dictionary defines the word agile as “ability to move quickly and easily”. Thus agility is our flexibility to move quickly and easily so that we become light weighted and adaptable to embrace the change. Let us now contemplate the need for the change
Why Change? Let us for a moment introspect why many software development organizations are striving to be agile. Software development enterprises are seriously concerned with their existing development models as they are not able to deliver their product increments to market on time, unable to cope up with fast changing customer expectations and thus losing their market share to their competition. When enterprises are on the edge of losing their very existence itself, strategists are doing everything necessary to embrace the change. Technically speaking, traditional development with single-component silo skill set groups, delayed or weak feedback loops, front loaded predictive planning, and a sequential flow from analysis to test is not very successful in today’s volatile world. In this approach, real working software is not visible till late in the game. Also, processes and tools are taken front seat and we find little or insufficient interactions among the end user who requested the change and the developer who is building the product. Traditional approach focuses more efforts on contract negotiation and adherence and we see little or no collaboration with end customers. In nutshell, traditional software development models emphasis following the set plan and makes it quite difficult for the team to respond to the change. These are impacting Return on Investment of enterprises predominantly because of below problems.
- Releases are taking too long time
- Stabilization takes too long time
- Changes are hard to make
- Quality is failing
- Teams relaxes initially and works extended hours in the final days – This hurts employee morale and employee satisfaction
- Lack of transparency
- Lack of ability to improve
- Reduction in flexibility
- Increase in business and technical risks
Embrace the change: In this process, I must want to acknowledge the quote from Jack Welch.
Willingness to change is a strength even if it means plunging part of the company into total confusion for a while.—Jack Welch
Agile Manifesto signed by Agile Alliance group: On February 11-13, 2001, at Utah, 17 subject matter experts practicing Extreme Programming, SCRUM, DSDM, Adaptive Software Development, Crystal, Feature-Driven Development, Pragmatic Programming, and others sympathetic to the need for an alternative to documentation driven, heavyweight software development processes convened. “A Manifesto for Agile Software Development” was emerged and signed by all participants. The term “Agile” came from Martin Fowler. The group was named as “The Agile Alliance”. They formed Agile Manifesto that says
Effective Agile Implementation requires us implement below model. That is we got to implement Agile Values and principles for sure in the process of uncovering better ways of developing software through Agile Methods.
Agile development is based on sets of values that support and encourage being agile. Let us visit Four values of the agile manifesto in detail:
- Individuals & Interactions over Processes & Tools: Individuals are the ultimate source of value! – Engage them early :: Focus Team attention on the Individuals and interactions involved :: It’s People – Projects are undertaken by people; Problems are better solved by People rather than Processes or tools; Scope is debated by People and Acceptance of the Product is done by People….:: Build Productive and effective interactions among the Project Team
- Working software over comprehensive documentation: Delivery is the primary goal of the Team :: Working Software to be the basis for Go/No Go Decisions
- Customer collaboration over contract negotiation: See from the Customer’s eyes and Work with the customers :: Collaborate, and deliver the product as per the customer vision :: Maintain healthy and cooperative relationships
- Responding to change over following a plan: World is so Dynamic People change their priorities very often :: Change is a fact and inevitable. Honor changes as and they come :: Adapt, inspect, and Improve; continuously
Agile Principles: ( refer www.agilemanifesto.org/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 behaviour accordingly.
What is agile methodology? An agile methodology—such as Scrum—is a lighter-weight approach to complex software development. Agile methodologies promote proven product development concepts in a simple framework, including long lived self-organized cross functional teams, short iterative full life cycle feedback loops and lowering cost of change thereby increasing agility and feedback, enable earlier ROI and thus reduce the risks. In essence,
- The team is given clear goals
- The team organizes itself around the work
- The team regularly delivers the most valuable features
- The team receives the feedback from people outside it
- The team reflects on its way of working in order to improve
- The entire organization has visibility into team’s progress
- The team and management honestly communicate about progress and risks.
This way of working is based upon values of self-respect, respect for others trust and courage.
Why Becoming Agile is worth It:
Becoming Agile is worth because it brings Agile methodologies feature self-organized teams that are empowered to achieve specific business objectives. Agile framework is iterative and incremental in nature and brings you closer to what the customer wants by involving the customer at every step. Agile is all about empowering the team and getting closer to what the customer wants. It drives the decision-making process lower in an organization, making that organization more responsive and adaptive. It relies on lean governance (management) and more disciplined. Agility is the flexibility to deliver customer value with focus on:
- Using Incremental and Iterative approach, Agile focuses on Rapid and Frequent deliverables of shippable Working Product increment.
- Time Boxed in nature
- Rapid and Flexible response to change
- Open Communication and Collaboration at all levels
- Rolling wave Planning
- Long lived self-organized cross functional teams – A leadership philosophy that encourages teamwork, self-organization and accountability.
- Promotes Frequent Inspections and Adaptions
- High Return on Investment
- Lowers the Cost of the work.
Survey Results: The 7th annual “State of Agile Development” survey was conducted between August 9th and November 1, 2012, Sponsored by Version One, the survey polled 4048 individuals. The results showed interesting insights.
Why Organizations are adopting Agile?
Manage Changing Priorities
Accelerate time to Market
Enhance Software Quality
Better alignment IT/Business
Simplify Development Process
Enhance Software maintainability/extensibility
Improved Team morale
Improve engineering discipline
Manage Distributed Teams
Benefits experienced with Agile adoption
- Ability to manage changing Priorities
- Increased Productivity
- Improved project visibility
- Improved Team Morale
- Enhanced Software Quality
- Reduce Risks
- Faster time to Market
- Better alignment between IT and Business Objectives
- Improved/increased engineering discipline
- Enhanced Software maintainability/extensibility
- Manage Distributed Teams
In essence, becoming Agile is worth it because we can observe below gains:
- Higher productivity and lower costs
- Improved employee engagement and job satisfaction
- Faster time to market
- Higher quality
- Improved stakeholder satisfaction
- What we’ve been doing no longer works