Table of contents
No headings in the article.
Agile is an iterative approach to software development that emphasizes flexibility, interactivity, and transparency using small, cross-functional teams
The Agile Manifesto describes the core values of Agile:
▪︎ Individuals interactions over processes and tool.
▪︎ working software over comprehensive documentation.
▪︎ Customer collaboration over negotiations.
▪︎ Responding to change over following plan.
The waterfall approach is a structured, step-by-step process that can lead to problems not surfaced until later in development
Extreme Programming (XP) advocated an iterative approach that valued simplicity, communication, feedback, respect, and courage
A Kanban system is characterized by visualizing workflow, limiting work in progress, managing and enhancing flow, making process policies explicit, and continuously improving a process
Working in small batches means delivering something useful quickly
An MVP is the cheapest/easiest thing you can do to test a hypothesis and learn
Behavior Driven Development makes sure you are building the right thing
Test Driven Development makes sure you are building the thing right
Pair programming enables you to discover defects earlier and increase your code quality
The Gherkin syntax, which comes from a company called Cucumber, is a single syntax that developers and stakeholders can understand: given some set of preconditions, when an event occurs, then some outcome is observed.
Agile Methodology
Scrum is a methodology that follows the Agile philosophy.
The Scrum management framework:
▪︎ Provides structures through defined role,meeting, rules and artifacts.
▪︎ Prescribes, small cross-functional,self-organizing teams.
▪︎ Uses fixed length iterations called sprints.
▪︎ Produces a potentially shippable product increment with every iteration .
The product owner represents stakeholders, articulates the product vision, and decides priorities, requirements, and readiness to ship
The scrum master coaches the team, promotes a cooperative environment, shields the team from interference, and unblocks impediments
The scrum team is small, dedicated, co-located, cross-functional, and self-managing
The scrum team negotiates commitments with the product owner — one sprint at a time
The scrum team has autonomy regarding how to reach commitments
Scrum produces a product backlog, a sprint backlog, and a completed — or done — increment
The Scrum events are sprint planning, daily Scrum meetings, sprints, sprint reviews, and sprint retrospectives.
If done well,scrum can :
Increase employee productivity and happiness
Improve product quality
Reduce time to market
Enhance stakeholder satisfaction.
How you are organized can affect the systems that you build.
Giving teams autonomy leads to motivated teams who can execute faster and build better systems
Not adopting Agile across your organization can lead to operational bottlenecks
Many companies adhere to their waterfall planning and call it Agile
Simply doing iterative development is not Agile unless you are being responsive to changes and delivering value often.