Agile Methodology is an iterative approach to development. It can be used in any development project but we will be focusing on how it is being used in software development.
No rigorous planning at the start: The teams who participate using Agile approach does not do rigorous and complete top to bottom project planning at the start. Instead they define goals, and try to create some stories which directly can be mapped to a development work by the implementation team.
Backlogs: Each sub-team within a team can start work on individual items which are all organised in a system called backlog. Backlog contains all these items and in each iteration each sub-team can pick any item that they are assigned to. Assignments and monitoring constantly goes only using a Sprint mechanism. For now just assume the backlog contains all the subtasks. Remember these subtasks can further be broken down as sometimes the backlog keeps changing no matter at what stage of development the software is.
Prioritisation: Each item in the backlog is first prioritised. It can used multiple facets to do so e.g. customer value, team ability, business value, technology limitations, team availability, etc.
Team work: Agile methodology revolves around team work and for each iteration the focus of the team is always to produce a tangible, and working product. The contributions from the team members should be in collaborative fashion e.g. there should be focus on meetings, discussing what is on the backlog, what is in the sprint, or what problems they have faced in the last iteration etc. Cross-functional teams are encouraged to work together not only in terms of email but in meetings. Sometimes some cross functional teams can’t understand what other team is saying but then it becomes challenging to describe the problem and opportunities in layman terms, which is beneficial for all to understand it. This is another great power of Agile.
Generic Principles from Agile Manifesto: There are 12 principles of Agile methodology which are defined by the Agile Manifesto given at http://agilemanifesto.org/principles.html
Let me Quote them here from their website:
- 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.
If you would like to contribute on Infoginx, feel free to reach out at firstname.lastname@example.org.