feature driven development using vsts and cognizant fdd templates
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 PresentationTRANSCRIPT
Feature Driven Development using VSTS and Cognizant FDD templates
Santosh ShindheSr. Architect | Cognizant Technology Solutions
AgendaSoftware development is not easyExpectationsDevelopment modelFeature Driven Development ModelCognizant’s FDDCognizant’s FDD and VSTS
AgendaSoftware development is not easyExpectationsDevelopment modelFeature Driven Development ModelCognizant’s FDDCognizant’s FDD and VSTS
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)
Software development is not easy
Software development organizationMany development methodologiesVarious infrastructure and toolsProject managementChanging and unclear requirementsCommunication challengesEffort variationInvolves people
AgendaSoftware development is not easyExpectationsDevelopment modelFeature Driven Development ModelCognizant’s FDDCognizant’s FDD and VSTS
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
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?
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
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?
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?
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.
AgendaSoftware development is not easyExpectationsDevelopment modelFeature Driven Development ModelCognizant’s FDDCognizant’s FDD and VSTS
Ingradiants of ModelProcessPeopleToolsInfrastructureTechnologyBudget
Inefficient model
Software Developing
Organization Process
Application Development Model
Team
ToolsInfrastructure
Product Owner or Client
Project Manager
Software Owner Organization
Process
Good model
Software Developing
Organization Process
Application Development Model
Team
ToolsInfrastructure
Product Owner or Client
Project Manager
Software Owner Organization
Process
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
AgendaSoftware development is not easyExpectationsDevelopment modelFeature Driven Development ModelCognizant’s FDDCognizant’s FDD and VSTS
Feature Driven DevelopmentUses small client-valued functions called “features”Can be implemented in 2-3 weeksEnables inspection, tracking & reporting, course correction
FDD - Model
•Consists of model for the product•Has requirements, use cases and story board at large
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
•Delivery plan is based on features•Teams are formed based on feature and technology need
FDD – Design
•Features are designed progressively•Design has to ensure existing implementation is not tarnished
FDD – Build
•Development happens based on features•Progress is reported based on features
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
AgendaSoftware development is not easyExpectationsDevelopment modelFeature Driven Development ModelCognizant’s FDDCognizant’s FDD and VSTS
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
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)
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
Cognizant FDD Extension…
Definition phase activities
Cognizant FDD Process Flow
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
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
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.
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
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
AgendaSoftware development is not easyExpectationsDevelopment modelFeature Driven Development ModelCognizant’s FDDCognizant’s FDD and VSTS
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
Key technical reasonsSource code manageUnit testingCode profilingCode coverageStatic analysisDatabase testingTest data generationManual testingWeb TestingLoad testing
Cognizant FDD on VSTS
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
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
State transition - feature work item
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
Work items
-Code profiling-Code complexity-Build-Feature work item-Change work item-Reports
DEMO
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
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
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!
ContactEmail [email protected]
© 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.