Upload
tyrell-woodby
View
223
Download
2
Embed Size (px)
Citation preview
Agile Software Development
کاری از:مهدی هوشان
استاد راهنما:استاد آدابی
Contents
Advantage & disadvantage
Agile methods
Characteristics
Methodologies
Resources
Agile Manifesto
Methodologies
Software development methodologies
HeavyWieght
lightWeight
Page 1/18
HeavyWeight Methodology
They are based on a sequential series of steps such as1) requirements definition 2) solution building 3) testing 4) deployment
require defining and documenting a stable set of requirements at the beginning of a project.
There are many different heavyweight methodologies like: Waterfall , Spiral Model , Unified Process
Page 2/18
LightWeight Methodology
Recognizes that plans are short-lived
Develops software iteratively with a heavy emphasis on construction activities
Delivers multiple ‘software increments’
Adapts as changes occur
Agile development is one of the lightWeight methodology
Page 3/18
Comparison of Agile and Heavyweight
Page 4/18
Agile Manifesto
In February 2001, 17 software developers met at a ski resort in Snowbird, Utah, to discuss lightweight development methods. They published the "Manifesto for Agile Software Development“
Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan
Page 5/18
Twelve principles underlie the Agile Manifesto, including:
Customer satisfaction by rapid delivery of useful softwareWelcome changing requirements, even late in development.Working software is delivered frequently (weeks rather than months)Working software is the principal measure of progressSustainable development, able to maintain a constant paceClose, daily cooperation between businesspeople and developersFace-to-face conversation is the best form of communication (co-location)Projects are built around motivated individuals, who should be trustedContinuous attention to technical excellence and good designSimplicitySelf-organizing teamsRegular adaptation to changing circumstancesPage
6/18
Characteristics
based on iterative and incremental developmentAgile methods break tasks into small increments with minimal planning, and do not directly involve long-term planningIterations are short time frames (timeboxes) that typically last from one to four weeksEach iteration involves a team working through a full software development cycle including planning, requirements analysis, design, coding, unit testing, and acceptance testingMultiple iterations may be required to release a product or new featuresTeam composition is usually cross-functional and self-organizingTeam size is typically small (5-9 people)At the end of each iteration, stakeholders and the customer representative review progress and re-evaluate priorities with a view to company goals
Page 7/18
Agile methods
Well-known agile software development methods include:
Agile Unified Process (AUP)Dynamic Systems Development Method (DSDM)Essential Unified Process (EssUP)Extreme Programming (XP)Feature DrivenDevelopment (FDD)Open Unified Process (OpenUP)ScrumVelocity tracking
Page 8/18
Extreme Programming (XP)
The idea is for Kent Beck(2000)XP team members spend few minutes on programming, few minutes on project management, few minutes on design, few minutes on feedback, and few minutes on team building many times each day The term ‘extreme’ comes from taking these principles and practices to extreme levelsIt’s base on 5 values:1) Communication 2) Simplicity3) Feedback4) Courage5) Respect
Page 9/18
Extreme Programming (XP)Roles:
•Programmer•Customer•Tester•Tracker•Coach•Consultant•Manager
Page 10/18
Extreme Programming (XP)
Life cycle of XP:
1) Exploration2) Planning3) Iterations To Release4) Productionization5) Maintenance6) Death
Page 11/18
Extreme Programming (XP)
XP terms and practices:
Planning gameSmall releasesMetaphorSimple designRefactoringPair programmingCollective OwnershipContinuous integration40 hour weekOn-site customerCoding standardsTesting
Extreme Programming (XP)
Extreme Programming (XP)
Testing:
1) Unit tests
2) Acceptance tests
XP terms and practices:
Page 14/18
Advantages
stakeholders and the customer representative are in communication with team all the time
All the team is responsible for the quality of the product
Team working and face to face connection raise the quality
Simple plan for the software development
Page 15/18
Disadvantages
Minimum documentation
Based on people(skilled)
It doesn’t have Standard plans for quality evaluation
Lack of learning guidance for using this method
Page 16/18
Resources
http://www.wikipedia.orghttp://www.extremeprogramming.orghttp://www.agilemanifesto.orgA Comparison between Agile and Traditional Software Development Methodologies(M.A.Awad)) ( شریفلو عزیم امیر چابک افزار نرم معماری
Page 17/18
Thank You
Page 18/18