Agile Methodology started in early 2001 by a group of developers who wanted to improve the project management process. This group of developers includes Kent Beck, Ward Cunningham, Dave Thomas, Jeff Sutherlan, Ken Swaber and 12 others, also known as the Agile Alliance. Their mission is to improve the method of managing software projects.
Agile is a mindset, while agile methodology is the set of rules that a team agrees to follow.
In other words, each team will have its own methodology, which will be different for different teams, be it large or small.
Not to be confused with:
- Agile Scrum Methodology
- Lean Software Development
- Extreme Programming (XP)
- Dynamic Systems Development Method (DSDM)
- Feature Driven Development (FDD)
These are different Agile Frameworks as suggested by Alistair Cockburn.
Agile is based on Iterative and Incremental approach and the basic idea of it is to develop in repeated cycles (Iterative) and small parts at a time (Incremental) this in turn results in developers be able to learn and continuously detect any issues that may arise during the development.
The 4 Values of Agile
The set of Values that agile follows according to the Agile Manifesto.
- Individuals and Interactions over processes and tools
- Working Software over comprehensive documentation
- Customer Collaboration over contract negotiation
- Responding to Change over following a plan
The items on the left has more value than the items on the right.
The 12 Principles of Agile
The set of 12 principles based on the 4 Values of Agile Methodology.
- 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.
Checkout the explanation of the Agile Manifesto here
The Agile Software Development team consist of:
- A Project Leader / Senior Developer
- Developers Front End / Back End
- Business Analyst
- QA and Testers
- User / Subject Matter
The ideal team size should be a minimum of 4 and no more than 13 people. How
Characteristics of an Agile Software Development Team
- Leadership is important in Agile Software Development unlike Scrum which is a self-organizing team.
- It encourages collaboration and face-to-face interaction among other teams and enables frequent delivery to the end-users.
- Expects feedback from the end-users during the process.This way the software being developed is even more useful.
- The design and execution of project is kept simple but attention to technical details is always observed.
- The priority is always to satisfy the customers or end-users by providing continuous delivery of valuable features of the software.
- Changes are welcomed even late in the development and working software is the primary measure of progress.
- Ability to adapt to the project effectively by adjusting its behaviour and work with others involved with the project.
Benefits of Agile Methodology
- Enables delivery within short cycles
- Rapid delivery of high-quality software
- Constant inspection of the working product
- Enables testing at every iteration
- Helps identify issues at an early stage
- Allows necessary adjustments whenever a quality issue arise
- Collaborative environment that encourages active users to participate throughout the project development
- Fixed timescale
- Enables fixed budget
- Small incremental releases are visible to the customer throughout the development cycle
The Agile Methodology is a very efficient way for project management given the benefits. Because the frequency of the delivery, the end-users will be able to give feedback to every issue or requirement almost instantly. With a limited budget and time a product can be up and running in no time.
We have these available free tools for you ready to download!
- Training video tools
- Handouts for your students
- Slide Presentations
- Presenter Instructions