SKP's Agile and Scrum Basics: Part 02/02
Time to Revisit the History and the Absolute Basics of Agile and Scrum — Including Scrum Roles, Companies Adopting Agile, Agile Pitfalls, Agile and Scrum Terms from Daily Agile Software Development. Also, It Includes a Brief Description of the Software Craftsmanship Manifesto and Declaration of Interdependence.
Join the DZone community and get the full member experience.Join For Free
I have about ~16y 04m of Software Development Experience (2021) and have been working on Agile Projects since about 2006. My First Formal Introduction to Agile was through a Training by Thoughtworkers (Thoughtworks is a Leading Agile Company). This was while I was a Senior Software Engineer at Huawei, Bangalore, India. I have worked on Agile/TDD/Pair Programming (Various Variants) in multiple companies including Huawei, Symantec, Yahoo, Finastra*, Oracle*, OpenText*. Recently and Once Again, I attended a Formal Classroom Training (Company Internal) on Agile. I jotted down the most important points and now am presenting them in this Blog. I hope it helps and becomes a Ready Reckoner for Understanding/Learning the Agile Basics (Needs, Motivations, Practice, and Story of Evolution).
* [Original Product Firms were Acquired by these Current Companies]
Three Pillars of Scrum that are Fundamental to Scrum Include the Following:
Companies Adopting Agile
- CA Technologies
From my Own Experience, I can comfortably say that almost all companies in the world now use Agile/Scrum (and/or Variants) as one the Software Development Methodology of Choice. Also, Most Software Development Companies (Read Product Software) were always almost Agile, but now may be using the Formal Agile Principles as their Driving Factor to achieve Greater Efficiency. Many Companies use Variants of Agile or Mix of Agile with Other Processes for their Teams. Agile is also not restricted to Software Development — There are Industries and Functions that now use Formal Agile Methods for their Deliverables and Daily Tasks.
Popular Tools for Agile/Scrum
- Rally Agile Platform
- Atlassian JIRA
- (Microsoft) GitHub
- Apache Jenkins
- Zoho Sprints
- Visual Paradigm
- Thoughtworks Slack
- Thoughtworks Mingle
- Microsoft Team Foundation Server
Agile Pitfalls (Reasons for Failure)
[CREDITS: IMAGE IS COPYRIGHTED TO VITALITY CHICAGO]
This article will try and cover the reasons for the failure of Agile Projects — From the above statistics we can easily observe that the Project Success Rate of 42% in Agile is almost 1.6 times that of Waterfall. At the same time, the ratio of Failure or Challenged Projects is 1 : 1.27 (Agile : Waterfall).
[CREDITS: IMAGE IS COPYRIGHTED TO VITALITY CHICAGO]
The Best Candidates for Waterfall are Large to Very Large Projects which have very Static Requirements and with little or no External Factors or Systems impacting them. In such cases, Waterfall has greater chances of yielding Higher Quality Output possibly than Agile.
Next, I am enumerating the reasons for the Failures of Agile Projects, themselves. Since, It is a Highly Dynamic and Adaptive Process, I am always a strong believer that Lack of Highly Skilled Workers as one Top Reason for Failure of Agile Projects. With Agile, the Time in Utilizing Current Skills and Experience is the Most Important Differentiating Factor in Success of a Project. There is a Constant Focus and Pressure of Constant Delivery that the Holistic Skill Gain from Agile has to be through Individualistic Discipline and Practice. The Outcome of Agile in Short Term is again, the creation of Lowly Skilled or Semi-Skilled Workers. The Task of Gaining In-Depth Knowledge or creating Absolute Experts is no longer Automatically Supported. This may Impact the Quality of the Deliverables and Software itself. But then, through Individual Practice, Character and Discipline, the Individual Engineer or Developer may be different at a Skill Levels from others, even at the Same Experience Level. So, I am only enumerating the reasons here for failure, as an In-Depth discussion is beyond the Scope of this Article. You may read these reasons, more in detail at the following link: https://www.agilealliance.org/8-reasons-why-agile-projects-fail/
- Insufficient Training / Low Skill Level.
- Unwillingness of Team to Follow Agile.
- Broader Organizational or Communications Problems.
- Lack of Support for Cultural Transition.
- Pressure to Follow Traditional Waterfall Process.
- Lack of Management Support (Transitioning to Agile).
- Company Philosophy at Odds (Versus Agile).
- Lack of Experience in Agile (Transitioning to Agile).
Agile/Scrum in Real-World (2018)
- Project Kick-Off
- Project Milestones
- Sprint Planning
- Acceptance Criteria
- Story (T-Shirt) Sizing
- Fibonacci Scale
- Sprint Tasks
- Daily Scrum
- User Story
- Technical Story
- Technical Spike
- Research Spike
- Architectural Spike
- Refactoring Spike
- Sprint Demo
- Sprint Review
- Sprint Retrospective
- Project Retrospective
Software Craftsmanship Manifesto (Software Developers / Craftsmen)
That is, in pursuit of the items on the left we have found the items on the right to be indispensable.
Declaration of Interdependence (Project Management)
Deliver Reliable Results by engaging Customers in Frequent Interactions and Shared Ownership.
Expect Uncertainty and manage for it through Iterations, Anticipation, and Adaptation.
Unleash Creativity and Innovation by recognizing that Individuals are the Ultimate Source of Value.
Boost Performance through group accountability for Results and Shared Responsibility for Team Effectiveness.
Improve Effectiveness and Reliability through situationally Specific Strategies, Processes, and Practice.
The above Declaration of Interdependence outlines the Leadership Approaches used to manage the Inter Dependency of People, Processes, and Value to enhance the Performance of Work. The Six Key Areas are:
- Focus on Value.
- Engage Customers.
- Expect Uncertainty.
- Unleash Creativity.
- Group Accountability.
- Improve Effectiveness.
Opinions expressed by DZone contributors are their own.