Agile is the ability to create and respond to change. It is a way of dealing with, and ultimately succeeding in, an uncertain and turbulent environment.
Agile software development is an approach to software development under which requirements and solutions evolve through the collaborative effort of self-organizing and cross-functional teams and their customers/end uses. It advocates adaptive planning, evolutionary development, early delivery and continual improvement, and it encourages rapid and flexible response to change.
Agile software development is an umbrella term for a set of frameworks and practices based on the values and principles expressed in the Manifesto for Agile Software Development and the 12 Principles behind it.
There’s a significant focus in the Agile software development community on collaboration and the self-organizing team. That doesn’t mean that there aren’t managers. It means that teams have the ability to figure out how they’re going to approach things on their own.
Many systems engineering professionals believe that when you approach software development in a particular manner, such as practicing the 12 principles of the Manifesto for Agile Software Development, it’s generally good to live by these values and principles and use them to help figure out the right things to do given your particular context.
The 12 principles:
- Customer satisfaction by early and continuous delivery of valuable software.
- Welcome changing requirements, even in late development.
- Deliver working software frequently (weeks rather than months)
- Close, daily cooperation between business people and developers
- Projects are built around motivated individuals, who should be trusted
- Face-to-face conversation is the best form of communication (co-location)
- Working software is the primary measure of progress
- Sustainable development, able to maintain a constant pace
- Continuous attention to technical excellence and good design
- Simplicity — the art of maximizing the amount of work not done—is essential
- Best architectures, requirements and designs emerge from self-organizing teams
- Regularly, the team reflects on how to become more effective, and adjusts accordingly.
Want to learn more about Agile Software Development? Tonex offers Agile Software Development Training, a 4-day course that emphasizes the rapid realization of system value through disciplined, iterative and incremental software development techniques, and elimination of wasteful practices.
Or check out our nearly 400 systems engineering courses in more than four dozen categories.
For more information, questions, comments, contact us.