![Page 1: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/1.jpg)
Feature Driven Development using VSTS and Cognizant FDD templates
Santosh ShindheSr. Architect | Cognizant Technology Solutions
![Page 2: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/2.jpg)
AgendaSoftware development is not easyExpectationsDevelopment modelFeature Driven Development ModelCognizant’s FDDCognizant’s FDD and VSTS
![Page 3: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/3.jpg)
AgendaSoftware development is not easyExpectationsDevelopment modelFeature Driven Development ModelCognizant’s FDDCognizant’s FDD and VSTS
![Page 4: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/4.jpg)
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: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/5.jpg)
Software development is not easy
Software development organizationMany development methodologiesVarious infrastructure and toolsProject managementChanging and unclear requirementsCommunication challengesEffort variationInvolves people
![Page 6: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/6.jpg)
AgendaSoftware development is not easyExpectationsDevelopment modelFeature Driven Development ModelCognizant’s FDDCognizant’s FDD and VSTS
![Page 7: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/7.jpg)
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: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/8.jpg)
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: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/9.jpg)
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: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/10.jpg)
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: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/11.jpg)
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: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/12.jpg)
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: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/13.jpg)
AgendaSoftware development is not easyExpectationsDevelopment modelFeature Driven Development ModelCognizant’s FDDCognizant’s FDD and VSTS
![Page 14: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/14.jpg)
Ingradiants of ModelProcessPeopleToolsInfrastructureTechnologyBudget
![Page 15: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/15.jpg)
Inefficient model
Software Developing
Organization Process
Application Development Model
Team
ToolsInfrastructure
Product Owner or Client
Project Manager
Software Owner Organization
Process
![Page 16: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/16.jpg)
Good model
Software Developing
Organization Process
Application Development Model
Team
ToolsInfrastructure
Product Owner or Client
Project Manager
Software Owner Organization
Process
![Page 17: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/17.jpg)
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: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/18.jpg)
AgendaSoftware development is not easyExpectationsDevelopment modelFeature Driven Development ModelCognizant’s FDDCognizant’s FDD and VSTS
![Page 19: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/19.jpg)
Feature Driven DevelopmentUses small client-valued functions called “features”Can be implemented in 2-3 weeksEnables inspection, tracking & reporting, course correction
![Page 20: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/20.jpg)
FDD - Model
•Consists of model for the product•Has requirements, use cases and story board at large
![Page 21: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/21.jpg)
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: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/22.jpg)
FDD – Plan
•Delivery plan is based on features•Teams are formed based on feature and technology need
![Page 23: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/23.jpg)
FDD – Design
•Features are designed progressively•Design has to ensure existing implementation is not tarnished
![Page 24: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/24.jpg)
FDD – Build
•Development happens based on features•Progress is reported based on features
![Page 25: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/25.jpg)
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: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/26.jpg)
AgendaSoftware development is not easyExpectationsDevelopment modelFeature Driven Development ModelCognizant’s FDDCognizant’s FDD and VSTS
![Page 27: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/27.jpg)
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: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/28.jpg)
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: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/29.jpg)
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 33: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/33.jpg)
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: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/34.jpg)
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: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/35.jpg)
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: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/36.jpg)
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: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/37.jpg)
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: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/38.jpg)
AgendaSoftware development is not easyExpectationsDevelopment modelFeature Driven Development ModelCognizant’s FDDCognizant’s FDD and VSTS
![Page 39: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/39.jpg)
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: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/40.jpg)
Key technical reasonsSource code manageUnit testingCode profilingCode coverageStatic analysisDatabase testingTest data generationManual testingWeb TestingLoad testing
![Page 42: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/42.jpg)
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: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/43.jpg)
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 45: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/45.jpg)
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: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/46.jpg)
Work items
-Code profiling-Code complexity-Build-Feature work item-Change work item-Reports
DEMO
![Page 47: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/47.jpg)
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 48: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/48.jpg)
ReferencesCognizant FDD
http://www.cognizant.com/html/content/microsoft/techfddvsts.asp
Customizing process templateshttp://msdn.microsoft.com/en-us/library/ms243782.aspx
TFS Guidehttp://www.codeplex.com/TFSGuide
![Page 49: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/49.jpg)
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: Santosh Shindhe Sr. Architect | Cognizant Technology Solutions](https://reader035.vdocuments.us/reader035/viewer/2022062402/5a4d1ba77f8b9ab0599c972c/html5/thumbnails/51.jpg)
© 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.