Feature driven development using vsts and cognizant fdd templates
This presentation is the property of its rightful owner.
Sponsored Links
1 / 51

Feature Driven Development using VSTS and Cognizant FDD templates PowerPoint PPT Presentation


  • 111 Views
  • Uploaded on
  • Presentation posted in: General

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.

Download Presentation

Feature Driven Development using VSTS and Cognizant FDD templates

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Feature driven development using vsts and cognizant fdd templates

Feature Driven Development using VSTS and Cognizant FDD templates

Santosh Shindhe

Sr. Architect | Cognizant Technology Solutions


Agenda

Agenda

  • Software development is not easy

  • Expectations

  • Development model

  • Feature Driven Development Model

  • Cognizant’s FDD

  • Cognizant’s FDD and VSTS


Agenda1

Agenda

  • Software development is not easy

  • Expectations

  • Development model

  • Feature Driven Development Model

  • Cognizant’s FDD

  • Cognizant’s FDD and VSTS


Software development is not easy

Software development is not easy


Software development is not easy1

Software development is not easy

  • Software development organization

  • Many development methodologies

  • Various infrastructure and tools

  • Project management

  • Changing and unclear requirements

  • Communication challenges

  • Effort variation

  • Involves people


Agenda2

Agenda

  • Software development is not easy

  • Expectations

  • Development model

  • Feature Driven Development Model

  • Cognizant’s FDD

  • Cognizant’s FDD and VSTS


Product manager or client

Product Manager or Client

I would like to see progress constantly & frequently

I would like to know what can be shipped tomorrow

My budget might allow me to do work for next 6 months

My current requirement is different than what I had earlier


Project manager

Project Manager

I have to provide status

How 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 days

Who can tell me exact status of a feature?


Architect

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 complexity

Adhere to the architecture and design guidelines, here is the reference document


Developer

Developer

When did this requirement come, I did not know

I have already performed unit testing, it’s just that I don’t know how can I show it

Well, I feel it may take 4 days, not sure though

Was I suppose to do it?!!!

It may impact component A and B, can I tell you tomorrow?


Tester

Tester

Every time I have to customize the test report, it’s a along process

Wish there was easy way for me to generate test data

Wish I could trace this bug to a feature easily

Can I automate testing?


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.


Agenda3

Agenda

  • Software development is not easy

  • Expectations

  • Development model

  • Feature Driven Development Model

  • Cognizant’s FDD

  • Cognizant’s FDD and VSTS


I ngradiants of model

Ingradiants of Model

  • Process

  • People

  • Tools

  • Infrastructure

  • Technology

  • Budget


Inefficient model

Inefficient model


Good model

Good model


Essentials of good model

Essentials of good model

  • Can blend well with organization process

  • Allows customization

  • Focuses on repeatability, consistency and predictability

  • Designed for people and project

  • Can act as early litmus test to identify failure

  • Allows correction based on recent on-project experience


Agenda4

Agenda

  • Software development is not easy

  • Expectations

  • Development model

  • Feature Driven Development Model

  • Cognizant’s FDD

  • Cognizant’s FDD and VSTS


Feature driven development

Feature Driven Development

  • Uses small client-valued functions called “features”

  • Can be implemented in 2-3 weeks

  • Enables inspection, tracking & reporting, course correction


Fdd model

FDD - Model

  • Consists of model for the product

  • Has requirements, use cases and story board at large


Fdd feature list

FDD – Feature list

  • Requirements are translated into features

  • The features are ordered and prioritized for realization

  • Related features can be grouped in feature-set


Fdd plan

FDD – Plan

  • Delivery plan is based on features

  • Teams are formed based on feature and technology need


Fdd design

FDD – Design

  • Features are designed progressively

  • Design has to ensure existing implementation is not tarnished


Fdd build

FDD – Build

  • Development happens based on features

  • Progress is reported based on features


Fdd delivery

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


Agenda5

Agenda

  • Software development is not easy

  • Expectations

  • Development model

  • Feature Driven Development Model

  • Cognizant’s FDD

  • Cognizant’s FDD and VSTS


Why fdd

Why FDD?

  • Development model can be used along with Agile or classic life cycle process

  • Allows incremental, repeatable and progressive outcomes

  • Can be applied for small to large scale development teams

  • Allows traceability of feature against a requirement

  • Can be customized for custom business software development


Cognizant fdd extension

Cognizant FDD Extension

  • The design and implementation of a feature should not upset the overall structure

  • Component 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)


Cognizant fdd extension1

Cognizant FDD Extension…

  • Solution more often requires integration with other systems that may not be based on ideal model

  • Provided a model is defined first, the subsequent development can be iterative and better predictable

  • Change management and bug reporting is part of development

  • Additional support for CMM-5 process support and roles


Cognizant fdd extension2

Cognizant FDD Extension…


D efinition phase activities

Definition phase activities


Cognizant fdd process flow

Cognizant FDD Process Flow


Cognizant fdd process flow1

Cognizant FDD Process Flow…

  • Requirements: Functional and non-functional requirements are gathered and used as input for next stage

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

  • 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.

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


Cognizant fdd process flow2

Cognizant FDD Process Flow…

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

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

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

  • Component outside feature are not touched or modified by feature owner

  • On need basis stubs might be created

  • Marks the iterative process


Cognizant fdd process flow3

Cognizant FDD Process Flow…

  • 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.

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

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


Cognizant fdd and users

Cognizant FDD and users

  • Architect – define architecture and high level component model definition

  • Domain expert – conduct domain walkthrough and guide developers

  • Feature owner – translate features to requirements and interact with developers to complete feature

  • Designer – preparation of high level design for all services and detailed design for features along with code reviews


Cognizant fdd and users1

Cognizant FDD and users…

  • Developer – implement the application and unit testing

  • Tester – assess requirements testability, create/manage test plan and test cases. Certify feature qualification for release

  • Project manager – planning, scheduling, monitoring progress and reporting. Will prioritize requirements based on customer interaction


Agenda6

Agenda

  • Software development is not easy

  • Expectations

  • Development model

  • Feature Driven Development Model

  • Cognizant’s FDD

  • Cognizant’s FDD and VSTS


Why vsts and tfs

Why VSTS and TFS?

  • Infrastructure for development

  • Easy process and tools blend

  • Familiar set of tools

  • Increased Transparency

  • Collaboration platform

  • Support for distributed teams

  • Real time reporting & Risk analysis

  • End-to-end ALM process customization possibilities including builds and quality


Key technical reasons

Key technical reasons

  • Source code manage

  • Unit testing

  • Code profiling

  • Code coverage

  • Static analysis

  • Database testing

  • Test data generation

  • Manual testing

  • Web Testing

  • Load testing


Cognizant fdd on vsts

Cognizant FDD on VSTS


Cognizant fdd on vsts1

Cognizant FDD on VSTS…

  • Methodology database – repository of all databases

  • Work items database – work items of Cognizant FDD and attributes

  • Reports – out of the box common FDD related reports

  • Team portal – customized process guidance along with templates like architecture, design for reference.

  • Visual Studio – templates for role based process workflow and messages


New project and cognizant fdd

New project and Cognizant FDD

  • Initial tasks

  • Work item types and behavior (states and transition)

  • Groups and permissions

  • Queries

  • Reporting site

  • Team portal with document templates, process guidance & web parts for reports

  • Source control repository


State transition feature work item

State transition - feature work item


State transition change work item

State transition – Change work item


Work items

DEMO

Work items

Code profiling

Code complexity

Build

Feature work item

Change work item

Reports


Vsts inherent features fdd

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 product

  • Multiple solution files – help in getting only what is required by a feature team

  • Team project – helps in isolating focused development groups


References

References

  • Cognizant FDD

    http://www.cognizant.com/html/content/microsoft/techfddvsts.asp

  • Customizing process templates

    http://msdn.microsoft.com/en-us/library/ms243782.aspx

  • TFS Guide

    http://www.codeplex.com/TFSGuide


Feedback qna

Feedback / QnA

  • Your 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!


Contact

Contact

  • Email Address

    [email protected]


  • Login