This document provides an introduction to continuous ALM improvement. It defines ALM as application lifecycle management, which includes the processes for bringing software from idea to reality, as well as the tools that support these processes. It discusses achieving continuous improvement by identifying small changes that can be made iteratively to processes and tools. This includes improving existing tools, introducing new tools, removing unnecessary "taxes" on teams, and ensuring tools meet reporting needs. The goal is to efficiently deliver software while introducing minimum impact on the development team.
2. What is ALM?
• Development processes
• Tools supporting processes
What is the lifecycle?
How do we achieve continuous improvement?
How do we plan for change?
3. What is ALM?
• Application Lifecycle Management (ALM)
- Processes define how we bring software from idea to reality
- Tools support us along the way while building software
• ALM plans should aim for efficiently delivering software
with minimum ‘tax’ on the team
• ALM plans should aim for efficiently introducing tools
to support this delivery
Toronto | Ottawa | New York | Calgary | São Paulo | Florianópolis 3
4. • Improve the processes
• Can small changes to the
use of existing tools
improve efficiency?
• Are there new tools that
can make our process
better?
• Are there ‘taxes’ on the
team that are yielding little
value?
• What do we need to
report on?
• Improve the tools
• What pains do team
members feel with the
current tools?
• Are tools reaching end-of-
life or becoming outdated?
• Can we share data?
• Is there a more efficient
way to integrate our tools?
• Can we get the data
needed for reporting?
Where do we need to improve?
Toronto | Ottawa | New York | Calgary | São Paulo | Florianópolis 4
5. What is the lifecycle?
• Idea
• Business Case
• Requirements
• Design & Architecture
• Development
• Test
• Operations
• End of Life
Toronto | Ottawa | New York | Calgary | São Paulo | Florianópolis 5
From: http://www.clemensreijnen.nl/
Author: Clemens Reijnen
6. How do we achieve continuous
improvement in our ALM?
• The steps:
- Identify and prioritize the changes that need to be made
- Make a change and observe its impact
- Adjust and introduce another change
• Can apply to process improvements as well as tool introduction
- Introduce a new bug reporting system
- Allow project to pilot new system. Adjust based on feedback
- Roll out to other project teams for new work. Adjust based on feedback
- Gradually deprecate use of previous bug reporting system
Toronto | Ottawa | New York | Calgary | São Paulo | Florianópolis 6
Ideas
Build
Product
Measure
Data
Learn
7. How do we plan for the change?
• Identify:
- What’s wrong right now?
- Where are we trying to get to?
- Who will be impacted by the changes?
- What constraints on change will there be?
• Create iterative approach to introduce the change
• Plan for monitoring the change
Toronto | Ottawa | New York | Calgary | São Paulo | Florianópolis 7
8. Focusing on DevOps
• The goal:
- Reduce time lapse between the reporting of an idea/issue and the
deployment of the solution in production
• How we do this:
- More efficient delivery by development team
- Increased delivery frequency to all environments
- Embedded test automation on all builds
- Tighter integration between the development and operations
teams
- Traceability of the release management cycle
Toronto | Ottawa | New York | Calgary | São Paulo | Florianópolis 8
OPSOPSDEVDEV
9. DevOps Maturity Model
ALM 101
DevOps
Analysis
Source
Control
Strategy
Automated
Builds
Automated
Testing
Continuous
Delivery
Continuous
Deployment
Not sure where to start? We can help!
10. Lessons Learned
Jason St-Cyr
Solution Architect, nonlinear digital
Background in .NET software development and Application Lifecycle
Management
Contact me: jst-cyr@nonlinear.ca
Around the web:
Technical Blog:
http://theagilecoder.wordpress.com
LinkedIn Profile:
http://www.linkedin.com/pub/jason-st-cyr/26/a73/645
Nonlinear Thinking:
http://www.nonlinearcreations.com/Digital/how-we-think/
Twitter: @AgileStCyr