Professional Documents
Culture Documents
Agile Devlopment - Software Engineering
Agile Devlopment - Software Engineering
CHAPTER NO 3
AGILE DEVELOPMENT
WHAT IS AGILE?
Agile software development refers to a group of software development methodologies
based on iterative development, where requirements and solutions evolve through
collaboration between self-organizing teams.
• The aim of agile process is to deliver the working model of software quickly to the
customer .
• For example: Extreme programming is the best known of agile process.
The XP Process
The XP process comprises of five framework activities:
PREPARED BY:
HABIBA SHOAIB
3
1. Planning
Planning starts with the requirements gathering which enables XP
team to understand the rules for the software.
2. Managing
3. Designing
Start with the simplest design because it will take less time to complete
than the complex solution.
Don’t add functionality early.
Refactor often to keep your code clean and concise.
PREPARED BY:
HABIBA SHOAIB
4
4. Coding
Then the time finally comes to implement code.
XP practices collective code ownership:
Everyone reviews code and any developer can add functionality, fix bugs,
or refactor.
For collective code ownership to work, the team should:
• Choose a system metaphor (standardized naming scheme).
• Practice pair programming. Team members work in pairs, at a single
computer, to create code and send it into production. Only one pair
integrates code at a time.
• Integrate and commit code into the every few hours.
The customer should be available on site, during this entire process so
they can answer questions and establish requirements.
5. Testing
The team performs unit tests and fixes bugs before the code can be
released. They also run acceptance tests frequently.
PREPARED BY:
HABIBA SHOAIB
5
Speculate:
• Speculate replaces the word planning, planning of product specifications or planning
of project management tasks.
• Speculation consists of Project initiation.
• During this phase, coders attempt to understand the exact nature
of the software and the requirements of the users.
• This phase relies on bug and user reports to guide the project.
Collaborate:
• Collaborate would require the ability to work jointly to produce results,
share knowledge or make decisions.
• This phase consists of Concurrent component engineering.
• Effective collaboration with customer is very important.
• Communication, teamwork, individual creativity is part of effective
collaboration.
Learn:
Learn aims both with the developers and the customers to use the results of each development
cycle to learn the direction of the next.
As it is easier to learn from the small rather than large mistakes, the iterations are to be short.
PREPARED BY:
HABIBA SHOAIB
6
PREPARED BY:
HABIBA SHOAIB
7
Scrum
Proposed by SCHWABER & BEEDLE.
Scrum is one of the most popular frameworks for implementing agile.
So popular, in fact, that many people think scrum and agile are the same
thing. (They're not.)
scrum has a unique flavor because of the short iterations of work.
It is designed for teams of three to nine members, who completed their work
within timeboxed iterations, called "sprints", no longer than one month and
most commonly two weeks,
then re-plan in 15-minute stand-up meetings, called daily scrums
Scrum is:
• Lightweight
• Simple to understand
• Difficult to master
PREPARED BY:
HABIBA SHOAIB
8
Crystal
Crystal focuses on six primary aspects: people, interaction, community, communication, skills,
and talents.
The methods are very flexible and avoid rigid processes because of its people-centric focus.
Alistair Cockburn is also one of the original signatories of the Agile Manifesto.
Feature-driven development
PREPARED BY:
HABIBA SHOAIB
9
Agile modeling
CORE PRINCIPLES
• Model With A Purpose.
• Maximize Stakeholder
• Travel Light.
• Use Multiple Models.
• Rapid Feedback.
• Assume Simplicity.
• Embrace Change.
• Incremental Change.
• Quality Work.
• Working Software Is Your Primary Goal.
• Enabling The Next Effort Is Your Secondary Goal.
PREPARED BY:
HABIBA SHOAIB