2. 2
About Me
Ernie Savoie
Vice President
Global Investment Technology
• Highly respected industry innovator.
• Over 22 years at MFS.
• Worked in both operations and development.
• CI/CD evangelist.
• Passionate about fly fishing.
3. About MFS
• Global Asset Manager - founded in 1924
• 1,900 employees worldwide
• The firm ranked as the 24th largest money management firm in the US
according to Institutional Investor magazine and 12th largest U.S.
mutual fund manager, according to research firm Strategic Insight
• Eighth straight year ranked one of the "Best Mutual Fund Families" by
Barron's
4. Our Development Environment
• Java and .NET shop
• 200 developers
• TFS code repository – 300 team projects
• 100 plus critical applications
• Jenkins build servers
• Nexus
• AppScan
• SonarQube
• UDeploy
5. 5
Benefits of Jenkins and Nexus
• Helped us manage the growth of external resources
• Standardize desktop development environment
• Shortened the onboarding time for developers
• Inventory and manage artifacts used and produced by the
development teams
• Improve security and code quality
• Understand and reduce risks associated with open source licensing
• Improve traceability in development and deployment process.
• Which modules were built and when.
• Which sources were used
• Dependencies used
• Environment variables
• What packages were installed and where
6. • Had tremendous growth. Been very successful in attracting new and retaining
existing clients
• Investing in technology. New systems. Upgrades to existing systems.
• Growing staff.
• How were we as a technology team going to manage this?
• How do we manage and measure the work of outside resources?
• How do we quickly spin up development teams?
• What can we do to improve quality of our work?
• Is the code secure?
• What changes have been introduced and where are they used?
• Who has access to what systems and components.
• Can we automate these tasks?
6
Managing Growth
8. • Only a small subset of critical
applications were on boarded.
• Many inconsistencies in the TFS
build environment.
• Lack of centralized build
management and reporting.
• Poor adoption.
• Didn't really resolve many of the
other issues we had.
8
Limited Success
16. 16
Scope Increase
Adoption of these tools forced us to address many core issues
• Restructure code repositories for standardized branching
• Manage artifacts by implementing Nexus
• Standardize our development structure by adopting Maven and
NuGet
• Upgrade developer's IDE
• Standardize developer desktop configuration
• Develop standards
• Train developers
17. 17
More Changes
• Implement Udeploy for deployments.
Integrated nicely with what we were
doing with Nexus
• Adopt AppScan and integrate with
Jenkins
• Implement Nexus LifeCycle.
18. 18
Benefits of Jenkins and Nexus
• Far reaching. Helped us address our core issues and breed good
habits.
• Helped us manage the growth of external resources
• Standardize development environment
• Shortened the onboarding time for developers through the use of
Maven and NuGet.
• Inventory artifacts. Both internal and external.
• Improve security and code quality through automated builds and
scanning (Application security certification process)
• Understand and reduce risks associated with open source licensing
• Helped us define traceability and accountability in development and
deployment process.
• Which modules were built
• Which sources were used
• Dependencies used
• Environment variables
• What packages were installed and where
22. 22
Recommendations
Work with an experienced partner that can help quickly identify
roadblocks and develop a roadmap to the future.
23. 23
About Me
Randy Howie
CEO
Black Diamond Software
• Artificial Intelligence Research at Carnegie Mellon University
• Founded Black Diamond Software in 1990
• From innovative software developers to ALM experts and
evangelists
• Co-Author of Our ALM Transformation Solution
• I love tennis and my two daughters
• Have given Roger Federer advice about raising daughters
24. About Black Diamond Software
• ALM Transformation Specialists
• Agile, Continuous Delivery, DevOps, Continuous Quality Transformations
• Atlassian, CloudBees, Sonatype, Docker, Puppet
• Have successfully completed end to end Enterprise CD
• Successfully completed one of the earliest and largest Nexus lifecycle
implementations
25. You are practicing Continuous Delivery (CD) when:
• Software is deployable throughout its lifecycle
• Teams prioritize keeping software deployable over new features
• Anybody can get fast, automated feedback on the production readiness of
systems any time somebody makes a change
• Deployments of any version of the software to any environment on demand
are push-button
Continuous Delivery
26. Impacts the entire application development lifecycle:
1. All changes must tie back to requirements/defects
2. SCM workflows must keep software deployable when it changes
3. Builds must be tied to SCM changes from one build to the next
4. The supply chain of software components must be managed
5. Deployment tools must create a pipeline that enables us to push artifacts to
increasingly more production-like environments and track which
executables are deployed to which environments.
Continuous Delivery
27. 27
Packages
for Continuous Delivery
and Quality
Agile
Panning
SCM
Continuous
Delivery
Software
Lifecycle
Management
1,
All changes must tie
back to requirements
and defects
2,
SCM Workflows must
keep software deployable
when it changes
3,
Builds must be tied
to SCM changes from
one build to the next
4,
The supply chain of
software components must
be carefully managed
1
4
2
3
31. Nexus Lifecycle
Component Intelligence and
Continuous Delivery
• Establish Policy – Different groups, different applications
– Policy must be consistent with definition of quality
• Component intelligence can be assessed at different points in the
lifecycle
– Nexus Repository: component selection
– Nexus LifeCycle: build and deployement
• Establish a test-fast CD approach, using Nexus Repository to
intelligently select comonents
• Design CI builds for fast, test-early, shift-left detection
• LifeCycle Scan after nightly and release builds
• Component intelligence is essential to achieve true CD
32. Goals and KPIs
Goals
• Improve Quality
• Increase Efficiency
• Reduce Deployment Issues
KPIs
• Production Defects
• Development Velocity
• Deployment Issues
33. Recommendation ACTION:
Improve Quality
Quality Analysis
• Static Code Quality Analysis
• Vulnerability Detection
• Continuous Integration
• Test Driven Development
• Peer Review
• Shift Left Testing
Traceability
• Continuous Delivery
• End to End Traceability
• Feature Driven Development
34. Recommendation ACTION:
Increase Efficiency
• Build Automation
• Test Automation
• Deployment Automation
• Traceability Automation
Process Improvements
• Agile Development
• Continuous Delivery
• Process Uniformity
Automated Processes
35. Recommended ACTIONS:
Reduce Deployment Issues
• Continuous Integration – Root out integration issues by compiling
applications and unit testing them each time changes are made.
• Continuous Delivery – Keeping the code always deliverable to reduce
errors from partial implementations
• Deployment Automation – Automating all deployments reduces errors
from manual processes.