Agile Software Development
Agile Software Development
Agile Software Development
Introduction
Agility refers to the quality of being agile. Internet software industry and Mobile
and wireless application development industry are looking for a very good approach of
software development. Conventional software development methods have completely
closed the requirements process before analysis and design process. As this approach is
not always feasible and compatible with all other projects. In contrast to the conventional
approaches, Agile methods allow developers to make late changes in the requirement
specification document.
The focus of the Agile software development as given by “Agile Software Development
Manifesto” is presented in the following:
o Indivduals and interactions over processes and tools
o Working software over comprehensive documentation.
o Customer collaboration over contract negotiation
o Responding to change over following a plan
Agile methods
Agile methods are designed to produce the first delivery in weeks, to achieve and early
win and rapid feedback. These methods invent simple answers so that change can be
less. These also improves design issues and quality as they are based on iteratively
incremental method.
1) Extreme programming
2) Scrum
3) Feature driven development
Extreme programming
The life cycle of Extreme programming consists of five phases
a) Exploration
b) planning
c) iteration on releases
d) Productionizing
e) Maintainence
f) Death
Basic principles:
Embracing change: change can come at any time. Model should be ready to take
it.
Rapid feedback: Time between action and feedback is less
Assume simplicity : Initially assuming simplicity of any task and then proceeding
according to the solution
Incremental change
Quality work
SCRUM
The term ‘SCRUM’ originally derives from a strategy in the game of rugby where it
denotes “ getting an out of play ball back into the game” with teamwork.
Scrum concentrates on how the team members should function in order to produce the
system flexibly in a constantly changing environment.
Scrum is extremely simple model ,used by different software companies from long time,
which works with existing engineering practices and is scalable and work with common
sense which is to say it is very easy.
Scrum process includes three phases
Pre-game
Development
Post-game
Pre-game phase includes two sub-phases
Planning and Architechture design
Planning includes the development of the required system. A Backlog list is created,
which contains all the requirements that are known at that moment. In every iteration the
Back log list is updated by scrum team to gain commitment for the next iteration.
Architechture phase : In this phase an abstract view of the model is designed by viewing
Backlog list.
The Development phase: This phase takes care of the different variable like time fram,
quality , requirements, recourses, technologies and tools. The system is developed in
Sprints. Sprints are the iterative cycles where functionality is developed or enhanced to
produce new increments.
Each Sprint includes the traditional phases of software engineering
1) Requirements
2) Analysis
3) Design
4) Evolution and delivery
The Post-game phase close to release.
Roles in Scrum
SCRUM master
Product owner
Scrum Team
Customer
User
Management
Practices
Product Backlog defines that is needed in the final product based on current know-how.
Effort estimation is the iterative process which is concentrated on Backlog list
Sprint: It is the procedure of adapting to the changing environmental variables.
Conclusions
As we came to know that traditional software development approaches are more
mechanistic which concentrate more on Processes, tools, contracts and plans. In contrast
to traditional methods, agile methods keep emphasis on interaction, working software,
embracing change at any moment of the project, customer relationships.
The method can be agile if it is:
Incremental
Cooperative
Straightforward
Adaptive
“Agile view is more people centric rather than plan-centric.” Agile methods are not
defined by a small set of principles, practices and techniques. It creates a strategic
capability which has capability of responding to change, capability to balance the
structure and flexibility, capability of innovation and creations through development team
and uncertainty.