+ All Categories
Home > Documents > Agile Methodology - rajmanickam.files.wordpress.com€¦ · Agile methodology lies on the adaptive...

Agile Methodology - rajmanickam.files.wordpress.com€¦ · Agile methodology lies on the adaptive...

Date post: 17-Aug-2020
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
15
[email protected] | Agile Methodology | March 25, 2015 Agile Methodology APPLICATION DEVELOPMENT - – PROCESS, PRACTICES, AND TOOLS.
Transcript
Page 1: Agile Methodology - rajmanickam.files.wordpress.com€¦ · Agile methodology lies on the adaptive side of the continuum. One of the adaptive is rolling wave approach to schedule

[email protected] | Agile Methodology | March 25, 2015

Agile Methodology APPLICATION DEVELOPMENT - – PROCESS, PRACTICES, AND

TOOLS.

Page 2: Agile Methodology - rajmanickam.files.wordpress.com€¦ · Agile methodology lies on the adaptive side of the continuum. One of the adaptive is rolling wave approach to schedule

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 3: Agile Methodology - rajmanickam.files.wordpress.com€¦ · Agile methodology lies on the adaptive side of the continuum. One of the adaptive is rolling wave approach to schedule

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 4: Agile Methodology - rajmanickam.files.wordpress.com€¦ · Agile methodology lies on the adaptive side of the continuum. One of the adaptive is rolling wave approach to schedule

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 5: Agile Methodology - rajmanickam.files.wordpress.com€¦ · Agile methodology lies on the adaptive side of the continuum. One of the adaptive is rolling wave approach to schedule

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 6: Agile Methodology - rajmanickam.files.wordpress.com€¦ · Agile methodology lies on the adaptive side of the continuum. One of the adaptive is rolling wave approach to schedule

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 7: Agile Methodology - rajmanickam.files.wordpress.com€¦ · Agile methodology lies on the adaptive side of the continuum. One of the adaptive is rolling wave approach to schedule

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 8: Agile Methodology - rajmanickam.files.wordpress.com€¦ · Agile methodology lies on the adaptive side of the continuum. One of the adaptive is rolling wave approach to schedule

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 9: Agile Methodology - rajmanickam.files.wordpress.com€¦ · Agile methodology lies on the adaptive side of the continuum. One of the adaptive is rolling wave approach to schedule

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 10: Agile Methodology - rajmanickam.files.wordpress.com€¦ · Agile methodology lies on the adaptive side of the continuum. One of the adaptive is rolling wave approach to schedule

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 11: Agile Methodology - rajmanickam.files.wordpress.com€¦ · Agile methodology lies on the adaptive side of the continuum. One of the adaptive is rolling wave approach to schedule

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 12: Agile Methodology - rajmanickam.files.wordpress.com€¦ · Agile methodology lies on the adaptive side of the continuum. One of the adaptive is rolling wave approach to schedule

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 13: Agile Methodology - rajmanickam.files.wordpress.com€¦ · Agile methodology lies on the adaptive side of the continuum. One of the adaptive is rolling wave approach to schedule

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 14: Agile Methodology - rajmanickam.files.wordpress.com€¦ · Agile methodology lies on the adaptive side of the continuum. One of the adaptive is rolling wave approach to schedule

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 15: Agile Methodology - rajmanickam.files.wordpress.com€¦ · Agile methodology lies on the adaptive side of the continuum. One of the adaptive is rolling wave approach to schedule

PAGE 14


Recommended