Why many Organisations are struggling? - Why becoming agile is worth it?


Let us for a moment introspect why many organisations are struggling to deliver?. Development enterprises are seriously concerned with their existing development models as, most of the times, they are unable 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. The primary reasons for this state can broadly be attributed to below reasons: 

1. Release to Market is taking long time
2. Actual development effort takes 30% to 40% of the total effort where as stabilisation effort (includes Regression testing, stress testing, User acceptance testing, deployment activities) takes 60% to 70% of the total effort.
3. Changes (to requirements and design) are hard to make
4. Low quality product is springing out most of the times.
5. Teams relax initially and work extended hours in the final days - This hurts employee morale and employee satisfaction.
6. Lack of transparency
7. Lack of ability to improve
8. Reduced flexibility  due front loaded predictive planning and sequential flow from analysis to test
9. Risks (in business and technical aspects) are difficult to mitigate becuase of poor transparency
10. Single-component silo skill set groups
11. Delayed or weak feedback loops.
12. Serious gaps in Collaboration (within the same location & Across locations)
13. Focus on innovation (or out of box solutions) is poor as teams are engulfed in day to day heavy weight processes.

When enterprises are on the edge of losing their very existence itself, strategists are doing everything necessary to embrace the change. The need of the hour is to come up with a light weight methodology that can help organisations reap below benefits.

1. Decrease Cycle Time
2. Improved Quality
3. Increased Collaboration among the teams

Agile's Birth:

On February 11, 2001, at Utah, USA, 17 subject matter experts (practising Extreme Programming, DSDM, Adaptive Software Development, Crystal, Feature-Driven Development, Pragmatic Programming, and others) convened, and realised that they have below model in common in their respective methodologies.




As they have above model in common, they wanted to come up with common methodology. They wanted to name the methodology. They considered two alternative names: adaptive or agile. Both emphasise flexibility. They came out with the word "Agile" and put all their methodologies in one umbrella



Oxford dictionary defines the word agile as “ability to move quickly and easily”. 
Thus, Agile is our "ability / flexibility " to move quickly and easily so that our methodology becomes light weighted and adaptable to embrace the change. 

Agile Manifesto:

“A Manifesto for Agile Software Development" was emerged and signed by all experts. The term “Agile” came from Martin Fowler. The group was named as "The Agile Alliance". The Agile Manifesto says:

1. "Individuals and Interactions" over "Process and Tools"
2. "Working Software" over "Comprehensive documentation"
3. "Customer collaboration" over "Contract Negotiation"
4. "Responding to Change" over "Following a Plan"

Let us walk through Four values of the agile manifesto in detail:

1."Individuals and Interactions" over "Process and Tools": Individuals are the ultimate source of value. Engage them early in the cycle. Focus team attention on the individuals and interactions. Remember it’s people - Projects are undertaken by people. Problems are better solved by people. Thus give more preference to people as compared to "processes or tools". Please note that "process and tools" are also important. But We give more importance to "Individuals and Interactions" in implementing agile methodologies.

2."Working Software" over "Comprehensive documentation": Delivery is the primary goal of the Team. Working Software to be taken as the basis for Go/No Go Decisions

3. "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 with customers. 


4."Responding to Change" over "Following a Plan": World is so dynamic that people change their priorities very often. Change is a fact and inevitable. Honour changes as and they come. Continuously adapt, inspect, and Improve...

Agile Principles:

No
Principle
Shortened Version
1
Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.

Satisfy Customers with great software
2
Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.

Welcome Change
3
Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.

Deliver Frequently
4
Business people and developers must work together daily during the project.

Work With Business
5
Build projects around motivated individuals.  Give them the environment and support they need, and trust them to get the job done.
Motivate People
6
The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
Face-to-Face Communications
7
Working software is the primary measure of progress
Working software
8
Agile processes promote sustainable development.  Sponsors, developers, and users should be able to maintain a constant pace indefinitely.
Maintain Sustainable Pace
9
Continuous attention to technical excellence and good design enhances agility.
Maintain Design
10
Simplicity -- the art of maximizing the amount of work not done -- is essential.
Keep it simple
11
The best architectures, requirements, and designs emerge from self-organizing teams.
Self-Organizing teams create best architectures
12
At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Reflect and Adjust



Any methodology that is grounded on Agile Manifesto (as Values) and Agile principles, we can call that methodology as "Agile"





Why becoming Agile is worth it?

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 and we can reap below benefits:

1. Using incremental and iterative approach, agile methodologies focus on rapid and frequent deliverables.
2. High Return on Investment
3. Lowered cost of the production.
4. Enhanced ability to manage changing Priorities
5. Increased Productivity
6. Improved project visibility
7. Improved Team Morale
8. Enhanced Software Quality
9. Gives capability to handle the risks effectively early in the cycle.
10. Frequent deliverables to market
11. Better alignment between IT and Business Objectives
12. Improved/increased engineering discipline
13. Enhanced Software maintainability/extensibility
14. Ability to respond to change rapidly with flexibility to change
15. Open communication and collaboration at all levels
16. Long lived self-organized cross functional teams - A leadership philosophy that encourages teamwork, self-organization and accountability.
17. Promotes adaptability through frequent "Inspections and Adaptions"

In essence, becoming Agile is worth it because we can observe below clear gains:

1 Higher productivity and lower costs
2.Improved employee engagement and job satisfaction