More Related Content Similar to Migrating Legacy Code to Agile Architecture Similar to Migrating Legacy Code to Agile Architecture (20) Migrating Legacy Code to Agile Architecture1. Migrating Legacy Code to an
Agile Architecture
Creating an Agile Ecosystem
Matt Anderson, PMP, PMI-ACP
Director, Program Management
Pratik Nath
Knowledge Architect, Uplift
Center, Bangalore
February 21, 2012
2. Objectives
Using Cerner’s experience, provide strategies for
managing legacy code in an Agile world
© 2011 Cerner Corporation. All rights reserved. This document contains Cerner confidential and/or proprietary information which may not be reproduced or transmitted without the express written consent of Cerner. 1
3. Cerner Corporation
Started in 1979, based in Kansas City, MO
Leading global supplier of healthcare solutions, healthcare
devices and related services
Focus on creating a safer and more efficient healthcare system
Key solutions include:
• Computerized Physician Order Entry (CPOE)
• Electronic Medical Records (EMR)
• Personal Health Records (PHR)
Clients in 25 countries serving more than 9000 unique facilities
Hospitals
Physician Practices
Retail Pharmacies
NASDAQ – CERN
$2.2B revenues in 2011
© 2011 Cerner Corporation. All rights reserved. This document contains Cerner confidential and/or proprietary information which may not be reproduced or transmitted without the express written consent of Cerner. 2
4. Cerner Development Profile
7 Global Development offices
England, Ireland, France, India, US (MO, VA, CA)
Majority of development in Kansas City, MO and Bangalore, India
70+ unique solutions
Core technologies
Java, C++, C#, VB6, JavaScript, iOS, ObjectiveC, HTML5
Oracle
AIX, Linux, Windows Server
© 2011 Cerner Corporation. All rights reserved. This document contains Cerner confidential and/or proprietary information which may not be reproduced or transmitted without the express written consent of Cerner. 3
6. Major Migration Strategies
Refresh
Recompile code in a newer compiler
Migrate
Move code from one language to another
Rewrite
Recreate features in a new language
Deprecate
Allow solution to move into unsupported model and eventually
remove from portfolio
© 2011 Cerner Corporation. All rights reserved. This document contains Cerner confidential and/or proprietary information which may not be reproduced or transmitted without the express written consent of Cerner. 5
7. Migration Considerations
Business value of current solution
Market penetration
Client satisfaction
Functionality
Add new
Like for like only
Simplify
Cost of options
Duration
“What if” analysis
Opportunity cost
Deployment
Big bang or phased roll-out
Support strategy
Legacy and new
Timing
© 2011 Cerner Corporation. All rights reserved. This document contains Cerner confidential and/or proprietary information which may not be reproduced or transmitted without the express written consent of Cerner. 6
8. Planning for Success
Vision - see the end from the beginning
Know why you are doing it
• Drivers
Know your potential obstacles
• Challenges
Know what success looks like and how to get there
• Critical Success Factors
© 2011 Cerner Corporation. All rights reserved. This document contains Cerner confidential and/or proprietary information which may not be reproduced or transmitted without the express written consent of Cerner. 7
9. Activity – Define Your Key Drivers
Potential Drivers List the key drivers at your
organization for a migration
Supporting ongoing
innovation
Create an Agile
ecosystem
Creating a software
architecture that scales
Improving solution
maintainability
Leveraging open
standards/interoperabilit
y
Avoiding support gaps
for legacy systems
© 2011 Cerner Corporation. All rights reserved. This document contains Cerner confidential and/or proprietary information which may not be reproduced or transmitted without the express written consent of Cerner. 8
10. Cerner’s Drivers
Migration of viable legacy solutions to updated technology
platforms
Support continued innovation
Improve Solution Maintainability
Extend lifecycle
Investigate addition of new capabilities afforded by newer
technologies for new development
Create agile ecosystems
Automate, automate, automate…
Maintain Cerner as an attractive destination for top
development talent
© 2011 Cerner Corporation. All rights reserved. This document contains Cerner confidential and/or proprietary information which may not be reproduced or transmitted without the express written consent of Cerner. 9
11. Activity – Define Your Key Challenges
Potential Challenges List the key challenges you
may face at your organization
Low value return to end
users
Innovation constrained
by legacy tooling
Substantial developer
training needs
Impact on developer and
team productivity
Resistance to change
across development
group
© 2011 Cerner Corporation. All rights reserved. This document contains Cerner confidential and/or proprietary information which may not be reproduced or transmitted without the express written consent of Cerner. 10
12. Cerner’s Challenges
Incremental rollout required due to large, complex client
install base
Innovation and maintenance constrained by legacy tooling
“Big Bang” solution would present significant risk to all
stakeholders
Low client value return for rewrite strategy
Create repeatable process for technology upgrades
Maintain team flexibility based on their unique markets
Potential retraining of developers proficient in legacy
technology
Large segments of shared code leveraged by teams that
may migrate at different time periods
Change impacts to development community
© 2011 Cerner Corporation. All rights reserved. This document contains Cerner confidential and/or proprietary information which may not be reproduced or transmitted without the express written consent of Cerner. 11
13. “The skills of the software development
team are crucial for project success and
can enable or doom the adoption of any
new architecture or technology.”
Dave West, Senior Analyst
Forrester Research
14. Activity – Identify Critical Success Factors
Potential Factors Identify what your critical
success factors would be for
Agile methodology
your migration
Team collaboration
software
Executive management
support
Targeted training &
skills development
Integrated testing
Software architecture
reengineering
© 2011 Cerner Corporation. All rights reserved. This document contains Cerner confidential and/or proprietary information which may not be reproduced or transmitted without the express written consent of Cerner. 13
15. Cerner’s Critical Success Factors
No Client impacts
Develop competency in new technologies
Consistent executive support
Funding and focus
Create patterns for future project success
Continuous learning and improvement model
Create Agile ecosystems
© 2011 Cerner Corporation. All rights reserved. This document contains Cerner confidential and/or proprietary information which may not be reproduced or transmitted without the express written consent of Cerner. 14
17. Overall Strategy
Create a Center of Excellence – “Uplift Center”
Work with each solution to determine best path
Expedite technology migration by capitalizing on learning
Orchestrated migration
Manage vendor relationships
Modified Agile process
Global development effort with Kansas City and Bangalore centers
Open Forum for Q&A from Development Community
Transparency in decision making
Seek open feedback directly from community
Create a top-down and bottom-up synergy
Opportunity to “market” ideas and results to entire community to create
positive momentum
• Utilized Web 2.0 Collaboration software
© 2011 Cerner Corporation. All rights reserved. This document contains Cerner confidential and/or proprietary information which may not be reproduced or transmitted without the express written consent of Cerner. 16
19. VB Migration Strategy
Incremental
Leverage COM Interoperability
Create vendor relationships to build and supplement
internal expertise
Technology
Education
Focus on “Like for Like”
Minimize client training impacts
Minimize risk profile (scope, testing, etc)
Speed to completion
Variances evaluated on case-by-case basis
© 2011 Cerner Corporation. All rights reserved. This document contains Cerner confidential and/or proprietary information which may not be reproduced or transmitted without the express written consent of Cerner. 18
20. VB Case Study - SurgiNet
Snapshot
Primarily VB6 with shared componentry leveraged by 2 other
solutions
300K LOC
6 month timeframe to migrate and fully test internally
Migration Strategy
Code Migration from VB to C#
Leverage migration partner to assist with automation
Upgrade COM OTS components to .NET
Like-for-Like only
Leverage existing test cases to create test scenarios
Utilize COM Interfaces for interaction
© 2011 Cerner Corporation. All rights reserved. This document contains Cerner confidential and/or proprietary information which may not be reproduced or transmitted without the express written consent of Cerner. 19
21. VB Case Study - SurgiNet
Team
Global team
Solution knowledge
C# knowledge
Start project with entire team in Kansas City for 4 weeks to “build
team” and set common expectations
Development Methodology
4 week iterations focused on migrating related components in each
iteration
Done = Code compiles and passes engineer component layer testing
Integrated Testing and issue resolution completed in subsequent
iteration
Communication
Daily Stand-up with full team via teleconference
Web 2.0 Collaboration software to facilitate shared documentation and
discussions
© 2011 Cerner Corporation. All rights reserved. This document contains Cerner confidential and/or proprietary information which may not be reproduced or transmitted without the express written consent of Cerner. 20
22. VB Case Study - Results
Migration completed on schedule
Needed to add additional capacity for the last half of the project to
account for unplanned attrition and early learning curve delays
• Leveraged another team and used it as their knowledge transfer for their
own migration
• Knowledge gained delivered a 15% reduction in migration timeline for 2nd
team
Like-for-Like Target Met
Business Owners assisted in testing
• Frequently did not realize they were testing the new application
Live at multiple partner client sites
Minimal issues reported post go live
No additional training required
Legacy version now completely replaced for new and upgrading
clients
Associate Impacts
Majority of development community eager to adopt new technologies
Communication and collaboration strategies are a model for other
large projects
© 2011 Cerner Corporation. All rights reserved. This document contains Cerner confidential and/or proprietary information which may not be reproduced or transmitted without the express written consent of Cerner. 21
23. VB Case Study - Results
Migration Best Practices Established
Uplift Center retains lessons learned for continuous improvement
5+% Productivity gains for new teams
Reduced learning curve for new teams
Historical and collaborative documentation prevents decision
rehashing
Current/Future Plans
Pattern established for future migrations
Multiple teams can migrate concurrently
Strategies and timelines vary per team
Timeline based on business strategy for each solution market
© 2011 Cerner Corporation. All rights reserved. This document contains Cerner confidential and/or proprietary information which may not be reproduced or transmitted without the express written consent of Cerner. 22
25. VC Refresh Strategy
Refresh solutions concurrently
Moved from VC 6 to VC 10 compiler
Plan for simultaneous release
Leverage Uplift Center migration experience
Create internal tools to assist with recompile
Provide initial versions of recompiled code with common problems
automatically corrected
Leverage Web 2.0 technologies to share proposed resolutions
Focus engineering effort on regression and issue
resolution
© 2011 Cerner Corporation. All rights reserved. This document contains Cerner confidential and/or proprietary information which may not be reproduced or transmitted without the express written consent of Cerner. 24
26. VC Refresh - Results
Preparation
6 months for Uplift Center to create tooling to address majority of
compile issues
Entire VC code base recompiled and new files provided to teams
immediately prior to joint start
Time to complete
Single, 1 month iteration addressed majority of issues
Remaining minor issues completed before initial release
Regression testing
Exposed value of automation and generated positive support to
implement unit and other automation testing for the VC codebase
Agile model
Teams had individual scrums with larger Scrum of Scrums at the
program level
Issues managed via Web 2.0 collaboration tooling
© 2011 Cerner Corporation. All rights reserved. This document contains Cerner confidential and/or proprietary information which may not be reproduced or transmitted without the express written consent of Cerner. 25
28. Modified Agile Process
Initial process – standard Scrum
4 week iterations
Definition of Done
• One round of functional testing completed
• Completed components ready for integration testing
Integration testing completed by 2nd team in subsequent iteration
• Defects found corrected during the iteration
Deployment/Release typically only possible when all components
have completed Integration testing
© 2011 Cerner Corporation. All rights reserved. This document contains Cerner confidential and/or proprietary information which may not be reproduced or transmitted without the express written consent of Cerner. 27
29. Modified Agile Process
Retrospectives
“Succeed fast” or “Fail fast”
Don’t be afraid to try something
Retrospective findings
If a single component missed the iteration, the entire iteration might
not be able to proceed
• Potentially better to focus on related component groups and migrate
them together than to fit the component counts based on story point
estimates
Defects found in integration testing caused some undesired context
switching
• Did we really finish or just pass on technical debt
© 2011 Cerner Corporation. All rights reserved. This document contains Cerner confidential and/or proprietary information which may not be reproduced or transmitted without the express written consent of Cerner. 28
30. Modified Agile Process – Pilot Retrospective Ideas
Idea
Allow Iteration Length to flex based on plan
• Keep with 4 week iteration where possible, but allow for some iterations
to be planned to be a different duration
• Estimate components individually, but understand architectural
dependencies when planning iteration contents
Results
• Most iterations stayed at 4 weeks, but some planned extensions
allowed for larger components to complete
• Undisciplined teams still missed iteration dates, but testing much more
cohesive
Moved forward with most components completed in some cases
Extended the end date when dependencies prevented moving ahead
• Needed to include architecture spikes as part of current iteration to plan
for the next iteration
© 2011 Cerner Corporation. All rights reserved. This document contains Cerner confidential and/or proprietary information which may not be reproduced or transmitted without the express written consent of Cerner. 29
31. Modified Agile Process – Pilot Retrospective Ideas
Idea
Create one team to do initial migration and a second team to deal
with integration testing defects
Results
• “Fail Fast”
• Handovers were not effective
• Better to have team stay with code through integration testing
• Plan time in the current iteration for addressing issues found in
integration
Sometimes carve off 1-2 associates to stay with the code while others moved to the
new component groups
© 2011 Cerner Corporation. All rights reserved. This document contains Cerner confidential and/or proprietary information which may not be reproduced or transmitted without the express written consent of Cerner. 30
32. Modified Agile Process – Today
Scrum still followed generally with better integration of
Lean principles
More important to fix items that are closer to completion than to
migrate additional code
Component groups treated as Lean MMFs, so iteration dates are
less meaningful
• MMFs are still generally sized at about 4 weeks expected duration in
migration and 2-4 weeks in integration
© 2011 Cerner Corporation. All rights reserved. This document contains Cerner confidential and/or proprietary information which may not be reproduced or transmitted without the express written consent of Cerner. 31