You are on page 1of 80

2

Unit- 4
Agile Development Process
Prepared By: Prof. V. K. Wani
Introduction To Agile Development Process
2

The concept of iterative and incremental approach to development started


away back from 1950s.
In 1950s – NASA and The United States Department of Defense (DoD) have
used the incremental and iterative development (IID) approach.
In 1960s – the concept of Evolutionary project management (Evo)
recommended a one- to two-week iterations, delivery of product in each
iteration.
In 1986 – The “rugby approach” was discussed with dedicated, self-organizing
teams. Here a team tries to go the distance as a unit, passing the ball back and
forth—may better serve today’s competitive requirements.”
Agile methods are incremental development methods in which the increments
are small and the system is created rapidly and handed over to customer within
15 to 20 days time period.
Agile focuses on product instead of focusing on design and documentation.

Prepared By: Prof. V. K. Wani


Agile Manifesto
3

Agile Mainfesto State that we are uncovering better& faster ways of


developing software by doing it
it..

Individuals and interactions over processes and tools


Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan

Prepared By: Prof. V. K. Wani


What is “Agility”?
4

It can be Defined as

Effective (rapid and adaptive) response to change!


Effective communication among all stakeholders!
Drawing the customer onto the team! Eliminate “us and them” attitude
Organizing a team so that it is in control of the work performed!

In Short Rapid, incremental delivery of software

Prepared By: Prof. V. K. Wani


Agility and the Cost of Change
5

Conventional wisdom is that the cost of change increases nonlinearly as a


project progresses. It is relatively easy to accommodate a change when a team is
gathering requirements early in a project.

A well-designed agile process may “flatten” the cost of change curve by coupling
incremental delivery with agile practices such as continuous unit testing and pair
programming.

Prepared By: Prof. V. K. Wani


Agility and the Cost of Change
6

Prepared By: Prof. V. K. Wani


Agility Principles
7

1. Our highest priority is to satisfy the customer through early and continuous
delivery of valuable software.
2. Welcome changing requirements, even late in development. Agile processes
harness change for the customer's competitive advantage.
3. Deliver working software frequently, from a couple of weeks to a couple of
months, with a preference to the shorter timescale.
4. Business people and developers must work together daily throughout the
project.
5. Build projects around motivated individuals. Give them the environment and
support they need, and trust them to get the job done.
6. The most efficient and effective method of conveying information to and
within a development team is face–to–face conversation.
7. Working software is the primary measure of progress.
Prepared By: Prof. V. K. Wani
Agility Principles
8

8. Agile processes promote sustainable development. The sponsors, developers,


and users should be able to maintain a constant pace indefinitely.
9. Continuous attention to technical excellence and good design enhances
agility.
10. Simplicity – the art of maximizing the amount of work not done – is essential.
11. The best architectures, requirements, and designs emerge from self–
organizing teams.
12. At regular intervals, the team reflects on how to become more effective, then
tunes and adjusts its behavior accordingly.

Prepared By: Prof. V. K. Wani


Myths of Planned Development
9

Myths Reality
Agile Development is Methodology It is set of principles that help to
develop the product technically.
agile development has more value for
working software than on
Agile has no documentation documentation But it doesn't mean it
has removed documentation
completely
Agile allows to accommodate the
Agile has no planning changes if necessary during the
software development process and
then plans the development further.
agile is not short lived. It is
Agile is temporary practiced since 70’s. hence it neither
short lived or temporary.
Prepared By: Prof. V. K. Wani
Myths of Planned Development
10

Myths Reality
As agile does not have the fixed
process, it is considered as
Agile is Undisciplined undisciplined which is not true. Agile
places greater value on individuals
and interactions than on processes
and tools.
The agile development has a focus to
create simple upfront design that
represents the general structure of
Agile has no upfront design software system. Hence designing
the features that may or may not be
required in future is avoided.
the agile process breaks the large,
Agile does not scale complex project into small modules.
Due to this agile is scalable.
Prepared By: Prof. V. K. Wani
Toolset & Methodologies for Agile Process
11

 The objective of agile development tools is to help in one or more activities


in agile development. Due to use of such tools the operational development
software can be created rapidly.
 The agile tool set consist of automated support for project planning, use
case development, and requirements gathering, code generation and
testing.

 Mostly Used Toolset are

1. JIRA
2. Kanban
3. Extreme Programming
4. SCRUM

Prepared By: Prof. V. K. Wani


JIRA (Toolset)
12

 JIRA is a tool developed by Australian Company Atlassian.


 It allows you to priorities, assign, track, report and audit your issues and
project management.
 The name "JIRA" is actually inherited from the Japanese word "Gojira" which
means "Godzilla".
 The basic use of this tool is to track issue and bugs related to your software.
 JIRA Packages
1. JIRA Core
2. JIRA Software
3. JIRA Service Desk

Prepared By: Prof. V. K. Wani


JIRA Platform
13

 Every JIRA application (JIRA Core, JIRA Software, JIRA Service Desk) is
built on JIRA platform
 JIRA platform provides a set of functionalities which are shared with all
JIRA application

Prepared By: Prof. V. K. Wani


JIRA Architecture
14

Prepared By: Prof. V. K. Wani


JIRA Architecture
15
Lucene : JIRA uses it for its indexing. When an issue is created or modified in JIRA, a
Lucene Document is created that contains the fields from that issue as well as some
additional calculated data that is useful for searching.

Embedded Crowd is Atlassian’s Identity Management and Single Sign On (SSO) tool.
Both Jira and Confluence now embed a subset of Crowd’s core modules for powerful and
consistent user management which uses Lightweight Directory Access Protocol (LDAP).

Atlassian’s Scheduler : The Scheduler will create the issues for you. Your issues can be
created daily, weekly, monthly, or using your own custom interval. You can either use our
user-friendly interval wizard, or simply use the cron expression.

OSWorkflow: A guide for Java developers and architects to integrating open-source


Business Process Management

OFBiz EE is just an abstraction layer for moving between database tables and fancy
maps called GenericValues

Prepared By: Prof. V. K. Wani


Kanban (Toolset)
16

Kanban is a popular framework used by software team practicing agile


software development.
Kanban is a method for managing the creation of products with an emphasis
on continual delivery while not overburdening the development team.
 Like Scrum, Kanban is a process designed to help teams work together more
effectively.
Kanban framework uses kanban boards to visualize a work and optimize the
flow of work.
Every work item is represented as a separate card on kanban board.
The purpose of Kanban Board & Card is to allow team members to track the
progress of work.

Prepared By: Prof. V. K. Wani


Kanban Board
17

Prepared By: Prof. V. K. Wani


Kanban Board
9

Prepared By: Prof. V. K. Wani


Control Chart
19

Prepared By: Prof. V. K. Wani


Cumulative Flow Diagram

20

Prepared By: Prof. V. K. Wani


Kanban
21

A cumulative flow diagram is a tool used in queuing theory. It is an area


graph that depicts the quantity of work in a given state, showing arrivals, time
in queue, quantity in queue, and departure. Cumulative flow diagrams are
seen in the literature of agile software development and lean product
development. WIP Represents a Work in Progress.

The Control Chart shows the Cycle Time (or Lead Time) for your product,
version, or sprint. It takes the time spent by each issue in a particular status, and
maps it over a specified period of time. A Control Chart helps you identify
whether data from the current sprint can be used to determine future
performance.

Prepared By: Prof. V. K. Wani


eXtreme Programming (Methodology)
22

The most widely used agile process or Metghod , It follows the principle of
Agility.

1. It uses an object-oriented approach

2. Is a conventional approach, A developer focuses on framework activities like


planning, Design, Coding and Testing, Etc. The XP Also has a set of rules and
practices.

3. XP Values :- Beck defined the set of five values that serve as a basis for the
work performed in the xp.

Prepared By: Prof. V. K. Wani


The values of XP
23

1)Communication :- The effective communication must be established between


software developers and stake holders in order to convey the important concepts and to
get the important feedback.
2)Simplicity :- XP focuses on current needs instead of future needs to incorporate in
design.
3)Feedback:- The feedback for software product can be obtained from the developers of
software, customers, and other software team members
4)Courage:- The agile xp team must be disciplined to design the system today, recognize
the future requirements and make changes dramatically as per demand.
5)Respect :- by following the above states XP values the agile team can win the respect of
stakeholders.

Prepared By: Prof. V. K. Wani


XP Process
24
CRC (class-responsibility-collaborator) cards

Prepared By: Prof. V. K. Wani


Industrial XP
25

The industrial XP can be defined as the organic evolution of XP. It is customer


centric. It has expanded role for customers and advanced technical practices.
Various new practices that are as follows:-

1) Readiness Assessment :- in this assessment following issues are assessed-


- Proper Environment must be available to support XP.
- Team should contain appropriate stakeholders.
- The organization should support quality programs and continuous
improvement.
The organization culture should support new values of agile team.

2) Project Community :- Skilled and efficient people must be chosen as the


agile team members for the success of the project.
- The team is referred as the community when extreme programming approach
is considered.

Prepared By: Prof. V. K. Wani


Industrial XP
26

3) Project Chartering :- it means assessing the justification for the project as a


business application. That means, the IXP team assess whether the project
satisfies the goals and objectives of organization.

4) Test Driven Management :- for assessing the state of project and its
progress the industrial XP needs some measurable criteria. In test driven
management the project is tested with the help of these measurable
criteria.

5) Retrospectives :- After delivering the software increment, the specialized


review is conducted which is called as retrospective. The intension of this is to
improve the industrial XP process.

6) Continuous learning :- the team members are inspired and encouraged to


learn new methods and techniques that can improve the quality of product.

Prepared By: Prof. V. K. Wani


SCRUM (Methodology)
27

Is a Software Development method used by software team practicing agile


software development.
Scrum is a simple yet incredibly powerful set of principles and practices
that help teams deliver products in short cycles.
 Enabling fast feedback, continual improvement, and rapid adaptation to
change.
As the leading Agile development framework, Scrum has predominantly
been used for software development, but it is also proving to be effective in
efforts far beyond

Prepared By: Prof. V. K. Wani


SCRUM Framework
28

Prepared By: Prof. V. K. Wani


Scrum Framework
29

Roles

• Product Owner
• Scrum Master
• Team
Ceremonies

• Sprint Planning
• Daily Scrum Meeting
• Sprint Review
• Sprint Retrospective
Artifacts

• Product Backlog
• Sprint Backlog
• Sprint Burndown Chart

Prepared By: Prof. V. K. Wani


Scrum Roles
30

1. Product Owner – Responsibilities

• Define the features of the product


• Work on a shared vision as he represents the business stakeholders
• Manage and Prioritize features according to market value in Product
Backlog
• Accept / reject the work at the end of each iteration
• Managing the release plan
• Responsible for the profitability of the product (ROI)
• Decide on release date and content

Prepared By: Prof. V. K. Wani


Scrum Roles
31

2. Scrum Master – Responsibilities

• empower and shepherd the Scrum team


• Act as a Buffer between team and product owner
• He responsible for enforcing the scrum process.
• Removes impediments
• Keeps the process moving by enacting Scrum values and practices
• Ensure that the team is fully functional and productive
• Represents management to the project
• Enable close cooperation across all roles and functions
• Shield the team from external interferences

Prepared By: Prof. V. K. Wani


Scrum Roles
32
3. Team – Responsibilities

• Typically a team of 5-9 people


• They are usually cross-functional: Programmer, QA, UX designers,
Analyste, etc.
• Estimate size of backlog items
• Committing to increments of deliverable software and delivering it
• Tracks own progress
• Is self-organising—but accountable to the Product Owner for delivering
as promised

Prepared By: Prof. V. K. Wani


Scrum Artifacts
33

Prepared By: Prof. V. K. Wani


Product Backlog
34

It is a List of Requirement which are maintained for product.


list of work items that need to be done over time.
 Items may be added to the backlog by anyone
 only the Product Owner has the right to determine the order in which they
will be executed by the team and he negotiates this with stakeholders and the
team.
The Product Backlog is a living document and requires constant grooming to
keep it current and useful.

Good Product Backlog contains:


Good product backlogs should be DEEP (Coined by Roman Pichler and Mike)
• Detailed appropriately
• Emergent
• Estimated
• Prioritized
Prepared By: Prof. V. K. Wani
Product Backlog
35

Type Example
Feature As a recruiter I want to search candidates using
keywords so that I can find the suitable job seeker
Change As a job seeker I want default ordering job search
results to be by freshness rather than location so
that its easier to see latest jobs first
Defects Please fix defect #148 so that space characters in
search wont crash the system
Technical Improvement Upgrade to the latest version of Internet
Information Server
Knowledge Acquisition Create integration prototype using MSSQL Server
and Salesforce.com and run performance test to
check real time integration speed and reports.

Prepared By: Prof. V. K. Wani


A Sample Product Backlog
36

Prepared By: Prof. V. K. Wani


Product Backlog
37

Prepared By: Prof. V. K. Wani


Sprint Backlog
38

The Sprint backlog is more of like a task board


It the physical representation of the list of work that the Scrum team
have committed to do during the current sprint.
It tells the whole team and anyone else what work they have planned or
the sprint and their current status.
In short:

• The Sprint Backlog defines the work team will perform to turn selected
Product Backlog items into a “Done” Increment
• The list emerges during the Sprint.
• Every team member takes responsibility / ownership of each task in
progress task
• Each Tasks has information about estimated amount of work remaining on
the task on any given day during the Sprint
Prepared By: Prof. V. K. Wani
Sprint Backlog
39

Prepared By: Prof. V. K. Wani


Sprint Backlog
40

Prepared By: Prof. V. K. Wani


Sprint Backlog
41

Prepared By: Prof. V. K. Wani


Sprint Burndown Chart
42

The sprint burndown chart helps the Scrum team to monitor its progress and works as
an indicator of whether it will meet its commitment at the end of the sprint.
 It requires teams to estimate the duration of each task in hours and on a daily basis to
chart the total remaining hours for all uncompleted tasks.

Helps to:
• Estimate new tasks and re-estimating in-progress tasks requires effort
• Re-estimate inaccurate tasks
• Completion of tasks delivers no value; only completed stories (features)
deliver value

Prepared By: Prof. V. K. Wani


Sprint Burndown Chart
43

Prepared By: Prof. V. K. Wani


Scrum Ceremonies (Sprint Planning )
44

The Team and the Product Owner collaborate to help the Team determine
how much Product Backlog it can turn into functionality during the upcoming
Sprint.
The Team create plans (Sprint Backlog) by identifying tasks for converting
selected Product Backlog into functionality
Team selects items from the product backlog that they can commit to
complete within a Sprint
Sprint backlog is created
Tasks are identified and each is estimated (1-16 hours)
Collaboratively, not done alone by the Scrum Master
High-level design is considered

Prepared By: Prof. V. K. Wani


Sprint Planning Meeting
45

Prepared By: Prof. V. K. Wani


Daily Scrum Meeting
46

Since the team is collaborating, it’s essential to ensure that continued project
progress and avoiding work blockages.
The team continuously assess its own progress towards achieving its sprint goal
and NOT report progress to the ScrumMaster or Product Owner or anyone else.

Prepared By: Prof. V. K. Wani


Daily Scrum Meeting
47

Observes

1. What have you done yesterday?

2. What are you going to do today?


Facilitates
3. Are there any impediments in your
way?

Prepared By: Prof. V. K. Wani


Sprint Review
48

The focus is the product the team is building.


While it does include a demonstration of the new features the team has
completed during the sprint,
its primary purpose is to inspect what the team has delivered and gather
feedback from the attendees to adapt the plan for the succeeding sprint.

Prepared By: Prof. V. K. Wani


Sprint Review
49
Provides Presents the new
feedback development

Provides
Facilitates
feedback

Prepared By: Prof. V. K. Wani


Sprint Retrospective
50

final meeting of the sprint.


 It follows immediately after the sprint review and should never be omitted.
The retrospective is focussed on the process—the way in which the Scrum team
is working together, including their technical skills and the software development
practices and tools they are using

Prepared By: Prof. V. K. Wani


Scrum Board
51

A Scrum Board is a tool that helps Teams make Sprint Backlog items visible.
The board can take many physical and virtual forms but it performs the same
function regardless of how it looks.
The board is updated by the Team and shows all items that need to be
completed for the current Sprint.

Prepared By: Prof. V. K. Wani


Scrum Board
52

Prepared By: Prof. V. K. Wani


Scrum Board
53

Prepared By: Prof. V. K. Wani


Scrum Board

54

Prepared By: Prof. V. K. Wani


Comparative Analysis
55
4

Prepared By: Prof. V. K. Wani


Scrum Vs XP
56

Prepared By: Prof. V. K. Wani


Agile Practices
57

 Test Driven Development (TDD)


 Refactoring
 Pair Programming
 Continues Integration

Prepared By: Prof. V. K. Wani


Test Driven Development (TDD)
58

 The basic idea is developing and implementing with Testing


 unit tests before writing a line of code
 Code is developed after the test is developed.
 Quickly add a test ­ just enough code to fail test
 The goal of TDD is to write clean code that works .

Prepared By: Prof. V. K. Wani


TDD Steps
59

Prepared By: Prof. V. K. Wani


TDD Benefits
60
 Shortens the programming feedback
 Provides detailed (executable) specifications
 Promotes development of high quality code
 Provides concrete evidence that your code works
 Requires developers to prove it with code
 Provides finely grained, concrete feedback
 Ensures that your design is clean by focusing on creation of
operations that are callable and testable
 Supports evolutionary development

Prepared By: Prof. V. K. Wani

Critical activities highlighted Sum over critical = 4.96


Refactoring
61

Refactoring is Agile practice in agile software development.


It is the process of restructuring the existing code, without affecting its
behavior.
The changes are in order to make the code easier to maintain and modify
Refactoring is not just any old restructuring
•You need to keep the code working
•You need small steps that preserve semantics
•You need to have unit tests to prove the code works
There are numerous well-known refactoring techniques

Prepared By: Prof. V. K. Wani


When to refactor
62

You should refactor:


 Any time that you see a better way to do things
• “Better” means making the code easier to understand
and to modify in the future
 You can do so without breaking the code
• Unit tests are essential for this
You should not refactor:
 Stable code (code that won’t ever need to change)
 Someone else’s code
• Unless you’ve inherited it (and now it’s yours)

Prepared By: Prof. V. K. Wani


The Refactoring Techniques
63

 Technique allowing more abstraction:


 Technique for Breaking code into more logical pieces
 Technique for improving name and location of code

Prepared By: Prof. V. K. Wani


Pair Programming
64

 Pair programming is an Agile Software development


technique in which two programmers work together at one
workstation.
 One is the Programmer who types the Code, another Observe
the programmer and suggest the Changes.
 They can change their role as needed.
 With this method programmer can concentrate on efficient
coding.

Prepared By: Prof. V. K. Wani


How does it Help?
65

 Continuous Review.
 Less Defects caught early.
 Better Problem Solving.
 More Economical.
 “Pair-Pressure” ensures timely delivery.
 Rapid Hands-on Approach to Learning.
 Better Induction of new Team Members.

Prepared By: Prof. V. K. Wani


Benefits of Pair Programming
66

 Economy
 Design Quality
 Satisfaction
 Learning
 Team Building and Communication

Prepared By: Prof. V. K. Wani


What is NOT pair programming?
67

 Splitting up the work


 Taking turns doing the work
 One person doing all the work
 Being located in different places
 Sitting at different computers
 (Exception – it’s ok to use remote shared desktop technology, such as VNC,
if absolutely necessary)

Prepared By: Prof. V. K. Wani


What is Worst about Pair Programming?
68

 Two Developers will do the work of one


 Less Work Will get Done
 Development Cost will be doubled
 New Programmer can slow down the senior programmer

Prepared By: Prof. V. K. Wani


65

Prepared By: Prof. V. K. Wani


Continues Integration
73

 It is method of merging all developers copies of work together


 It is useful in Interactive software Development
 New Programmer can slow down the senior programmer
 Usually each person integrates at least daily - leading to multiple
integrations per day.
 Each integration is verified by an automated build (including test) to detect
integration

Prepared By: Prof. V. K. Wani


Continues Integration Process
74

Prepared By: Prof. V. K. Wani


CI – Benefits
75

 Immediate bug detection


No integration step in the lifecycle
A deployable system at any given point
Record of evolution of the project

Prepared By: Prof. V. K. Wani


Scripted Testing?
76

How to script and test this login?


(Functional tests only – not security!)

Prepared By: Prof. V. K. Wani


Sample test scripts (4 of “many”)
77

Sample test script 3:


Sample test script 1: Launch the Login screen
Launch the Login screen Enter User-id: “”
Enter User-id: “xyz” Enter Password: “zyx”
Enter Password: “zyx” Press <Enter>
Press <Enter> Expected: login rejected
Expected result: login ok
Sample test script 4:
Sample test script 2: Launch the Login screen
Launch the Login screen Enter User-id: “”
Enter User-id: “xyz” Enter Password: “zyx”
Enter Password: “zyx” Click the “Login” button
Click the “Login” button Expected: login rejected
Expected result: login ok

Prepared By: Prof. V. K. Wani


What is Software Testing
78

Software testing is a process, to evaluate the functionality of a software


application with an intent to find whether the developed software met the
specified requirements or not and to identify the defects.

Software Testing Types: Manual testing is the process of testing the software
manually to find the defects.

Automation Testing: Automation testing is the process of testing the software


using an automation tools to find the defects.

Testing Approaches:
1. Black Box Testing: is a software testing techniques in which functionality
of the software under test is tested without looking at the internal code
structure, implementation details and knowledge of internal paths of the
software

Prepared By: Prof. V. K. Wani


Software Testing
79

2. White Box Testing: It focuses primarily on strengthening security, the flow


of inputs and outputs through the application, design and usability.
3. Grey Box Testing: Grey Box Testing is the testing of software application
using effective combination of both White box testing & Black box testing
method

Testing Levels:
1. Unit Testing: individual units/ components of a software are tested. A unit
is the smallest testable part of any software
2. Integration Testing: In this individual units are combined and tested as a
group.
3. System Testing: is the testing of a complete and fully integrated software
product.
4. Acceptance Testing: This is a type of testing done by users, customers, or
to determine software needs and business processes.

Prepared By: Prof. V. K. Wani


Thank You
80

Prepared By: Prof. V. K. Wani

You might also like