The Visual Studio Vision Foster a vibrant partner ecosystem Build the right product for customers Improve software team communication Reduce development complexity
The Software Lifecycle What We’ve Heard “Building software today is very difficult” “Building software today is very difficult” “My team is spread out and specialized” “My team is spread out and specialized” “Tools today don’t work well together” “Tools today don’t work well together” “I need to be able to predict the success of my projects” “I need to be able to predict the success of my projects” “My organization needs customizable process guidance” “My organization needs customizable process guidance”
Infrastructure Architect Project Manager Developer Tester Solution Architect Business Stakeholder Silos in the IT Lifecycle
Development Teams Infrastructure Architect Solution Architect Project Manager Developer Tester End User
Communication Barriers Pockets of information within disciplines Pockets of information within disciplines Unclear delineation of responsibilities Unclear delineation of responsibilities Conflicting best practices and architectures Conflicting best practices and architectures Conflicting strategic goals and objectives Conflicting strategic goals and objectives SolutionArchitect InfrastructureArchitect IT Operations doesn’t understand application structure Developers don’t understand operations policy Reduce complexity through operations knowledge Increase communication and collaboration via product integration
Core Tenets to Success Tools need to… Tools need to… …reduce the complexity of delivering modern service-oriented solutions …be tightly integrated and facilitate better team collaboration …enable customization and extensibility by organizations and ISVs
Expanding Visual Studio Increased Reliability Quality Early & Often Predictability & Visibility Design for Operations Project Manager Solution Architect Developer Tester Infrastructure Architect
Visual Studio Team System Change ManagementWork Item TrackingReportingProject Site Visual Studio Team Foundation Integration ServicesProject Management Process and Architecture Guidance Dynamic Code Analyzer Visual Studio Team Architect Static Code AnalyzerCode ProfilerUnit TestingCode CoverageVisio and UML ModelingTeam Foundation Client (includes CAL)Visual Studio Professional EditionLoad TestingManual TestingTest Case ManagementApplication DesignerLogical Infra. DesignerDeployment Designer Visual Studio Team Developer Visual Studio Team Test Visual Studio Industry Partners Big BuildClass Designer
Visual Studio Team System Process and Architecture Guidance Visual Studio Industry Partners Dynamic Code Analyzer Visual Studio Team Architect Static Code AnalyzerCode ProfilerUnit TestingCode CoverageVisio and UML ModelingTeam Foundation Client (includes CAL)Visual Studio Professional EditionClass ModelingLoad TestingManual TestingTest Case ManagementApplication ModelingLogical Infra. ModelingDeployment Modeling Visual Studio Team Developer Visual Studio Team Test Application DesignerLogical Infra. Designer Deployment DesignerClass Designer Change ManagementWork Item TrackingReportingProject Site Visual Studio Team Foundation Integration ServicesProject ManagementBig Build
Team Architect Edition Distributed Application Designer Distributed Application Designer Whiteboard mode for application design Web Services Enhancements (WSE) support Validation against logical infrastructure Logical Infrastructure Designer Logical Infrastructure Designer Settings and constraints editor SDM generation and compiler Click-once support Class Designer Class Designer Two-way code synchronization
Team Architect Edition Problem Space Customers have communication problems between Customers have communication problems between Architects and Developers Developers do not work within architectural guidelines Development and Operations Deployment problems caught too late Customers recognize value of modeling tools Customers recognize value of modeling tools Visualization of designs Higher level abstractions simply design and development Generation `of code and other artifacts can improve productivity Modeling tools have poor history of success Modeling tools have poor history of success Positive: good for documentation Negative: CASE baggage, round-tripping complexities, not used for software development
Team Architect Edition Key scenarios Key scenarios Design connected systems “Design for Operations” Code visualization Documentation and conceptual drawings UML and more UML and more UML tools for software documentation DSLs tools for precise software development DSL tools DSL tools Distributed Systems Designers Service Oriented Application Designer Deployment Designer Logical Infrastructure Designer Class Designer Common Features Multiple artifact generation Continuous synchronization Design-first mode SDM schema underlies Distributed System Designers
Application Designer Service-Oriented Architecture model Port Details editor
Logical Infrastructure Designer Services assigned to logical infrastructure Architecture validated against operational settings and constraints
Class Designer Class Designer and two-way code synch
Team Architect Edition V2 Roadmap Support for Indigo service framework Support for Indigo service framework Contract Designer Contract Designer Business Process Designer Business Process Designer Pattern engine Pattern engine
Team Architect Edition Partner Opportunities Designer extensibility Designer extensibility Extend SDM schema Add constraints Build new designers using MDF framework Build new designers using MDF framework Tool-building tools Plan to make available post-Whidbey
Visual Studio Team System Process and Architecture Guidance Visual Studio Industry Partners Dynamic Code Analyzer Visual Studio Team Architect Static Code AnalyzerCode ProfilerUnit TestingCode CoverageVisio and UML ModelingTeam Foundation Client (includes CAL)Visual Studio Professional EditionClass DesignerLoad TestingManual TestingTest Case ManagementApplication DesignerLogical Infra. DesignerDeployment Designer Visual Studio Team Developer Visual Studio Team Test Dynamic Code AnalyzerStatic Code Analyzer Code Profiler Unit TestingCode Coverage Change ManagementWork Item TrackingReportingProject Site Visual Studio Team Foundation Integration ServicesProject ManagementBig Build
Team Developer Edition Static code analysis Static code analysis Support for managed and native code Code profiling Code profiling Sequence view examines running threads GC view of object allocation and lifetime Caller-callee, callstack, and function views Code coverage Code coverage Integrated unit testing and framework Integrated unit testing and framework
Team Developer Edition Problem Space Customers lack predictability and productivity in the lifecycle of their applications Customers lack predictability and productivity in the lifecycle of their applications Customers are forced to context switch between coding and lifecycle and other engineering activities Customers are forced to use multiple tools Customers are forced to enter project-specific data many different times in many different places Customers want to avoid defects Customers want to avoid defects Defects are caught late, sometimes too late for action
Team Developer Edition The Tools the Microsoft Uses The Tools the Microsoft Uses Features Features Static code analysis Support for managed and native code PREfast used in Trustworthy Computing Code Reviews FxCop used to develop.NET framework Code profiling Based on two internal profilers: Instrumented – IceCAP, used by Windows Base and SQL Server Sampling – LOP, used throughout MX, including Xbox Includes ETW events Sequence view examines running threads GC view of object allocation and lifetime Caller-callee, callstack, and function views Code coverage Basic Block Coverage Based on the BBCover technology that Windows & Visual Studio use Application Verifier
Static Code Analysis Static Code Analyzer
Code Coverage
Unit Testing Integrated Unit Testing
Team Developer Edition V2 Roadmap Runtime Analysis: Runtime Analysis: System level profiling and application monitoring Integration of runtime analysis with operations Static Analysis: Static Analysis: Editor integration (Squigglies) More rules & targets
Visual Studio Team System Process and Architecture Guidance Visual Studio Industry Partners Dynamic Code Analyzer Visual Studio Team Architect Static Code AnalyzerCode ProfilerUnit TestingCode CoverageVisio and UML ModelingTeam Foundation Client (includes CAL)Visual Studio Professional EditionLoad TestingManual TestingTest Case ManagementApplication DesignerLogical Infra. DesignerDeployment Designer Visual Studio Team Developer Visual Studio Team Test Load TestingManual Testing Test Case Management Change ManagementWork Item TrackingReportingProject Site Visual Studio Team Foundation Integration ServicesProject ManagementBig BuildClass Designer
Team Test Edition Load testing Load testing Web services load testing via protocol- based script Load patterns: constant, step, custom Perf counter collection and threshold monitoring Test case management Test case management Application Verifier Application Verifier
Team Test Edition Problem Space Poorly written applications reflect poorly on the platform Poorly written applications reflect poorly on the platform Testers are underserved and second class in Microsoft’s tools Testers are underserved and second class in Microsoft’s tools Testing tools products lag behind Visual Studio Little integrated support for developer testing; defects are caught late, sometimes too late for action Testing is not integrated into the lifecycle Testing is not integrated into the lifecycle Developer Tools and Testing Tools vendors are rarely the same Testing is isolated from development by processes and tools There is no common vocabulary or view of data for rich analytics
Team Test Edition Testing is 1 st class in Visual Studio Testing is 1 st class in Visual Studio Tests are Source Code Tests are Source Code Test Authoring & Execution Environment Test Authoring & Execution Environment Test View Test Explorer (Test Case Management UI) Load testing Load testing Web services load testing via protocol-based script Load patterns: constant, step, custom Perf counter collection and threshold monitoring Unit Testing Unit Testing Similar to NUnit
Load Testing Creation Load Testing Web recorder Load Testing Web recorder
Load Testing Perf Counter integration and monitoring Load Testing
Test Case Management
Team Test Edition V2 Roadmap Functional UI testing Functional UI testing For Avalon, Windows.Forms, Win32, and IE Test Lab management Test Lab management Setup, tear down, distribution, and baselining Historical code coverage trends on a per-method basis Historical code coverage trends on a per-method basis Test case prioritization Test case prioritization
Visual Studio Team System Process and Architecture Guidance Visual Studio Industry Partners Change ManagementWork Item TrackingReportingProject SiteIntegration ServicesProject ManagementDynamic Code Analyzer Visual Studio Team Architect Static Code AnalyzerCode ProfilerUnit TestingCode CoverageVisio and UML ModelingTeam Foundation Client (includes CAL)Visual Studio Professional EditionLoad TestingManual TestingTest Case ManagementApplication DesignerLogical Infra. DesignerDeployment Designer Visual Studio Team Developer Visual Studio Team Test Change ManagementWork Item Tracking Reporting Visual Studio Team Foundation Big BuildClass Designer
Team Foundation Portfolio creation and navigation Portfolio creation and navigation Project Creation Wizard Process editor for customized guidance Project management Project management Microsoft Project and Excel integration Change management Change management Branching, changesets, shelving Migration from ClearCase and VSS Reporting and analytics Reporting and analytics Project portal Project portal
Team Foundation Problem Space Fragmented information Fragmented information Can’t relate and query work items, work, processes and artifacts Tools sets are incomplete or poorly integrated Difficulty integrating tools with existing infrastructure Communication is manual Communication is manual People use the phone or face-to-face Information is not captured Distributed development aggravates the problem Life cycle tools are expensive and complex Life cycle tools are expensive and complex Tools are difficult to learn and use Developers view tools as “overhead” Administration costs are high
Team Foundation Solution Fragmented information Fragmented information Communication is manual Communication is manual Life cycle tools are expensive and complex Life cycle tools are expensive and complex Integrated Information Integrated Information Automated Data Capture Complete Lifecycle Toolset Common Linking Service Extensible Team Foundation SDK with web service based APIs Stream-lined communication Stream-lined communication Common Project Portal Cross Tool Queries and Reports Common Notification Service Access over the internet Easy to use and cost effective Easy to use and cost effective Deep UI integration with familiar tools Developer-centric capabilities Easy to setup and administer
Team Foundation Capabilities Work item tracking Work item tracking Easy, Integrated into development process Design your own process – Fields, Forms, States, Rules Extensive linking – bugs, reports, artifacts Notifications Source Code Control Source Code Control Easy, integrated into development environment Integrated check in experience Scalable and robust Parallel development Notifications Build automation Build automation Scripted “nightly” build Reporting Integrates many of the Team System tools Metrics warehouse Metrics warehouse Automatic data collection OLAP reporting Trending, aggregation & drilldown Project portal Project portal Single place to go for high-level project information Web access work items WSS based
Work Items Everywhere Author work items in Microsoft Excel Work items show up in Visual Studio Assign work items to resources using Microsoft Project View project status in Microsoft Excel or Microsoft Project
Change Management Check In “Shelve” work in progress Build rules enforced during check-in process
Build Server Build Server
Reporting Reporting
Project Portal SharePoint-based Project Portal
Project Creation Project Creation Wizard
MSF version 4.0 is… The right content for the right person at the right time 1. Instantiation of an agile software development process 2. Instantiation of a formal software development process 3. Framework for GSIs and customers to implement custom software development process 4. Harvests proven guidance from in- & outside of MS
Methodology Template Delivered via Team Foundation Server Delivered via Team Foundation Server Contains: Contains: Work Item Types, workflow Check In Policy Specification Templates Reports Groups & Permissions Integrated Help Phase Exit Criteria Exposed within Help Exposed within Help
Team Foundation V2 Roadmap Work flow Work flow Automated Check in acceptance testing, approval and review Inter-work item flow Advanced Distributed development Advanced Distributed development Replication, Offline Better traceability Better traceability
Visual Studio Team System Process and Architecture Guidance Visual Studio Industry Partners Change ManagementWork Item TrackingReportingProject SiteIntegration ServicesProject ManagementDynamic Code Analyzer Visual Studio Team Architect Static Code AnalyzerCode ProfilerUnit TestingCode CoverageVisio and UML ModelingTeam Foundation Client (includes CAL)Visual Studio Professional EditionLoad TestingManual TestingTest Case ManagementApplication DesignerLogical Infra. DesignerDeployment Designer Visual Studio Team Developer Visual Studio Team Test Project Site Work Item Tracking ReportingProject Management Visual Studio Team Foundation Big BuildClass Designer
Project Management Problem Space Gaps in translating work Gaps in translating work Team is disconnected Team is disconnected Tracking, not managing Tracking, not managing Difficult to implement process changes Difficult to implement process changes
Project Management Goals Shape the Project Shape the Project Office Integration Rich Reporting Instrument the Process Instrument the Process MSF 4.0 Integration Process Customization
MSF version 4.0 is… The right content for the right person at the right time 1. Instantiation of an agile software development process 2. Instantiation of a formal software development process 3. Framework for GSIs and customers to implement custom software development process 4. Harvests proven guidance from in- & outside of MS
Team System Integration Delivered via Team Foundation Server Delivered via Team Foundation Server Methodology Templates Methodology Templates Work Item Types, workflow Check In Policy Specification Templates Reports Groups & Permissions Integrated Help Phase Exit Criteria Exposed within Help Exposed within Help Updated from MSDN Updated from MSDN Book series: Addison Wesley & MS Learning Book series: Addison Wesley & MS Learning
Project Creation Project Creation Wizard
Project Management Author work items in Microsoft Excel Work items show up in Visual Studio Assign work items to resources using Microsoft Project View project status in Microsoft Excel or Microsoft Project
Change Management Check In “Shelve” work in progress Build rules enforced during check-in process
Project Portal SharePoint-based Project Portal
Team System Partner Integration Improved shell extensibility model Improved shell extensibility model Source code control integration Plug-in and add-in integration Web services for lifecycle integration Web services for lifecycle integration Share data with other lifecycle tools Published schemas for modeling “Shallow” extensibility for designers
Pricing Design Philosophy Existing MSDN Universal customers can get: Visual Studio Team Developer OR Team Architect OR Team Test at or near current Subscription price Existing MSDN Universal customers can get: Visual Studio Team Developer OR Team Architect OR Team Test at or near current Subscription price Visual Studio Team Suite “Step Up” pricing Developer Near same price Architect Near same price Test Near same price MSDN Universal oror Team Foundation Server/CAL Team Foundation available separately on a Server/CAL pricing model Team Foundation available separately on a Server/CAL pricing model Each Team System client product includes one CAL for Team Foundation
Broad Industry Support
Developer Roadmap Windows“Longhorn”
Our Philosophy Commitment to… Community involvement in design Overall customer satisfaction Increased partner readiness Transparency in features and roadmap
Questions Prashant Sridharan, prashant