Agile Software Development کاری از : مهدی هوشان استاد راهنما : استاد...

Preview:

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

Recommended