Agile software development is basically a set of practices and philosophy of software development under which product requirements and IT solutions evolve through the collaborative work of self-organizing and cross-functional teams and involvement of their stakeholders and end users. Agile philosophy has similarities to lean manufacturing principles for “eliminating waste”.
You can find the main Agile Manifesto website here: agilemanifesto.org.
On Feb. 11-13, 2001, at The Lodge at Snowbird ski resort, seventeen IT professionals met to try to find common ground in Software Development. What emerged was the Agile ‘Software Development’ Manifesto. Representatives from 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.
After 2001 the manifesto was translated into several languages and signed by thousands of people from around the world.
Here are the main 4 points of the Manifesto:
We are uncovering better ways of developing
software by doing it and helping others do it.
Through this work we have come to value:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
That is, while there is value in the items on
the right, we value the items on the left more.
11 Agile Principles
As an extension to Agile Manifesto there were developed 11 Agile 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 behavior accordingly.
Agile basics for Founders
If you are a founder of the Lean Startup, then this is a must see video from one of the greatest Agile Coaches Henrik Kniberg.