agile methodology - rajmanickam.files.wordpress.com€¦ · agile methodology lies on the adaptive...
TRANSCRIPT
[email protected] | Agile Methodology | March 25, 2015
Agile Methodology APPLICATION DEVELOPMENT - – PROCESS, PRACTICES, AND
TOOLS.
PAGE 1
Contents
Introduction ................................................................................................................................................... 2
Agile Principles .............................................................................................................................................. 2
Definitions of Agile ....................................................................................................................................... 2
Pros and Cons of Agile .................................................................................................................................. 3
Scrum ............................................................................................................................................................. 4
Scrum Roles .................................................................................................................................................. 4
Scrum Meetings ............................................................................................................................................ 4
Agile Process View ....................................................................................................................................... 6
Configuration management tools ................................................................................................................ 7
Team foundation server (TFS) ..................................................................................................................... 7
Concurrent Version System (CVS) ............................................................................................................. 8
Requirements ................................................................................................................................................ 8
Design ............................................................................................................................................................ 8
Unit testing ................................................................................................................................................... 9
Team Build ................................................................................................................................................... 10
Project management report ........................................................................................................................ 11
Magic Quadrant for Application Development Life Cycle ...................................................................... 13
PAGE 2
Introduction
This document goes through the Agile methodology that is used in the application development.
The document attempts to explain the process, practices and tools that are involved in analyzing,
constructing and maintaining software products.
Agile Principles
The agile Manifesto is based on principles of.
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
Definitions of Agile
“Agile software development refers a group of software development methodologies that are
based on principles of iterative development where requirement evolves through collaboration
between self-organizing cross-functional team.
Agile practices are similar to Lean programming, Extreme Programming (XP), Feature
Driven Development (FDD), and Scrum.
PAGE 3
Pros and Cons of Agile
Adaptive Vs Predictive
Agile methodology lies on the adaptive side of the continuum. One of the adaptive is
rolling wave approach to schedule planning, which identifies milestones but leaves
flexibility in the path to reach them. Predictive method focus on analyzing a predicting the
future and catering to the risks.
Iterative Vs Waterfall
The following are the methodology a
Agile
Agile focuses on the practices such as Xtreme programming.
Scrum
Scrum is also an agile methodology that is used in the maintainence and feature
implementation projects
CMMI
This methodology covers the CMMI process and has comprehensive
documentation. It predicts the entire development life cycle.
CMMI Agile 1.3
This includes tips for implementing both CMMI process and agile development.
TFS provides features to implement CMMI Agile in the organisations.
Iterative development, frequent feedback from customers, time boxing, pair programming,
and test driven design.
PAGE 4
Scrum
Agile is a process and methodology that is to develop new products and features.
Scrum is a process that is mostly used in the applications undergoing maintainence. Scrum
basically involves Scrum roles, backlogs and Scrum meetings.
Product Backlogs
The agile product backlog in Scrum is a prioritized features list, containing short
descriptions of all functionality desired in the product.
Scrum Roles
Scrum roles are classified as Product owner, Scrum Master and Scrum Team.
Product Owner
Product owner decides the features that are required in the product.
Engaged on the sprint review meetings to know the customer expectations.
Scrum Master
Scrum master is held responsible for the day to day activities in the scrum.
Scrum master is responsible to ensure the expectations set on the deliverables are
met.
Scrum Team
Team members involved in developing the product.
Involved in daily scrum meetings
Scrum Meetings
There are 4 types of scrum meetings are in the each of the sprint. There are the followings.
Sprint Planning
• Based on the features requirement from the product owner, the work that needs to
be done in the current sprint is taken out from the product backlog.
Daily Scrum
PAGE 5
• Scrum master and scrum team get together daily for 10 to 15 minutes to know the
status of the ongoing work. Impediments are known. Better communication,
mutual trust and dependencies are identified. Smooth transition of work.
Sprint Review
• Sprint review is held at the end or in between sprints to know the status of the
work. This provides opportunity for the team issues to be review. This could
usually happen between the product owner, scrum master and project manager.
Sprint Retrospective
• After the sprint is complete, the team with the scrum master identifies
• what went well,
• what didn’t go well and
• what are the improvements required
PAGE 6
Agile Process View
The above diagram illustrate the combination of Scrum model with the agile methodology. There
are product backlogs, scrum roles and scrum meetings. There are 1 to n iterations. Iterations can be
from 2 weeks to 4 weeks. The scrum team consists of 4 members to 7 members.
Feature
User story
Backlog
Task
Bug
Estimation Points
Code review
Unit test
System & Integration test
Requirement Develop Test
PAGE 7
Configuration management tools
The following are the various Configuration management tools available.
TFS / Visual studio
GIT / Bit bucket / Source tree
SVN
Team foundation server (TFS)
Team Foundation Server (commonly abbreviate to TFS) is a Microsoft product provides
source control management either via Team Foundation version control or Git,
reporting,
requirement management,
project management (for both agile software development and waterfall teams,
automated builds,
lab management,
testing and release management.
It covers the entire application life cycle.
PAGE 8
Concurrent Version System (CVS)
• Git
• An open source free version controlled system provides
• BitBucket
• Host your code as public and private repositories
• Source tree
• Source tree is a free mercurial and git client for Windows and Mac that provides
graphical interface for your Hg and Git repositories.
• JIRA
• Project planning and tracking
• Atlassian
• It is known for its issues tracking application, JIRA and its team collaboration
product, confluence.
• Checkout, Checkin, Commit, Changeset are the common cvs commands.
Requirements
The requirement analysis is the set of activities to that leads to derivation of software requirements.
It consists of the following to analysis and refine the requirements.
Estimation
UseCase
User Story
Feature
Function Points
Design
• UML diagrams
• Use Case, Class diagrams, Sequence diagrams, Activity diagram, Deployment
diagram
• OOPS
PAGE 9
• Abstraction, Encapsulation, Class, Object, Association, Multiple inheritance
• Design patterns
• MVC , Single Responsibility principles, Loosely coupled and highly cohesive
Unit testing
• Unit test case
The primary goal of unit testing is to take the smallest piece of testable software in the
application, isolate it from the remainder of the code, and determine whether it behaves
exactly as you expect.
• Code review
Code review is systematic examination of computer source code. It is intended to find and
fix mistakes overlooked.
• Code coverage
Code Coverage is a measure used to describe the degree to which the source code
program tested by a particular test suite such as Visual Studio. A program with high code
coverage has been more thoroughly tested and has a lower chance of containing software
than a program with low code coverage.
• Nunit, Junit , Visual Studio
NUnit is a unit-testing framework for all .Net languages. Initially ported from JUnit, the
current production release, version 2.6, is the seventh major release of this xUnit based
unit testing tool for Microsoft .NET.
JUnit is a unit testing framework for the Java programming language. JUnit has been
important in the development of test-driven development, and is one of a family of unit
testing frameworks which is collectively known as xUnit that originated with SUnit
• System Testing and Integration Testing
Integration testing is a logical extension of unit testing. In its simplest form, two units that
have already been tested are combined into a component and the interface between
them is tested. A component, in this sense, refers to an integrated aggregate of more
than one unit. In a realistic scenario, many units are combined into components, which
are in turn aggregated into even larger parts of the program.
PAGE 10
Team Build
With Team Builds, enterprise build manager can synchronize the resources, compile the
application, run associated unit tests, perform code analysis, release builds on the file server, and
publish build reports.
Continuous integration
Continuous integration (CI) is the practice of merging all developer working copies several
times a day. Continuous integration is used with automated unit testes to collaborate the
teams work through test driven development.
Team Foundation Build
Team Foundation Build is public build lab and is part of Team Foundation Server.
Maven
Apache Maven is a software project management and comprehension tool. Based on the
concept of a project object model (POM), Maven can manage a project's build, reporting
and documentation from a central piece of information.
PAGE 11
Project management report
The following are report that available in the agile process
Burn down chart
a
A burn down chart is a graphical representation of work left to do versus time. The
outstanding work (or backlog) is on the vertical axis and the time along the horizontal axis.
It is used for predicting when all the work will be completed. This is useful in Agile
programming methodology such as scrum.
Burn rate
The term burn rate is used in to determine the rate at which hours (allocated to a project)
are being used, to identify when work is going out of scope, or when efficiencies are being
lost. Burn rate is one of the key elements for estimation. This calculation shows how
quickly the team is actually completing planned work and how much the rate varies from
day to day, or iteration to iteration.
Stories Progress
Stories Overview
Bug Status
Unplanned work
PAGE 12
Bug trends
Reactivations
As the team resolves and closes bugs, you can use the Reactivations report to determine how
effectively the team is fixing bugs. Reactivations generally refer to bugs that have been resolved
or closed prematurely and then reopened. The reactivation rate is also referred to as the fault
feedback ratio.
Triage
Velocity
As the following illustration shows, a velocity graph shows the amount of effort that your team
has reported as complete for each sprint. The source of the raw data is your product backlog.
Each sprint that has been assigned to the team project or to the team appears along the
horizontal axis. The vertical axis indicates the sum of all effort for all backlog items assigned to the
indicated sprint that have been closed (State=Done). The vertical axis shows effort in whatever
unit your team uses (for example, story points, size, or hours).
PAGE 13
Magic Quadrant for Application Development Life Cycle
The application development life cycle management (ADLM) tool market focuses on the planning
and governance activities of the software development life cycle (SDLC)
Key elements of an ADLM solution include:
Software requirements definition and management
Software change and configuration management
Software project planning, with a current focus on agile planning
Work item management
Quality management, including defect management
Other key capabilities include:
Reporting
Workflow
Integration to version management
Support for wikis and collaboration
Strong facilities for integration to other ADLM tools
Few of the vendors offers all the features listed above. The diagram below shows the magic
quadrant of the players and the position based on their tools.
PAGE 14