Upload
kashif-akram
View
903
Download
0
Tags:
Embed Size (px)
Citation preview
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 Application Lifecycle Management Management
Why I'm Here – Profile Why I'm Here – Profile
Have experience in project management Have experience in project management and execution as a Technical Project and execution as a Technical Project Manager Manager
Part of the SCAMPI CLASS “A” Audit Team Part of the SCAMPI CLASS “A” Audit Team for CMMi level 4&5for CMMi level 4&5
Currently working as Sr. Architect Currently working as Sr. Architect
Application Lifecycle ManagementApplication Lifecycle ManagementIdeal StateIdeal State
Our ApproachOur Approach
PeoplePeople ProcessProcess ToolsTools
Empower Empower teamsteams
Quality Quality mindsetmindset
Team of peersTeam of peers
Visibility atVisibility atevery levelevery level
AgileAgile
CustomizableCustomizable
LightweightLightweight
PatternsPatternsand 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
DatabaseDatabaseProfessionalProfessional
SolutionSolutionArchitectArchitect
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 creating a new projectproject
Project ManagementProject ManagementProblem SpaceProblem Space
Team CollaborationTeam Collaboration
Tracking and ManagingTracking and Managing
Process ImplementationProcess Implementation
Lack of Visibility and PredictabilityLack of Visibility and Predictability
HighlightsHighlightsProject ManagersProject Managers
One-window process to access to work One-window process to access to work items, documents, reports, team builds items, documents, reports, team builds and version controland version control
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 portal for team collaborationcollaboration
Business requirements Business requirements captured and managed to captured and managed to
enable end-to-end enable end-to-end traceabilitytraceability
Full integration into Full integration into Microsoft Project forMicrosoft Project for
a real-time viewa real-time viewof work itemsof work items
How Far Can We Get In The Available Time?How Far Can We Get In The Available Time?
WorkWorkcompletedcompleted
WorkWork planned planned
Teamprise explorer Teamprise explorer running on Linuxrunning on Linux
ArchitectsArchitectsProblem SpaceProblem Space
Visualization of designVisualization of designArchitecture modelingArchitecture modelingHigh-quality implementation of designHigh-quality implementation of designDecreasing 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
HighlightsHighlightsSoftware ArchitectsSoftware Architects
Design and validate architectureDesign and validate architecturePowerful new visual designers. Application Designer, Powerful new visual designers. Application Designer, Logical Datacenter Designer, Deployment Designer , Class Logical Datacenter Designer, Deployment Designer , Class DesignerDesignerValidate service-oriented solutions against target Validate service-oriented solutions against target deployment environmentdeployment environmentVisualize distributed application dependencies and Visualize distributed application dependencies and relationshipsrelationships
Effectively communicate design decisionsEffectively communicate design decisionsIntegrates with team tools to facilitate better team Integrates with team tools to facilitate better team collaboration and communicationcollaboration and communication
Utilize proven development practicesUtilize proven development practicesLeverage 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 Distributed Application ArchitectureArchitecture
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
DevelopersDevelopersProblem 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
HighlightsHighlightsSoftware DevelopersSoftware Developers
Automatic code generator to improve Automatic code generator to improve productivityproductivity
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 Integrated Unit Testing to test class methodsmethods
Identify coding errors Identify coding errors and security and security vulnerabilitiesvulnerabilities
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 eachcheck-in to provide traceability from check-in to provide traceability from
requirements to coderequirements to code
Change ManagementDiscover who last changed a Discover who last changed a
section of code and get section of code and get detailed change set detailed change set
informationinformation
Check-In PoliciesCheck-In Policies
Policies enforced by toolingPolicies enforced by toolingreinforce good development reinforce good development practicespractices
Build And DeploymentBuild And Deployment
Build verification Build verification test results as part test results as part of the build processof the build process
Who checkedWho checkedin 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 ProfessionalProblem SpaceProblem Space
HighlightsHighlightsDatabase ProfessionalsDatabase Professionals
Bring data professionals into the lifecycleBring data professionals into the lifecycleProvide full Visual Studio Team System supportProvide full Visual Studio Team System support
Support Work Item tracking for database Support Work Item tracking for database changeschanges
Take control of database changeTake control of database changeOffline, change management of the database Offline, change management of the database schemaschema
Automated refactoring of database objectsAutomated refactoring of database objects
Automate database testing to improve Automate database testing to improve qualityquality
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 A new offline Database project allows you to work project allows you to work with your database schema with your database schema offline while full integration offline while full integration with TFS allows you to with TFS allows you to manage and version these manage and version these changeschanges
Rename refactoring makes Rename refactoring makes it easy to make changes to it easy to make changes to your database schemayour database 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
TestersTestersProblem 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 exponentiallymore to repair”– Forrester, May 2004
HighlightsHighlightsSoftware TestersSoftware Testers
Test Case ManagementTest Case ManagementCreate test listCreate test listOrganize and Execute testsOrganize and Execute tests
Manual testing Manual testing Provide script for manual tasksProvide script for manual tasks
Web testingWeb testingRecord and playback interactionsRecord and playback interactions
Load testingLoad testingSimulate 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-recordplayback
Load TestingLoad Testing
Switch to TableSwitch to Tableview or graphview or graph
Dynamically monitorDynamically monitorperformance characteristicsperformance characteristics
Pre-configuredPre-configuredcounter collectionscounter collections
Project ServerProject ServerThird-PartyThird-Party
IDEsIDEs
Web Clients and Web Clients and XML Web XML Web ServicesServices
Application Life Cycle Management (ALM) Application Life Cycle Management (ALM) SolutionSolution