Agile Development Basics
Agile is a new methodology of managing IT development teams and projects. It is not only suitable to the software developers but also to anybody who is associated with software deliverance; like project managers, testers, QA managers, technical writers etc.
Advantages of using Agile
The IT companies have followed Royce’s Waterfall Model for the development of large software systems for a long time. This system gives slow yet huge outcome but unfortunately success rate and instances are much low on the whole. On the other hand, using Agile Development Methodology gives the advantage to organizations to achieve quick iterative releases.
Besides, the software development team is able to release value faster by getting important features in early releases.
Also, Agile Development Methodology allows more flexible approach hence, when the requirements turn out to be wrong or misanalysed, they are able to change their direction quickly and easily.
Founded in 2001, Agile was formulated based on four important manifestos that are relevant even to this day
Individual and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
These are the principles that set Agile apart from any other traditional managing approach.
Active user involvement is of the prime importance
The team must be given power to be able to take decisions
Business people and developers must work daily throughout the project
Meet and convey information within the team- it is the most effective and efficient way
Develop small, incremental releases and iterate
Focus on frequent delivery of products
Complete each feature before moving on to next
Test early and often- integrate it throughout the project cycle
Continuous attention to technical excellence and good design
Collaborate and cooperate with all stakeholders
Some Agile Development Methodologies
Agile is not a methodology in itself. It is rather a broader head under which various different methodologies are collectively called as Agile. Some of them are:
DSDM (Dynamic Software Development Method) is older than the term ‘Agile’ itself. It is a method wholly true of all the Agile principles. Its main features are:
Iterative and incremental development
Increased delivery frequency
Integrated tests at each phase
Acceptance of delivered products depending directly on fulfilling requirements
Scrum is the most popular and widely used Agile methodology. It mainly focuses on managing tasks of a team based development environment. It is simple to implement and addresses most of the problems generally faced by IT development teams.
FDD is a methodology that applies methods to manage projects at very high level; its focus primarily being on setting estimates, scheduling and reporting on the status of a project.
XP (Extreme Programming) goes to the root of the problem and addresses the analysis, development and test phases of a software development process. It employs innovative approaches which results in remarkable end products.
Lean Thinking is a way of system optimization. It primarily focuses on the following
Optimize the whole