Presented by Presented by
Kashif Akram Kashif Akram
User Group Lead – User Group Lead –
www.dev30.com
Developed by Developed by
Developer Evangelist Team Developer Evangelist Team
MicrosoftMicrosoft
An Integrated Approach to An Integrated Approach to
Application Lifecycle Management Application Lifecycle Management
Why I'm Here – Profile Why I'm Here – Profile
Have experience in project management and Have experience in project management and
execution as a Technical Project Manager execution as a Technical Project Manager
Part of the SCAMPI CLASS “A” Audit Team for Part of the SCAMPI CLASS “A” Audit Team for
CMMi level 4&5CMMi level 4&5
Currently working as Sr. Architect Currently working as Sr. Architect
Application Lifecycle ManagementApplication Lifecycle Management
Ideal StateIdeal State
Our ApproachOur Approach
PeoplePeople ProcessProcess ToolsTools
Empower teamsEmpower teams
Quality mindsetQuality mindset
Team of peersTeam of peers
Visibility atVisibility at
every levelevery level
AgileAgile
CustomizableCustomizable
LightweightLightweight
PatternsPatterns
and practicesand practices
Highly Highly
integratedintegrated
ProductiveProductive
ExtensibleExtensible
Low adminLow admin
Successful IT organizations take an incremental approach to
improving application development capabilities
Development TeamsDevelopment Teams
DatabaseDatabase
ProfessionalProfessional
SolutionSolution
ArchitectArchitect
Project ManagerProject Manager
DeveloperDeveloper
TesterTester
End UserEnd User
Seven Key benefits Seven Key benefits
Collaborate and communicate Collaborate and communicate
Drive predictability Drive predictability
Manage team workflow Manage team workflow
Use familiar toolsUse familiar tools
Ensure quality , easy and oftenEnsure quality , easy and often
Integrate frequently Integrate frequently
Make real-time decision Make real-time decision
Process Enacted By ToolingProcess Enacted By Tooling
Choose process when Choose process when
creating a new projectcreating a new project
Project ManagementProject Management
Problem SpaceProblem Space
Team CollaborationTeam Collaboration
Tracking and ManagingTracking and Managing
Process ImplementationProcess Implementation
Lack of Visibility and PredictabilityLack of Visibility and Predictability
HighlightsHighlights
Project ManagersProject Managers
One-window process to access to work items, One-window process to access to work items,
documents, reports, team builds and version documents, reports, team builds and version
controlcontrol
Process templates to help manage process Process templates to help manage process
integration and adaption integration and adaption
Full bi-directional synchronization to enable Full bi-directional synchronization to enable
single, real-time view of project statussingle, real-time view of project status
Familiar user interface and tools such as Familiar user interface and tools such as
Microsoft Project and ExcelMicrosoft Project and Excel
Customizable SharePoint Customizable SharePoint
portal for team collaborationportal for team collaboration
Business requirements Business requirements
captured and managed to captured and managed to
enable end-to-end traceabilityenable end-to-end traceability
Full integration into Full integration into
Microsoft Project forMicrosoft Project for
a real-time viewa real-time view
of work itemsof work items
How Far Can We Get In The Available Time?How Far Can We Get In The Available Time?
WorkWork
completedcompleted
WorkWork planned planned
Teamprise explorer Teamprise explorer
running on Linuxrunning on Linux
ArchitectsArchitects
Problem SpaceProblem Space
Visualization of designVisualization of design
Architecture modelingArchitecture modeling
High-quality implementation of designHigh-quality implementation of design
Decreasing deployment complexityDecreasing deployment complexity
“…unexplained lapses between the model and the code introduce gaps
into the SDLC, which undermine the role and utility of the model”
– IDC March 2004
HighlightsHighlights
Software ArchitectsSoftware Architects
Design and validate architectureDesign and validate architecture
Powerful new visual designers. Application Designer, Logical Powerful new visual designers. Application Designer, Logical
Datacenter Designer, Deployment Designer , Class DesignerDatacenter Designer, Deployment Designer , Class Designer
Validate service-oriented solutions against target deployment Validate service-oriented solutions against target deployment
environmentenvironment
Visualize distributed application dependencies and relationshipsVisualize distributed application dependencies and relationships
Effectively communicate design decisionsEffectively communicate design decisions
Integrates with team tools to facilitate better team collaboration and Integrates with team tools to facilitate better team collaboration and
communicationcommunication
Utilize proven development practicesUtilize proven development practices
Leverage integrated guidance, frameworks, and tools from Leverage integrated guidance, frameworks, and tools from
Microsoft’s Microsoft’s patterns & practices patterns & practices teamteam
Design For OperationsDesign For Operations
Validate application design Validate application design
against operational against operational
environment to ensure environment to ensure
successful deploymentsuccessful deployment
Distributed Application ArchitectureDistributed Application Architecture
Visually design, configure, and Visually design, configure, and
validate distributed applicationsvalidate distributed applications
Class DiagramsClass Diagrams
Keep application design documents Keep application design documents
synchronized with code at all timessynchronized with code at all times
Model .NET applications Model .NET applications
with high fidelitywith high fidelity
DevelopersDevelopers
Problem SpaceProblem Space
Lack of productivityLack of productivity
Code qualityCode quality
Ensure design constraintsEnsure design constraints
Lack of testing tools for developersLack of testing tools for developers
Application performanceApplication performance
“Only a dysfunctional development organization would deliberately hand
code with known defects over to a test team.”
– Forrester, May 2004
HighlightsHighlights
Software DevelopersSoftware Developers
Automatic code generator to improve productivityAutomatic code generator to improve productivity
Static code analysis for better code qualityStatic code analysis for better code quality
Performance improvement by using Code Performance improvement by using Code
profiling profiling
Integrated Unit Testing to test class methodsIntegrated Unit Testing to test class methods
Identify coding errors and Identify coding errors and
security vulnerabilitiessecurity vulnerabilities
Managing Work ItemsManaging Work Items
Manage and analyze work items Manage and analyze work items
using Microsoft Excelusing Microsoft Excel
Associate work items with eachAssociate work items with each
check-in to provide traceability from check-in to provide traceability from
requirements to coderequirements to code
Change Management
Discover who last changed a Discover who last changed a
section of code and get detailed section of code and get detailed
change set informationchange set information
Check-In PoliciesCheck-In Policies
Policies enforced by toolingPolicies enforced by tooling
reinforce good development reinforce good development
practicespractices
Build And DeploymentBuild And Deployment
Build verification test Build verification test
results as part of the results as part of the
build processbuild process
Who checkedWho checked
in what?in what?
Data professionals roleData professionals role
Database change managementDatabase change management
Automate database testingAutomate database testing
Database version controllingDatabase version controlling
Database ProfessionalDatabase Professional
Problem SpaceProblem Space
HighlightsHighlights
Database ProfessionalsDatabase Professionals
Bring data professionals into the lifecycleBring data professionals into the lifecycle
Provide full Visual Studio Team System supportProvide full Visual Studio Team System support
Support Work Item tracking for database changesSupport Work Item tracking for database changes
Take control of database changeTake control of database change
Offline, change management of the database schemaOffline, change management of the database schema
Automated refactoring of database objectsAutomated refactoring of database objects
Automate database testing to improve qualityAutomate database testing to improve quality
Unit testing for database queriesUnit testing for database queries
Automatic generation of meaningful test dataAutomatic generation of meaningful test data
Database Change ManagementDatabase Change Management
A new offline Database project A new offline Database project
allows you to work with your allows you to work with your
database schema offline while database schema offline while
full integration with TFS allows full integration with TFS allows
you to manage and version you to manage and version
these changesthese changes
Rename refactoring makes it Rename refactoring makes it
easy to make changes to your easy to make changes to your
database schemadatabase schema
Test Data GenerationTest Data Generation
Data Generation Plans Data Generation Plans
allow you to create allow you to create
meaningful/repeatable meaningful/repeatable
test datatest data
Customizable and extensible Customizable and extensible
generators allow you to create generators allow you to create
data that mimics production datadata that mimics production data
TestersTesters
Problem SpaceProblem Space
Testing in the SDLC/ALMTesting in the SDLC/ALM
Creating test strategyCreating test strategy
Inadequate testing toolsInadequate testing tools
Finding complex bugsFinding complex bugs
“…the later testing starts, the later defects are identified,
and defects that are identified later in the life cycle cost exponentially
more to repair”
– Forrester, May 2004
HighlightsHighlights
Software TestersSoftware Testers
Test Case ManagementTest Case Management
Create test listCreate test list
Organize and Execute testsOrganize and Execute tests
Manual testing Manual testing
Provide script for manual tasksProvide script for manual tasks
Web testingWeb testing
Record and playback interactionsRecord and playback interactions
Load testingLoad testing
Simulate multiple usersSimulate multiple users
Quickly identify executed Quickly identify executed
code paths to determine code paths to determine
effectiveness of unit testseffectiveness of unit tests
Integrated Unit TestingIntegrated Unit Testing
Auto generate unit testsAuto generate unit tests
Web TestingWeb Testing
Sort and manage testsSort and manage tests
Functional web testingFunctional web testing
Browser auto-record
playback
Load TestingLoad Testing
Switch to TableSwitch to Table
view or graphview or graph
Dynamically monitorDynamically monitor
performance characteristicsperformance characteristics
Pre-configuredPre-configured
counter collectionscounter collections
Project ServerProject Server
Third-PartyThird-Party
IDEsIDEs
Web Clients and Web Clients and
XML Web XML Web
ServicesServices
Application Life Cycle Management (ALM) SolutionApplication Life Cycle Management (ALM) Solution