SlideShare a Scribd company logo
1 of 89
Download to read offline
Chapter 2 – Agile Software
Development
Topics
 Agile methods
 Agile development techniques
 Agile project management
Rapid software development
 Rapid development and delivery is now often the most
important requirement for software systems
 Businesses operate in a fast –changing requirement and it is
practically impossible to produce a set of stable software
requirements
 Software has to evolve quickly to reflect changing business
needs.
 Plan-driven development is essential for some types of
system but does not meet these business needs.
 Agile development methods emerged in the late 1990s
whose aim was to radically reduce the delivery time for
working software systems
Agile development
 Program specification, design and implementation are inter-
leaved
 The system is developed as a series of versions or increments
with stakeholders involved in version specification and
evaluation
 Frequent delivery of new versions for evaluation
 Extensive tool support (e.g. automated testing tools) used to
support development.
 Minimal documentation – focus on working code
Plan-driven and agile development
Plan-driven and agile development
 Plan-driven development
 A plan-driven approach to software engineering is based around
separate development stages with the outputs to be produced at
each of these stages planned in advance.
 Not necessarily waterfall model – plan-driven, incremental
development is possible
 Iteration occurs within activities.
 Agile development
 Specification, design, implementation and testing are inter-
leaved and the outputs from the development process are
decided through a process of negotiation during the software
development process.
Agile Methods
Agile methods
 Dissatisfaction with the overheads involved in software design
methods of the 1980s and 1990s led to the creation of agile
methods.These methods:
 Focus on the code rather than the design
 Are based on an iterative approach to software development
 Are intended to deliver working software quickly and evolve this quickly to
meet changing requirements.
 The aim of agile methods is to reduce overheads in the software
process (e.g. by limiting documentation) and to be able to respond
quickly to changing requirements without excessive rework.
Agile manifesto
 We are uncovering better ways of developing software by doing it and
helping others do it.Through this work we have come to value:
 Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
 That is,while there is value in the items on the right,we value the
items on the left more
Values of Agile Software Development
1. Value Individual and Interactions over Process and Tools: In the software
development industry there will be people who will be providing requirements i.e.,
business, as well as people who will be working on the specifications, i.e., software
developers and that’s the reason why the communication between the business and the
development team matters a lot. To get a clear idea on what is needed and what are the
exact requirements, proper communication between business and developers is required,
and hence we should value people, their requirements more than processes, and
tools because if the requirement is not clear, we can’t create what the customer wants us
to create.
1. Deliver working software over comprehensive documentation: Agile does not
support eliminating documentation but limits it to only required documents.
The primary reason to do that was, much documentation like requirements, specifications,
prospectus, design documents, test plans, approvals and a lot more, used to cause a delay
in the delivery. In agile instead of all these documentations, we create “User Stories,”
which is sufficient for a developer to begin a task. “User stories” are nothing but the to-do
list given by the client as per its priority. In Agile, our primary focus will be on delivering
working features in their respective periods rather than creating huge documents on the
client’s requirement.
Values of agile software development
3. Collaborating with the customer over Contract Negotiation: Usually, in any
process, the customer interacts with the development team to negotiate in detail on
requirements, timelines but that is before the work starts. Once the job is done, they
usually interact for feedback and inputs. In Agile – the customer is engaged and
collaborates throughout the process as we deliver value to them every week (every period)
and hence it makes it easier for the development team to meet the customer’s needs.
Delivering values to the customer every week helps the developer to understand the
customer’s requirements in detail, and eventually, this helps in delivering the project in
time.
4. Responding to and implementing changes over following a plan: Changes
are considered an expense in most of the traditional methods as a lot of rework is needed
because feedback is given after complete project delivery. In Agile – priorities can be
shifted from iteration to iteration, i.e., periodically, and new features/changes can be
included in the next possible iteration. Moreover, according to Agile, the change is not an
expense; it adds value to the project.
Agile method applicability
 Product development where a software company is
developing a small or medium-sized product for sale.
 Virtually all software products and apps are now developed
using an agile approach
 Custom system development within an organization, where
there is a clear commitment from the customer to become
involved in the development process and where there are few
external rules and regulations that affect the software
Agile DevelopmentTechnique
Extreme programming
 A very influential agile method, developed in the late
1990s, that introduced a range of agile development
techniques.
 Extreme Programming (XP) takes an ‘extreme’ approach
to iterative development.
 New versions may be built several times per day;
 Increments are delivered to customers every 2 weeks;
 All tests must be run for every build and the build is
only accepted if tests run successfully.
Extreme programming practices (a)
Principle or practice Description
Incremental planning Requirements are recorded on story cards and the stories to be included in a
release are determined by the time available and their relative priority. The
developers break these stories into development ‘Tasks’. See Figures 3.5 and
3.6.
Small releases The minimal useful set of functionality that provides business value is
developed first. Releases of the system are frequent and incrementally add
functionality to the first release.
Simple design Enough design is carried out to meet the current requirements and no more.
Test-first development An automated unit test framework is used to write tests for a new piece of
functionality before that functionality itself is implemented.
Refactoring All developers are expected to refactor the code continuously as soon as
possible code improvements are found. This keeps the code simple and
maintainable.
Extreme programming practices
Pair programming Developers work in pairs, checking each other’s work and
providing the support to always do a good job.
Collective ownership The pairs of developers work on all areas of the system, so that no islands of
expertise develop and all the developers take responsibility for all of the code.
Anyone can change anything.
Continuous integration As soon as the work on a task is complete, it is integrated into the whole
system.After any such integration, all the unit tests in the system must pass.
Sustainable pace Large amounts of overtime are not considered acceptable as the net effect is
often to reduce code quality and medium term productivity
On-site customer A representative of the end-user of the system (the customer) should be
available full time for the use of the XP team. In an extreme programming
process, the customer is a member of the development team and is responsible
for bringing system requirements to the team for implementation.
Extreme Programming Life Cycle
XP planning
 Begins with the listening, leads to creation of “user stories” that describes
required output, features, and functionality. Customer assigns a value(i.e., a
priority) to each story.
 Agile team assesses each story and assigns a cost (development weeks. If more than
3 weeks, customer asked to split into smaller stories)
 Working together, stories are grouped for a deliverable increment next release.
 A commitment (stories to be included, delivery date and other project matters)is
made.Three ways: 1. Either all stories will be implemented in a few weeks,2. high
priority stories first, or 3. the riskiest stories will be implemented first.
 After the first increment “project velocity”, namely number of stories
 implemented during the first release is used to help define subsequent delivery
dates for other increments. Customers can add stories, delete existing stories,
change values of an existing story, split stories as development work proceeds.
XP design
 XP Design occurs both before and after coding as refactoring is
encouraged
 Follows the KIS principle (keep it simple) Nothing more nothing less than the
story.
 Encourage the use of CRC (class-responsibility-collaborator) cards in an object-
oriented context.They only design for work product of XP.They identify and
organize the classes that are relevant to the current software increment.
 For difficult design problems, suggests the creation of “spike solutions”—a
design prototype for that portion is implemented and evaluated.
 Encourages “refactoring”—an iterative refinement of the internal program
design. Does not alter the external behavior yet improve the internal structure.
Minimize chances of bugs. More efficient, easy to read.
XP Coding
 Recommends the construction of a unit test for a story
before coding commences. So implementer can focus on
what must be implemented to pass the test.
 Encourages “pair programming”.Two people work together
at one workstation. Real time problem solving, real time
review for quality assurance.Take slightly different roles.
XP Testing
 All unit tests are executed daily and ideally should be automated.
Regression tests are conducted to test current and previous
components.
 “Acceptance tests” are defined by the customer and executed to
assess customer visible functionality
 To avoid some of the problems of testing and system validation,
XP emphasizes the importance of program testing. XP includes an
approach to testing that reduces the chances of introducing
undiscovered errors into the current version of the system.

XP and agile principles
 Incremental development is supported through small, frequent
system releases.
 Customer involvement means full-time customer engagement
with the team.
 People not process through pair programming, collective
ownership and a process that avoids long working hours.
 Change supported through regular system releases.
 Maintaining simplicity through constant refactoring of code.
Chapter 3Agile Software Development
22 30/10/2014
Influential XP practices
 Extreme programming has a technical focus and is not easy
to integrate with management practice in most organizations.
 Consequently, while agile development uses practices from
XP, the method as originally defined is not widely used.
 Key practices
 User stories for specification
 Refactoring
 Test-first development
 Pair programming
Chapter 3Agile Software Development
23 30/10/2014
User stories for requirements
 In XP, a customer or user is part of the XP team and is
responsible for making decisions on requirements.
 User requirements are expressed as user stories or
scenarios.
 These are written on cards and the development team break
them down into implementation tasks.These tasks are the
basis of schedule and cost estimates.
 The customer chooses the stories for inclusion in the next
release based on their priorities and the schedule estimates.
Chapter 3Agile Software Development
24 30/10/2014
A ‘prescribing medication’ story
Chapter 3Agile Software Development
25 30/10/2014
Examples of task cards for prescribing
medication
Chapter 3Agile Software Development
26 30/10/2014
Refactoring
 Conventional wisdom in software engineering is to design for
change. It is worth spending time and effort anticipating
changes as this reduces costs later in the life cycle.
 XP, however, maintains that this is not worthwhile as changes
cannot be reliably anticipated.
 Rather, it proposes constant code improvement (refactoring)
to make changes easier when they have to be implemented.
Chapter 3Agile Software Development
27 30/10/2014
Refactoring
 Programming team look for possible software improvements
and make these improvements even where there is no
immediate need for them.
 This improves the understandability of the software and so
reduces the need for documentation.
 Changes are easier to make because the code is well-
structured and clear.
 However, some changes requires architecture refactoring and
this is much more expensive.
Chapter 3Agile Software Development
28 30/10/2014
Examples of refactoring
 Re-organization of a class hierarchy to remove duplicate
code.
 Tidying up and renaming attributes and methods to make
them easier to understand.
 The replacement of inline code with calls to methods that
have been included in a program library.
Chapter 3Agile Software Development
29 30/10/2014
Test-first development
 Testing is central to XP and XP has developed an approach
where the program is tested after every change has been
made.
 XP testing features:
 Test-first development.
 Incremental test development from scenarios.
 User involvement in test development and validation.
 Automated test harnesses are used to run all component tests
each time that a new release is built.
Chapter 3Agile Software Development
30 30/10/2014
Test-driven development( TDD)
 Writing tests before code clarifies the requirements to be
implemented.
 Tests are written as programs rather than data so that they
can be executed automatically.The test includes a check that
it has executed correctly.
 Usually relies on a testing framework such as Junit.
 All previous and new tests are run automatically when new
functionality is added, thus checking that the new
functionality has not introduced errors.
Chapter 3Agile Software Development
31 30/10/2014
Customer involvement
 The role of the customer in the testing process is to help
develop acceptance tests for the stories that are to be
implemented in the next release of the system.
 The customer who is part of the team writes tests as
development proceeds.All new code is therefore validated to
ensure that it is what the customer needs.
 However, people adopting the customer role have limited
time available and so cannot work full-time with the
development team.They may feel that providing the
requirements was enough of a contribution and so may be
reluctant to get involved in the testing process.
Chapter 3Agile Software Development
32 30/10/2014
Test case description for dose checking
Chapter 3Agile Software Development
33 30/10/2014
Test automation
 Test automation means that tests are written as executable
components before the task is implemented
 These testing components should be stand-alone, should
simulate the submission of input to be tested and should check
that the result meets the output specification.An automated test
framework (e.g. Junit) is a system that makes it easy to write
executable tests and submit a set of tests for execution.
 As testing is automated, there is always a set of tests that can
be quickly and easily executed
 Whenever any functionality is added to the system, the tests can
be run and problems that the new code has introduced can be
caught immediately.
Chapter 3Agile Software Development
34 30/10/2014
Problems with test-first development
 Programmers prefer programming to testing and sometimes
they take short cuts when writing tests. For example, they
may write incomplete tests that do not check for all possible
exceptions that may occur.
 Some tests can be very difficult to write incrementally. For
example, in a complex user interface, it is often difficult to
write unit tests for the code that implements the‘display
logic’ and workflow between screens.
 It difficult to judge the completeness of a set of tests.
Although you may have a lot of system tests, your test set
may not provide complete coverage.
Chapter 3Agile Software Development
35 30/10/2014
Test-first development
 Testing is central to XP and XP has developed an approach
where the program is tested after every change has been
made.
 XP testing features:
 Test-driven development(TDD).
 Incremental test development from scenarios.
 User involvement in test development and validation.
 Automated test harnesses are used to run all component tests
each time that a new release is built.
Chapter 3Agile Software Development
36 30/10/2014
Test-driven development
 Writing tests before code clarifies the requirements to be
implemented.
 Tests are written as programs rather than data so that they
can be executed automatically.The test includes a check that
it has executed correctly.
 Usually relies on a testing framework such as Junit.
 All previous and new tests are run automatically when new
functionality is added, thus checking that the new
functionality has not introduced errors.Thus performs
incremental test development from scenarios
Chapter 3Agile Software Development
37 30/10/2014
Test case description for dose checking
Chapter 3Agile Software Development
38 30/10/2014
Test automation
 Test automation means that tests are written as executable
components before the task is implemented
 These testing components should be stand-alone, should
simulate the submission of input to be tested and should check
that the result meets the output specification.An automated test
framework (e.g. Junit) is a system that makes it easy to write
executable tests and submit a set of tests for execution.
 As testing is automated, there is always a set of tests that can
be quickly and easily executed
 Whenever any functionality is added to the system, the tests can
be run and problems that the new code has introduced can be
caught immediately.
Chapter 3Agile Software Development
39 30/10/2014
Problems with test-first development
 Programmers prefer programming to testing and sometimes
they take short cuts when writing tests. For example, they
may write incomplete tests that do not check for all possible
exceptions that may occur.
 Some tests can be very difficult to write incrementally. For
example, in a complex user interface, it is often difficult to
write unit tests for the code that implements the‘display
logic’ and workflow between screens.
 It difficult to judge the completeness of a set of tests.
Although you may have a lot of system tests, your test set
may not provide complete coverage.
Chapter 3Agile Software Development
40 30/10/2014
User /Customer involvement
 The role of the customer in the testing process is to help
develop acceptance tests for the stories that are to be
implemented in the next release of the system.
 The customer who is part of the team writes tests as
development proceeds.All new code is therefore validated to
ensure that it is what the customer needs.
 However, people adopting the customer role have limited
time available and so cannot work full-time with the
development team.They may feel that providing the
requirements was enough of a contribution and so may be
reluctant to get involved in the testing process.
Chapter 3Agile Software Development
41 30/10/2014
Pair programming
 Pair programming involves programmers working in pairs,
developing code together.
 This helps develop common ownership of code and spreads
knowledge across the team.
 It serves as an informal review process as each line of code is
looked at by more than 1 person.
 It encourages refactoring as the whole team can benefit from
improving the system code.
Chapter 3Agile Software Development
42 30/10/2014
Pair Programming
http://www.pairprogramming.com/
With pair-programming:
•Two software engineers work on one task at one computer
•One engineer, the driver, has control of the keyboard and mouse and
creates the implementation
•The other engineer, the navigator, watches the driver’s implementation to
identify defects and participates in on-demand brainstorming
•The roles of driver and observer are periodically rotated between the two
software engineers
Pair-programming has been
popularized by the eXtreme
Programming (XP) methodology
Pair programming
 In pair programming, programmers sit together at the same
computer to develop the software.
 Pairs are created dynamically so that all team members work
with each other during the development process.
 The sharing of knowledge that happens during pair
programming is very important as it reduces the overall risks
to a project when team members leave.
 Pair programming is not necessarily inefficient and there is
some evidence that suggests that a pair working together is
more efficient than 2 programmers working separately.
Chapter 3Agile Software Development
44 30/10/2014
Agile project management
Chapter 3Agile Software Development
45 30/10/2014
Agile project management
 The principal responsibility of software project managers is
to manage the project so that the software is delivered on
time and within the planned budget for the project.
 The standard approach to project management is plan-
driven. Managers draw up a plan for the project showing
what should be delivered, when it should be delivered and
who will work on the development of the project
deliverables.
 Agile project management requires a different approach,
which is adapted to incremental development and the
practices used in agile methods.
Chapter 3Agile Software Development
46 30/10/2014
Scrum
 Scrum is an agile method that focuses on managing iterative
development rather than specific agile practices.
 There are three phases in Scrum.
 The initial phase is an outline planning phase where you
establish the general objectives for the project and design the
software architecture.
 This is followed by a series of sprint cycles, where each cycle
develops an increment of the system.
 The project closure phase wraps up the project, completes
required documentation such as system help frames and user
manuals and assesses the lessons learned from the project.

Chapter 3Agile Software Development
47 30/10/2014
The Scrum Process
Scrum terminology (a)
Scrum term Definition
Development team A self-organizing group of software developers, which should be no more than
7 people. They are responsible for developing the software and other
essential project documents.
Potentially shippable
product increment
The software increment that is delivered from a sprint. The idea is that this
should be ‘potentially shippable’ which means that it is in a finished state and
no further work, such as testing, is needed to incorporate it into the final
product. In practice, this is not always achievable.
Product backlog This is a list of ‘to do’ items which the Scrum team must tackle. They may be
feature definitions for the software, software requirements, user stories or
descriptions of supplementary tasks that are needed, such as architecture
definition or user documentation.
Product owner An individual (or possibly a small group) whose job is to identify product
features or requirements, prioritize these for development and continuously
review the product backlog to ensure that the project continues to meet critical
business needs. The Product Owner can be a customer but might also be a
product manager in a software company or other stakeholder representative.
Chapter 3Agile Software Development
49 30/10/2014
Scrum terminology (b)
Scrum term Definition
Scrum A daily meeting of the Scrum team that reviews progress and prioritizes
work to be done that day. Ideally, this should be a short face-to-face
meeting that includes the whole team.
ScrumMaster The ScrumMaster is responsible for ensuring that the Scrum process is
followed and guides the team in the effective use of Scrum. He or she is
responsible for interfacing with the rest of the company and for ensuring
that the Scrum team is not diverted by outside interference. The Scrum
developers are adamant that the ScrumMaster should not be thought of
as a project manager. Others, however, may not always find it easy to
see the difference.
Sprint A development iteration. Sprints are usually 2-4 weeks long.
Velocity An estimate of how much product backlog effort that a team can cover in
a single sprint. Understanding a team’s velocity helps them estimate
what can be covered in a sprint and provides a basis for measuring
improving performance.
Chapter 3Agile Software Development
50 30/10/2014
Scrum life cycle
Coming up: Others
52
Scrum
Scrum
There are three phases in Scrum.
– The initial phase is an outline planning phase
where you establish the general objectives for the
project and design the software architecture.
– This is followed by a series of sprint cycles, where
each cycle develops an increment of the system.
– The project closure phase wraps up the project,
completes required documentation such as
system help frames and user manuals and
assesses the lessons learned from the project
Scrum sprint cycle
Chapter 3 Agile Software Development 54
30/10/2014
Problem statement
❖ In traditional methodology Some vital changes are being made in
project and feel difficulty, and during an application in the testing
Stage, it is very difficult to go back and do some eminent changes.
One may Go to come across large projects with expensive cost.
❖ Customer not involvement during any phase.
❖ Change mind for changing requirement in srs is so difficult
❖ After project execution Customer satisfaction is less than
expected.
❖ Tradition methodology Continuous planning for project is the
biggest problem.
Goal
❖ All problems occurring during traditional methodology phases are fixed
using Case study on (shopping cart) project with agile scrum methodology.
Life cycle of case Study contains
following steps
• Product Backlog.
• Sprint Planning Meeting.
• Sprint Backlog.
• Daily Scrum.
• Results.
• Sprint Review Meeting.
• Release Burn chart.
Product Backlog
❖ The Product Backlog is the master list of all functionality desired
in the product. When using Scrum, it is not necessary to start a
project with a lengthy, upfront effort to document all
requirements.
Sprint Planning meeting
• The Sprint Planning Meeting is attended by the Product
Owner, the entire Scrum Team.
• During the sprint planning meeting the Product Owner
describes the highest priority features to the team.
• The Product Owner doesn't have to describe every item
being tracked on the Product Backlog.
Sprint backlog of First Iteration
Layout of website
Daily Scrum
❖ Team members involve in this meeting on the following
seniors.
❖ Time:
• 20-minutes
❖ Three questions:
• What did you do yesterday
• What will you do today?
• What obstacles are in your way?
Menus on Layout
Links on Menus Layout
Display products on main page
Customer account form
Test case Iteration one
Results of First two weeks Iteration
Sprint Review Meeting
 Team presents what it accomplished during
the sprint
 Typically takes the form of a demo of new
features or underlying architecture
 Informal
 2-hour prep time rule
 Participants
 Customers
 Management
 Product Owner
 Other engineers
Sprint Review Meeting
 Team presents what it accomplished during
the sprint
 Typically takes the form of a demo of new
features or underlying architecture
 Informal
 2-hour prep time rule
 Participants
 Customers
 Management
 Product Owner
 Other engineers
Sprint backlog of second
iteration
Cart implement
Customer Account Form
Customer filled the form
Customer Login
Test Case 2
Final receipt in pdf
Test case 3
Results of iteration three
Four iteration of sprint backlog
Admin Login Form
Admin panel with menus
Payment panel
Test case 4
Results of four iteration
Customer satisfaction graph
RELEASE BURNDOWN
❖ On a Scrum project, the team tracks its progress against a release
plan by updating a release burn down chart at the end of each
sprint. The horizontal axis of the release burn down chart shows
the sprints months; the vertical axis shows the amount of work
complete.
Scrum benefits
• The product is broken down into a set of
manageable and understandable chunks.
• Unstable requirements do not hold up progress.
• The whole team have visibility of everything and
consequently team communication is improved.
• Customers see on-time delivery of increments
and gain feedback on how the product works.
• Trust between customers and developers is
established and a positive culture is created in
which everyone expects the project to succeed.
Chapter 3 Agile Software Development 88
30/10/2014
 ThankYou

More Related Content

Similar to ch2-Agile-Software-Development-engineerning.pdf

Upstate CSCI 540 Agile Development
Upstate CSCI 540 Agile DevelopmentUpstate CSCI 540 Agile Development
Upstate CSCI 540 Agile DevelopmentDanWooster1
 
Agile software development
Agile software developmentAgile software development
Agile software developmentpradeeppatelpmp
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software EngineeringSaqib Raza
 
SE-Lecture 4 - Agile Software Development.pptx
SE-Lecture 4 - Agile Software Development.pptxSE-Lecture 4 - Agile Software Development.pptx
SE-Lecture 4 - Agile Software Development.pptxTangZhiSiang
 
Chapter 3 software engineering.pptx
Chapter 3 software engineering.pptxChapter 3 software engineering.pptx
Chapter 3 software engineering.pptx02LabiqaIslam
 
Agile intro resources
Agile intro resourcesAgile intro resources
Agile intro resourcesAnwar Sadat
 
Agile Project Management for IT Projects
Agile Project Management for IT ProjectsAgile Project Management for IT Projects
Agile Project Management for IT Projectsrachna_nainani
 
International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)ijceronline
 
Agile Method - Lec 1-2-3
Agile Method - Lec 1-2-3Agile Method - Lec 1-2-3
Agile Method - Lec 1-2-3Ahmed Alageed
 
Week_03-Agile Developmnet.ppt
Week_03-Agile Developmnet.pptWeek_03-Agile Developmnet.ppt
Week_03-Agile Developmnet.pptRedHeart11
 
ch3-150102101842-conversion-gate02.pdf
ch3-150102101842-conversion-gate02.pdfch3-150102101842-conversion-gate02.pdf
ch3-150102101842-conversion-gate02.pdfabdallhelkahlout1
 
LU 3 Agile SW Dev.pptx
LU 3 Agile SW Dev.pptxLU 3 Agile SW Dev.pptx
LU 3 Agile SW Dev.pptxTAISEEREISA
 

Similar to ch2-Agile-Software-Development-engineerning.pdf (20)

Upstate CSCI 540 Agile Development
Upstate CSCI 540 Agile DevelopmentUpstate CSCI 540 Agile Development
Upstate CSCI 540 Agile Development
 
SE chapter 4
SE chapter 4SE chapter 4
SE chapter 4
 
Agile software development
Agile software developmentAgile software development
Agile software development
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
SE-Lecture 4 - Agile Software Development.pptx
SE-Lecture 4 - Agile Software Development.pptxSE-Lecture 4 - Agile Software Development.pptx
SE-Lecture 4 - Agile Software Development.pptx
 
Chapter 3 software engineering.pptx
Chapter 3 software engineering.pptxChapter 3 software engineering.pptx
Chapter 3 software engineering.pptx
 
Agile intro resources
Agile intro resourcesAgile intro resources
Agile intro resources
 
Agile Project Management for IT Projects
Agile Project Management for IT ProjectsAgile Project Management for IT Projects
Agile Project Management for IT Projects
 
Ch17
Ch17Ch17
Ch17
 
International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)
 
Ch3
Ch3Ch3
Ch3
 
Agile Method - Lec 1-2-3
Agile Method - Lec 1-2-3Agile Method - Lec 1-2-3
Agile Method - Lec 1-2-3
 
Chapter 5
Chapter 5Chapter 5
Chapter 5
 
Week_03-Agile Developmnet.ppt
Week_03-Agile Developmnet.pptWeek_03-Agile Developmnet.ppt
Week_03-Agile Developmnet.ppt
 
ch3-150102101842-conversion-gate02.pdf
ch3-150102101842-conversion-gate02.pdfch3-150102101842-conversion-gate02.pdf
ch3-150102101842-conversion-gate02.pdf
 
LU 3 Agile SW Dev.pptx
LU 3 Agile SW Dev.pptxLU 3 Agile SW Dev.pptx
LU 3 Agile SW Dev.pptx
 
Ch3 - Agile SW Dev
Ch3 - Agile SW DevCh3 - Agile SW Dev
Ch3 - Agile SW Dev
 
Unit -1.ppt
Unit -1.pptUnit -1.ppt
Unit -1.ppt
 
Agile Methodologies & Key Principles
Agile Methodologies & Key Principles Agile Methodologies & Key Principles
Agile Methodologies & Key Principles
 
Ch3. agile sw dev
Ch3. agile sw devCh3. agile sw dev
Ch3. agile sw dev
 

Recently uploaded

Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
 
WSO2Con2024 - Unleashing the Financial Potential of 13 Million People
WSO2Con2024 - Unleashing the Financial Potential of 13 Million PeopleWSO2Con2024 - Unleashing the Financial Potential of 13 Million People
WSO2Con2024 - Unleashing the Financial Potential of 13 Million PeopleWSO2
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public AdministrationWSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public AdministrationWSO2
 
WSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - KanchanaWSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - KanchanaWSO2
 
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & InnovationWSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & InnovationWSO2
 
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...WSO2
 
WSO2Con2024 - Software Delivery in Hybrid Environments
WSO2Con2024 - Software Delivery in Hybrid EnvironmentsWSO2Con2024 - Software Delivery in Hybrid Environments
WSO2Con2024 - Software Delivery in Hybrid EnvironmentsWSO2
 
Evolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI EraEvolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI Eraconfluent
 
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public AdministrationWSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public AdministrationWSO2
 
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...WSO2
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in sowetomasabamasaba
 
WSO2CON 2024 - Software Engineering for Digital Businesses
WSO2CON 2024 - Software Engineering for Digital BusinessesWSO2CON 2024 - Software Engineering for Digital Businesses
WSO2CON 2024 - Software Engineering for Digital BusinessesWSO2
 
WSO2Con2024 - Organization Management: The Revolution in B2B CIAM
WSO2Con2024 - Organization Management: The Revolution in B2B CIAMWSO2Con2024 - Organization Management: The Revolution in B2B CIAM
WSO2Con2024 - Organization Management: The Revolution in B2B CIAMWSO2
 
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...WSO2
 
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...WSO2
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 

Recently uploaded (20)

Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
WSO2Con2024 - Unleashing the Financial Potential of 13 Million People
WSO2Con2024 - Unleashing the Financial Potential of 13 Million PeopleWSO2Con2024 - Unleashing the Financial Potential of 13 Million People
WSO2Con2024 - Unleashing the Financial Potential of 13 Million People
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public AdministrationWSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
 
WSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - KanchanaWSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - Kanchana
 
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & InnovationWSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
 
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
 
WSO2Con2024 - Software Delivery in Hybrid Environments
WSO2Con2024 - Software Delivery in Hybrid EnvironmentsWSO2Con2024 - Software Delivery in Hybrid Environments
WSO2Con2024 - Software Delivery in Hybrid Environments
 
Evolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI EraEvolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI Era
 
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public AdministrationWSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
WSO2CON 2024 - Software Engineering for Digital Businesses
WSO2CON 2024 - Software Engineering for Digital BusinessesWSO2CON 2024 - Software Engineering for Digital Businesses
WSO2CON 2024 - Software Engineering for Digital Businesses
 
WSO2Con2024 - Organization Management: The Revolution in B2B CIAM
WSO2Con2024 - Organization Management: The Revolution in B2B CIAMWSO2Con2024 - Organization Management: The Revolution in B2B CIAM
WSO2Con2024 - Organization Management: The Revolution in B2B CIAM
 
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
 
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 

ch2-Agile-Software-Development-engineerning.pdf

  • 1. Chapter 2 – Agile Software Development
  • 2. Topics  Agile methods  Agile development techniques  Agile project management
  • 3. Rapid software development  Rapid development and delivery is now often the most important requirement for software systems  Businesses operate in a fast –changing requirement and it is practically impossible to produce a set of stable software requirements  Software has to evolve quickly to reflect changing business needs.  Plan-driven development is essential for some types of system but does not meet these business needs.  Agile development methods emerged in the late 1990s whose aim was to radically reduce the delivery time for working software systems
  • 4. Agile development  Program specification, design and implementation are inter- leaved  The system is developed as a series of versions or increments with stakeholders involved in version specification and evaluation  Frequent delivery of new versions for evaluation  Extensive tool support (e.g. automated testing tools) used to support development.  Minimal documentation – focus on working code
  • 5. Plan-driven and agile development
  • 6. Plan-driven and agile development  Plan-driven development  A plan-driven approach to software engineering is based around separate development stages with the outputs to be produced at each of these stages planned in advance.  Not necessarily waterfall model – plan-driven, incremental development is possible  Iteration occurs within activities.  Agile development  Specification, design, implementation and testing are inter- leaved and the outputs from the development process are decided through a process of negotiation during the software development process.
  • 8. Agile methods  Dissatisfaction with the overheads involved in software design methods of the 1980s and 1990s led to the creation of agile methods.These methods:  Focus on the code rather than the design  Are based on an iterative approach to software development  Are intended to deliver working software quickly and evolve this quickly to meet changing requirements.  The aim of agile methods is to reduce overheads in the software process (e.g. by limiting documentation) and to be able to respond quickly to changing requirements without excessive rework.
  • 9. Agile manifesto  We are uncovering better ways of developing software by doing it and helping others do it.Through this work we have come to value:  Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan  That is,while there is value in the items on the right,we value the items on the left more
  • 10. Values of Agile Software Development 1. Value Individual and Interactions over Process and Tools: In the software development industry there will be people who will be providing requirements i.e., business, as well as people who will be working on the specifications, i.e., software developers and that’s the reason why the communication between the business and the development team matters a lot. To get a clear idea on what is needed and what are the exact requirements, proper communication between business and developers is required, and hence we should value people, their requirements more than processes, and tools because if the requirement is not clear, we can’t create what the customer wants us to create. 1. Deliver working software over comprehensive documentation: Agile does not support eliminating documentation but limits it to only required documents. The primary reason to do that was, much documentation like requirements, specifications, prospectus, design documents, test plans, approvals and a lot more, used to cause a delay in the delivery. In agile instead of all these documentations, we create “User Stories,” which is sufficient for a developer to begin a task. “User stories” are nothing but the to-do list given by the client as per its priority. In Agile, our primary focus will be on delivering working features in their respective periods rather than creating huge documents on the client’s requirement.
  • 11. Values of agile software development 3. Collaborating with the customer over Contract Negotiation: Usually, in any process, the customer interacts with the development team to negotiate in detail on requirements, timelines but that is before the work starts. Once the job is done, they usually interact for feedback and inputs. In Agile – the customer is engaged and collaborates throughout the process as we deliver value to them every week (every period) and hence it makes it easier for the development team to meet the customer’s needs. Delivering values to the customer every week helps the developer to understand the customer’s requirements in detail, and eventually, this helps in delivering the project in time. 4. Responding to and implementing changes over following a plan: Changes are considered an expense in most of the traditional methods as a lot of rework is needed because feedback is given after complete project delivery. In Agile – priorities can be shifted from iteration to iteration, i.e., periodically, and new features/changes can be included in the next possible iteration. Moreover, according to Agile, the change is not an expense; it adds value to the project.
  • 12. Agile method applicability  Product development where a software company is developing a small or medium-sized product for sale.  Virtually all software products and apps are now developed using an agile approach  Custom system development within an organization, where there is a clear commitment from the customer to become involved in the development process and where there are few external rules and regulations that affect the software
  • 14. Extreme programming  A very influential agile method, developed in the late 1990s, that introduced a range of agile development techniques.  Extreme Programming (XP) takes an ‘extreme’ approach to iterative development.  New versions may be built several times per day;  Increments are delivered to customers every 2 weeks;  All tests must be run for every build and the build is only accepted if tests run successfully.
  • 15. Extreme programming practices (a) Principle or practice Description Incremental planning Requirements are recorded on story cards and the stories to be included in a release are determined by the time available and their relative priority. The developers break these stories into development ‘Tasks’. See Figures 3.5 and 3.6. Small releases The minimal useful set of functionality that provides business value is developed first. Releases of the system are frequent and incrementally add functionality to the first release. Simple design Enough design is carried out to meet the current requirements and no more. Test-first development An automated unit test framework is used to write tests for a new piece of functionality before that functionality itself is implemented. Refactoring All developers are expected to refactor the code continuously as soon as possible code improvements are found. This keeps the code simple and maintainable.
  • 16. Extreme programming practices Pair programming Developers work in pairs, checking each other’s work and providing the support to always do a good job. Collective ownership The pairs of developers work on all areas of the system, so that no islands of expertise develop and all the developers take responsibility for all of the code. Anyone can change anything. Continuous integration As soon as the work on a task is complete, it is integrated into the whole system.After any such integration, all the unit tests in the system must pass. Sustainable pace Large amounts of overtime are not considered acceptable as the net effect is often to reduce code quality and medium term productivity On-site customer A representative of the end-user of the system (the customer) should be available full time for the use of the XP team. In an extreme programming process, the customer is a member of the development team and is responsible for bringing system requirements to the team for implementation.
  • 18. XP planning  Begins with the listening, leads to creation of “user stories” that describes required output, features, and functionality. Customer assigns a value(i.e., a priority) to each story.  Agile team assesses each story and assigns a cost (development weeks. If more than 3 weeks, customer asked to split into smaller stories)  Working together, stories are grouped for a deliverable increment next release.  A commitment (stories to be included, delivery date and other project matters)is made.Three ways: 1. Either all stories will be implemented in a few weeks,2. high priority stories first, or 3. the riskiest stories will be implemented first.  After the first increment “project velocity”, namely number of stories  implemented during the first release is used to help define subsequent delivery dates for other increments. Customers can add stories, delete existing stories, change values of an existing story, split stories as development work proceeds.
  • 19. XP design  XP Design occurs both before and after coding as refactoring is encouraged  Follows the KIS principle (keep it simple) Nothing more nothing less than the story.  Encourage the use of CRC (class-responsibility-collaborator) cards in an object- oriented context.They only design for work product of XP.They identify and organize the classes that are relevant to the current software increment.  For difficult design problems, suggests the creation of “spike solutions”—a design prototype for that portion is implemented and evaluated.  Encourages “refactoring”—an iterative refinement of the internal program design. Does not alter the external behavior yet improve the internal structure. Minimize chances of bugs. More efficient, easy to read.
  • 20. XP Coding  Recommends the construction of a unit test for a story before coding commences. So implementer can focus on what must be implemented to pass the test.  Encourages “pair programming”.Two people work together at one workstation. Real time problem solving, real time review for quality assurance.Take slightly different roles.
  • 21. XP Testing  All unit tests are executed daily and ideally should be automated. Regression tests are conducted to test current and previous components.  “Acceptance tests” are defined by the customer and executed to assess customer visible functionality  To avoid some of the problems of testing and system validation, XP emphasizes the importance of program testing. XP includes an approach to testing that reduces the chances of introducing undiscovered errors into the current version of the system. 
  • 22. XP and agile principles  Incremental development is supported through small, frequent system releases.  Customer involvement means full-time customer engagement with the team.  People not process through pair programming, collective ownership and a process that avoids long working hours.  Change supported through regular system releases.  Maintaining simplicity through constant refactoring of code. Chapter 3Agile Software Development 22 30/10/2014
  • 23. Influential XP practices  Extreme programming has a technical focus and is not easy to integrate with management practice in most organizations.  Consequently, while agile development uses practices from XP, the method as originally defined is not widely used.  Key practices  User stories for specification  Refactoring  Test-first development  Pair programming Chapter 3Agile Software Development 23 30/10/2014
  • 24. User stories for requirements  In XP, a customer or user is part of the XP team and is responsible for making decisions on requirements.  User requirements are expressed as user stories or scenarios.  These are written on cards and the development team break them down into implementation tasks.These tasks are the basis of schedule and cost estimates.  The customer chooses the stories for inclusion in the next release based on their priorities and the schedule estimates. Chapter 3Agile Software Development 24 30/10/2014
  • 25. A ‘prescribing medication’ story Chapter 3Agile Software Development 25 30/10/2014
  • 26. Examples of task cards for prescribing medication Chapter 3Agile Software Development 26 30/10/2014
  • 27. Refactoring  Conventional wisdom in software engineering is to design for change. It is worth spending time and effort anticipating changes as this reduces costs later in the life cycle.  XP, however, maintains that this is not worthwhile as changes cannot be reliably anticipated.  Rather, it proposes constant code improvement (refactoring) to make changes easier when they have to be implemented. Chapter 3Agile Software Development 27 30/10/2014
  • 28. Refactoring  Programming team look for possible software improvements and make these improvements even where there is no immediate need for them.  This improves the understandability of the software and so reduces the need for documentation.  Changes are easier to make because the code is well- structured and clear.  However, some changes requires architecture refactoring and this is much more expensive. Chapter 3Agile Software Development 28 30/10/2014
  • 29. Examples of refactoring  Re-organization of a class hierarchy to remove duplicate code.  Tidying up and renaming attributes and methods to make them easier to understand.  The replacement of inline code with calls to methods that have been included in a program library. Chapter 3Agile Software Development 29 30/10/2014
  • 30. Test-first development  Testing is central to XP and XP has developed an approach where the program is tested after every change has been made.  XP testing features:  Test-first development.  Incremental test development from scenarios.  User involvement in test development and validation.  Automated test harnesses are used to run all component tests each time that a new release is built. Chapter 3Agile Software Development 30 30/10/2014
  • 31. Test-driven development( TDD)  Writing tests before code clarifies the requirements to be implemented.  Tests are written as programs rather than data so that they can be executed automatically.The test includes a check that it has executed correctly.  Usually relies on a testing framework such as Junit.  All previous and new tests are run automatically when new functionality is added, thus checking that the new functionality has not introduced errors. Chapter 3Agile Software Development 31 30/10/2014
  • 32. Customer involvement  The role of the customer in the testing process is to help develop acceptance tests for the stories that are to be implemented in the next release of the system.  The customer who is part of the team writes tests as development proceeds.All new code is therefore validated to ensure that it is what the customer needs.  However, people adopting the customer role have limited time available and so cannot work full-time with the development team.They may feel that providing the requirements was enough of a contribution and so may be reluctant to get involved in the testing process. Chapter 3Agile Software Development 32 30/10/2014
  • 33. Test case description for dose checking Chapter 3Agile Software Development 33 30/10/2014
  • 34. Test automation  Test automation means that tests are written as executable components before the task is implemented  These testing components should be stand-alone, should simulate the submission of input to be tested and should check that the result meets the output specification.An automated test framework (e.g. Junit) is a system that makes it easy to write executable tests and submit a set of tests for execution.  As testing is automated, there is always a set of tests that can be quickly and easily executed  Whenever any functionality is added to the system, the tests can be run and problems that the new code has introduced can be caught immediately. Chapter 3Agile Software Development 34 30/10/2014
  • 35. Problems with test-first development  Programmers prefer programming to testing and sometimes they take short cuts when writing tests. For example, they may write incomplete tests that do not check for all possible exceptions that may occur.  Some tests can be very difficult to write incrementally. For example, in a complex user interface, it is often difficult to write unit tests for the code that implements the‘display logic’ and workflow between screens.  It difficult to judge the completeness of a set of tests. Although you may have a lot of system tests, your test set may not provide complete coverage. Chapter 3Agile Software Development 35 30/10/2014
  • 36. Test-first development  Testing is central to XP and XP has developed an approach where the program is tested after every change has been made.  XP testing features:  Test-driven development(TDD).  Incremental test development from scenarios.  User involvement in test development and validation.  Automated test harnesses are used to run all component tests each time that a new release is built. Chapter 3Agile Software Development 36 30/10/2014
  • 37. Test-driven development  Writing tests before code clarifies the requirements to be implemented.  Tests are written as programs rather than data so that they can be executed automatically.The test includes a check that it has executed correctly.  Usually relies on a testing framework such as Junit.  All previous and new tests are run automatically when new functionality is added, thus checking that the new functionality has not introduced errors.Thus performs incremental test development from scenarios Chapter 3Agile Software Development 37 30/10/2014
  • 38. Test case description for dose checking Chapter 3Agile Software Development 38 30/10/2014
  • 39. Test automation  Test automation means that tests are written as executable components before the task is implemented  These testing components should be stand-alone, should simulate the submission of input to be tested and should check that the result meets the output specification.An automated test framework (e.g. Junit) is a system that makes it easy to write executable tests and submit a set of tests for execution.  As testing is automated, there is always a set of tests that can be quickly and easily executed  Whenever any functionality is added to the system, the tests can be run and problems that the new code has introduced can be caught immediately. Chapter 3Agile Software Development 39 30/10/2014
  • 40. Problems with test-first development  Programmers prefer programming to testing and sometimes they take short cuts when writing tests. For example, they may write incomplete tests that do not check for all possible exceptions that may occur.  Some tests can be very difficult to write incrementally. For example, in a complex user interface, it is often difficult to write unit tests for the code that implements the‘display logic’ and workflow between screens.  It difficult to judge the completeness of a set of tests. Although you may have a lot of system tests, your test set may not provide complete coverage. Chapter 3Agile Software Development 40 30/10/2014
  • 41. User /Customer involvement  The role of the customer in the testing process is to help develop acceptance tests for the stories that are to be implemented in the next release of the system.  The customer who is part of the team writes tests as development proceeds.All new code is therefore validated to ensure that it is what the customer needs.  However, people adopting the customer role have limited time available and so cannot work full-time with the development team.They may feel that providing the requirements was enough of a contribution and so may be reluctant to get involved in the testing process. Chapter 3Agile Software Development 41 30/10/2014
  • 42. Pair programming  Pair programming involves programmers working in pairs, developing code together.  This helps develop common ownership of code and spreads knowledge across the team.  It serves as an informal review process as each line of code is looked at by more than 1 person.  It encourages refactoring as the whole team can benefit from improving the system code. Chapter 3Agile Software Development 42 30/10/2014
  • 43. Pair Programming http://www.pairprogramming.com/ With pair-programming: •Two software engineers work on one task at one computer •One engineer, the driver, has control of the keyboard and mouse and creates the implementation •The other engineer, the navigator, watches the driver’s implementation to identify defects and participates in on-demand brainstorming •The roles of driver and observer are periodically rotated between the two software engineers Pair-programming has been popularized by the eXtreme Programming (XP) methodology
  • 44. Pair programming  In pair programming, programmers sit together at the same computer to develop the software.  Pairs are created dynamically so that all team members work with each other during the development process.  The sharing of knowledge that happens during pair programming is very important as it reduces the overall risks to a project when team members leave.  Pair programming is not necessarily inefficient and there is some evidence that suggests that a pair working together is more efficient than 2 programmers working separately. Chapter 3Agile Software Development 44 30/10/2014
  • 45. Agile project management Chapter 3Agile Software Development 45 30/10/2014
  • 46. Agile project management  The principal responsibility of software project managers is to manage the project so that the software is delivered on time and within the planned budget for the project.  The standard approach to project management is plan- driven. Managers draw up a plan for the project showing what should be delivered, when it should be delivered and who will work on the development of the project deliverables.  Agile project management requires a different approach, which is adapted to incremental development and the practices used in agile methods. Chapter 3Agile Software Development 46 30/10/2014
  • 47. Scrum  Scrum is an agile method that focuses on managing iterative development rather than specific agile practices.  There are three phases in Scrum.  The initial phase is an outline planning phase where you establish the general objectives for the project and design the software architecture.  This is followed by a series of sprint cycles, where each cycle develops an increment of the system.  The project closure phase wraps up the project, completes required documentation such as system help frames and user manuals and assesses the lessons learned from the project.  Chapter 3Agile Software Development 47 30/10/2014
  • 49. Scrum terminology (a) Scrum term Definition Development team A self-organizing group of software developers, which should be no more than 7 people. They are responsible for developing the software and other essential project documents. Potentially shippable product increment The software increment that is delivered from a sprint. The idea is that this should be ‘potentially shippable’ which means that it is in a finished state and no further work, such as testing, is needed to incorporate it into the final product. In practice, this is not always achievable. Product backlog This is a list of ‘to do’ items which the Scrum team must tackle. They may be feature definitions for the software, software requirements, user stories or descriptions of supplementary tasks that are needed, such as architecture definition or user documentation. Product owner An individual (or possibly a small group) whose job is to identify product features or requirements, prioritize these for development and continuously review the product backlog to ensure that the project continues to meet critical business needs. The Product Owner can be a customer but might also be a product manager in a software company or other stakeholder representative. Chapter 3Agile Software Development 49 30/10/2014
  • 50. Scrum terminology (b) Scrum term Definition Scrum A daily meeting of the Scrum team that reviews progress and prioritizes work to be done that day. Ideally, this should be a short face-to-face meeting that includes the whole team. ScrumMaster The ScrumMaster is responsible for ensuring that the Scrum process is followed and guides the team in the effective use of Scrum. He or she is responsible for interfacing with the rest of the company and for ensuring that the Scrum team is not diverted by outside interference. The Scrum developers are adamant that the ScrumMaster should not be thought of as a project manager. Others, however, may not always find it easy to see the difference. Sprint A development iteration. Sprints are usually 2-4 weeks long. Velocity An estimate of how much product backlog effort that a team can cover in a single sprint. Understanding a team’s velocity helps them estimate what can be covered in a sprint and provides a basis for measuring improving performance. Chapter 3Agile Software Development 50 30/10/2014
  • 53. Scrum There are three phases in Scrum. – The initial phase is an outline planning phase where you establish the general objectives for the project and design the software architecture. – This is followed by a series of sprint cycles, where each cycle develops an increment of the system. – The project closure phase wraps up the project, completes required documentation such as system help frames and user manuals and assesses the lessons learned from the project
  • 54. Scrum sprint cycle Chapter 3 Agile Software Development 54 30/10/2014
  • 55. Problem statement ❖ In traditional methodology Some vital changes are being made in project and feel difficulty, and during an application in the testing Stage, it is very difficult to go back and do some eminent changes. One may Go to come across large projects with expensive cost. ❖ Customer not involvement during any phase. ❖ Change mind for changing requirement in srs is so difficult ❖ After project execution Customer satisfaction is less than expected. ❖ Tradition methodology Continuous planning for project is the biggest problem.
  • 56. Goal ❖ All problems occurring during traditional methodology phases are fixed using Case study on (shopping cart) project with agile scrum methodology.
  • 57. Life cycle of case Study contains following steps • Product Backlog. • Sprint Planning Meeting. • Sprint Backlog. • Daily Scrum. • Results. • Sprint Review Meeting. • Release Burn chart.
  • 58. Product Backlog ❖ The Product Backlog is the master list of all functionality desired in the product. When using Scrum, it is not necessary to start a project with a lengthy, upfront effort to document all requirements.
  • 59. Sprint Planning meeting • The Sprint Planning Meeting is attended by the Product Owner, the entire Scrum Team. • During the sprint planning meeting the Product Owner describes the highest priority features to the team. • The Product Owner doesn't have to describe every item being tracked on the Product Backlog.
  • 60. Sprint backlog of First Iteration
  • 62. Daily Scrum ❖ Team members involve in this meeting on the following seniors. ❖ Time: • 20-minutes ❖ Three questions: • What did you do yesterday • What will you do today? • What obstacles are in your way?
  • 64. Links on Menus Layout
  • 65. Display products on main page
  • 68. Results of First two weeks Iteration
  • 69. Sprint Review Meeting  Team presents what it accomplished during the sprint  Typically takes the form of a demo of new features or underlying architecture  Informal  2-hour prep time rule  Participants  Customers  Management  Product Owner  Other engineers
  • 70. Sprint Review Meeting  Team presents what it accomplished during the sprint  Typically takes the form of a demo of new features or underlying architecture  Informal  2-hour prep time rule  Participants  Customers  Management  Product Owner  Other engineers
  • 71. Sprint backlog of second iteration
  • 80. Four iteration of sprint backlog
  • 85. Results of four iteration
  • 87. RELEASE BURNDOWN ❖ On a Scrum project, the team tracks its progress against a release plan by updating a release burn down chart at the end of each sprint. The horizontal axis of the release burn down chart shows the sprints months; the vertical axis shows the amount of work complete.
  • 88. Scrum benefits • The product is broken down into a set of manageable and understandable chunks. • Unstable requirements do not hold up progress. • The whole team have visibility of everything and consequently team communication is improved. • Customers see on-time delivery of increments and gain feedback on how the product works. • Trust between customers and developers is established and a positive culture is created in which everyone expects the project to succeed. Chapter 3 Agile Software Development 88 30/10/2014