feature driven development using vsts and cognizant fdd templates

51
Feature Driven Development using VSTS and Cognizant FDD templates Santosh Shindhe Sr. Architect | Cognizant Technology Solutions

Upload: keola

Post on 25-Feb-2016

68 views

Category:

Documents


1 download

DESCRIPTION

Feature Driven Development using VSTS and Cognizant FDD templates. Santosh Shindhe Sr. Architect | Cognizant Technology Solutions. Agenda. Software development is not easy Expectations Development model Feature Driven Development Model Cognizant’s FDD Cognizant’s FDD and VSTS. Agenda. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Feature Driven Development using VSTS and Cognizant FDD templates

Feature Driven Development using VSTS and Cognizant FDD templates

Santosh ShindheSr. Architect | Cognizant Technology Solutions

Page 2: Feature Driven Development using VSTS and Cognizant FDD templates

AgendaSoftware development is not easyExpectationsDevelopment modelFeature Driven Development ModelCognizant’s FDDCognizant’s FDD and VSTS

Page 3: Feature Driven Development using VSTS and Cognizant FDD templates

AgendaSoftware development is not easyExpectationsDevelopment modelFeature Driven Development ModelCognizant’s FDDCognizant’s FDD and VSTS

Page 4: Feature Driven Development using VSTS and Cognizant FDD templates

Software development is not easy

1950-60 code and fix (developer demands tools)

1970 water fall – upfront design (teams demand process)

1980 personal computers and reduced cost (teams demand tools again! Along with software distribution)

1990 internet and increased communication with iterative approach (teams demand development tools and process improvements)

2000 – iterative and agile development with increased complexity and geographical spread (team demand process tools, infrastructure, process adoption and familiar environment)

Page 5: Feature Driven Development using VSTS and Cognizant FDD templates

Software development is not easy

Software development organizationMany development methodologiesVarious infrastructure and toolsProject managementChanging and unclear requirementsCommunication challengesEffort variationInvolves people

Page 6: Feature Driven Development using VSTS and Cognizant FDD templates

AgendaSoftware development is not easyExpectationsDevelopment modelFeature Driven Development ModelCognizant’s FDDCognizant’s FDD and VSTS

Page 7: Feature Driven Development using VSTS and Cognizant FDD templates

Product Manager or Client

I would like to see progress constantly & frequentlyI would like to know what can be shipped tomorrowMy budget might allow me to do work for next 6 monthsMy current requirement is different than what I had earlier

Page 8: Feature Driven Development using VSTS and Cognizant FDD templates

Project Manager

I have to provide statusHow can I show constant progress?Can I be more accurate when it comes to estimation?Can I adopt change in requirements?Let me be ready in case developer A is not in office for next 3 daysWho can tell me exact status of a feature?

Page 9: Feature Driven Development using VSTS and Cognizant FDD templates

Architect

Can we check the response time for application, at least for a scenario?Are the coding guidelines for security standards met?Let me check the code complexityAdhere to the architecture and design guidelines, here is the reference document

Page 10: Feature Driven Development using VSTS and Cognizant FDD templates

Developer

When did this requirement come, I did not knowI have already performed unit testing, it’s just that I don’t know how can I show itWell, I feel it may take 4 days, not sure thoughWas I suppose to do it?!!!It may impact component A and B, can I tell you tomorrow?

Page 11: Feature Driven Development using VSTS and Cognizant FDD templates

Tester

Every time I have to customize the test report, it’s a along processWish there was easy way for me to generate test dataWish I could trace this bug to a feature easilyCan I automate testing?

Page 12: Feature Driven Development using VSTS and Cognizant FDD templates

Team

How can we get better at what we do?Can we repeat the same process again, it has produced good results earlier?I think there are many people and changes in plan and status is not reaching to all.It would be good if I can see the status every day or regular interval without waiting for one to prepare it.

Page 13: Feature Driven Development using VSTS and Cognizant FDD templates

AgendaSoftware development is not easyExpectationsDevelopment modelFeature Driven Development ModelCognizant’s FDDCognizant’s FDD and VSTS

Page 14: Feature Driven Development using VSTS and Cognizant FDD templates

Ingradiants of ModelProcessPeopleToolsInfrastructureTechnologyBudget

Page 15: Feature Driven Development using VSTS and Cognizant FDD templates

Inefficient model

Software Developing

Organization Process

Application Development Model

Team

ToolsInfrastructure

Product Owner or Client

Project Manager

Software Owner Organization

Process

Page 16: Feature Driven Development using VSTS and Cognizant FDD templates

Good model

Software Developing

Organization Process

Application Development Model

Team

ToolsInfrastructure

Product Owner or Client

Project Manager

Software Owner Organization

Process

Page 17: Feature Driven Development using VSTS and Cognizant FDD templates

Essentials of good modelCan blend well with organization processAllows customizationFocuses on repeatability, consistency and predictabilityDesigned for people and projectCan act as early litmus test to identify failureAllows correction based on recent on-project experience

Page 18: Feature Driven Development using VSTS and Cognizant FDD templates

AgendaSoftware development is not easyExpectationsDevelopment modelFeature Driven Development ModelCognizant’s FDDCognizant’s FDD and VSTS

Page 19: Feature Driven Development using VSTS and Cognizant FDD templates

Feature Driven DevelopmentUses small client-valued functions called “features”Can be implemented in 2-3 weeksEnables inspection, tracking & reporting, course correction

Page 20: Feature Driven Development using VSTS and Cognizant FDD templates

FDD - Model

•Consists of model for the product•Has requirements, use cases and story board at large

Page 21: Feature Driven Development using VSTS and Cognizant FDD templates

FDD – Feature list

•Requirements are translated into features•The features are ordered and prioritized for realization•Related features can be grouped in feature-set

Page 22: Feature Driven Development using VSTS and Cognizant FDD templates

FDD – Plan

•Delivery plan is based on features•Teams are formed based on feature and technology need

Page 23: Feature Driven Development using VSTS and Cognizant FDD templates

FDD – Design

•Features are designed progressively•Design has to ensure existing implementation is not tarnished

Page 24: Feature Driven Development using VSTS and Cognizant FDD templates

FDD – Build

•Development happens based on features•Progress is reported based on features

Page 25: Feature Driven Development using VSTS and Cognizant FDD templates

FDD – Delivery

•It is iterative process involving delivery of feature in 2-3 weeks span of interval•Delivery aims at shippable product consisting of a feature or a feature set consisting of features

Page 26: Feature Driven Development using VSTS and Cognizant FDD templates

AgendaSoftware development is not easyExpectationsDevelopment modelFeature Driven Development ModelCognizant’s FDDCognizant’s FDD and VSTS

Page 27: Feature Driven Development using VSTS and Cognizant FDD templates

Why FDD?Development model can be used along with Agile or classic life cycle processAllows incremental, repeatable and progressive outcomesCan be applied for small to large scale development teamsAllows traceability of feature against a requirementCan be customized for custom business software development

Page 28: Feature Driven Development using VSTS and Cognizant FDD templates

Cognizant FDD ExtensionThe design and implementation of a feature should not upset the overall structureComponent are also based on design, layers, tiers apart from model. These should focus on NFRs as well.Large scale development teams are usually role based.In ideal scenario developer need not understand the business extensively (most scalable model)

Page 29: Feature Driven Development using VSTS and Cognizant FDD templates

Cognizant FDD Extension…Solution more often requires integration with other systems that may not be based on ideal modelProvided a model is defined first, the subsequent development can be iterative and better predictableChange management and bug reporting is part of developmentAdditional support for CMM-5 process support and roles

Page 30: Feature Driven Development using VSTS and Cognizant FDD templates

Cognizant FDD Extension…

Page 31: Feature Driven Development using VSTS and Cognizant FDD templates

Definition phase activities

Page 32: Feature Driven Development using VSTS and Cognizant FDD templates

Cognizant FDD Process Flow

Page 33: Feature Driven Development using VSTS and Cognizant FDD templates

Cognizant FDD Process Flow…Requirements: Functional and

non-functional requirements are gathered and used as input for next stage

Definition: Functional requirements as input for model, NFRs as input for architecture definition. Together result in architecture and high level design. Fundamental framework is ready.

Feature List: Domain model and functional requirements are the key drivers. Related features may be grouped in to feature-set

Plan by feature: Similar to any project management, only difference is it’s focused on features

Page 34: Feature Driven Development using VSTS and Cognizant FDD templates

Cognizant FDD Process Flow…

Design by feature: Details requirement analysis and expansion. Detailed design including method signature and contracts is defined.1. Component outside feature

are not touched or modified by feature owner

2. On need basis stubs might be created

3. Marks the iterative process

Build By Feature: Developer writes code using detailed design along with unit test cases

Certify By Feature: QA certifies again functional, NFRs and integration with earlier developed features

Page 35: Feature Driven Development using VSTS and Cognizant FDD templates

Cognizant FDD Process Flow…

Release: Multiple features are grouped and are ready for release based on project plan

Client Valued Functions: A potentially shippable product, not a prototype.

Change Request: Unforeseen requirements. These go back to design to ensure integrity

Bugs: Goes back to design similar to change management except the requirements have not changed.

Page 36: Feature Driven Development using VSTS and Cognizant FDD templates

Cognizant FDD and usersArchitect – define architecture and high level component model definitionDomain expert – conduct domain walkthrough and guide developersFeature owner – translate features to requirements and interact with developers to complete featureDesigner – preparation of high level design for all services and detailed design for features along with code reviews

Page 37: Feature Driven Development using VSTS and Cognizant FDD templates

Cognizant FDD and users…Developer – implement the application and unit testingTester – assess requirements testability, create/manage test plan and test cases. Certify feature qualification for releaseProject manager – planning, scheduling, monitoring progress and reporting. Will prioritize requirements based on customer interaction

Page 38: Feature Driven Development using VSTS and Cognizant FDD templates

AgendaSoftware development is not easyExpectationsDevelopment modelFeature Driven Development ModelCognizant’s FDDCognizant’s FDD and VSTS

Page 39: Feature Driven Development using VSTS and Cognizant FDD templates

Why VSTS and TFS?Infrastructure for developmentEasy process and tools blendFamiliar set of toolsIncreased Transparency Collaboration platformSupport for distributed teamsReal time reporting & Risk analysisEnd-to-end ALM process customization possibilities including builds and quality

Page 40: Feature Driven Development using VSTS and Cognizant FDD templates

Key technical reasonsSource code manageUnit testingCode profilingCode coverageStatic analysisDatabase testingTest data generationManual testingWeb TestingLoad testing

Page 41: Feature Driven Development using VSTS and Cognizant FDD templates

Cognizant FDD on VSTS

Page 42: Feature Driven Development using VSTS and Cognizant FDD templates

Cognizant FDD on VSTS…Methodology database – repository of all databasesWork items database – work items of Cognizant FDD and attributes Reports – out of the box common FDD related reportsTeam portal – customized process guidance along with templates like architecture, design for reference.Visual Studio – templates for role based process workflow and messages

Page 43: Feature Driven Development using VSTS and Cognizant FDD templates

New project and Cognizant FDD

Initial tasksWork item types and behavior (states and transition)Groups and permissionsQueriesReporting siteTeam portal with document templates, process guidance & web parts for reportsSource control repository

Page 44: Feature Driven Development using VSTS and Cognizant FDD templates

State transition - feature work item

Page 45: Feature Driven Development using VSTS and Cognizant FDD templates

State transition – Change work itemFrom To Transition Roles involved

New Awaiting approval New change request is raised

Project manager

Awaiting approval Approved Change is approved Project manager

Approved Impact analysis completed

Impact on architecture and design is analyzed

Project manager, Architect, Feature owner, Designer

Impact analysis completed

Design Changes Completed

Design Changes Completed

Project manager, Designer

Design Changes Completed

Design ChangesInspected

Architect certifies changes

Project manager, Designer, Architect

Design ChangesInspected

Code complete Construction is complete Project Manager, Developer

Code complete Code reviewed Code is reviewed Designer, Developer

Code reviewed Unit test complete Unit test cases are modified and executed

Project manager, Developer

Unit test complete Promote to build Ready for testing Project manager, Feature owner

Promote to build Certified Changes are successful Project manager, Tester

Certified Closed Change is complete Project manager, Feature owner

Page 46: Feature Driven Development using VSTS and Cognizant FDD templates

Work items

-Code profiling-Code complexity-Build-Feature work item-Change work item-Reports

DEMO

Page 47: Feature Driven Development using VSTS and Cognizant FDD templates

VSTS inherent features & FDD

Shelving – in general helps in backing up of code on server without check-in. Used along with FDD can help in reviews by shelving feature code.Build – automation enables keeping builds ready for verification as well as to create potentially shippable productMultiple solution files – help in getting only what is required by a feature teamTeam project – helps in isolating focused development groups

Page 49: Feature Driven Development using VSTS and Cognizant FDD templates

Feedback / QnAYour Feedback is Important!Please take a few moments to fill out our

online feedback form

Use the Question Manager on LiveMeeting to ask your questions now!

Page 51: Feature Driven Development using VSTS and Cognizant FDD templates

© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.

The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after

the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.