Upload
puppet
View
64
Download
0
Embed Size (px)
Citation preview
DevOps: A Catalyst for Enterprise AgilityHeidi Araya & Esteban Garcia
@HeidiAraya @EstebanFGarcia
Esteban Garcia
2
▪ DevOps Consultant
▪ 20+ years in Software Development
▪ Automates everything
▪ Scrum Master
▪ Microsoft MVP
▪ Pluralsight Author
▪ 20+ years in IT
▪ Technical Writer Project Manager
Analyst Product Owner Scrum
Master Agile Coach
▪ Systems thinker
▪ Process improvement aficionado
Heidi Araya
BrightLogic Group
Why do we need this conversation?
3
▪ 40 Agile teams across several products and
initiatives
▪ No continuous integration, not all SaaS
“our environments are unique and
complicated….”
▪ Some automation for testing, but deployment
processes are still manual
▪ Environments are unstable or unavailable, and
not representative of Production environments
@EstebanFGarcia @HeidiAraya
Learning Objectives
1. Typical challenges implementing Agile and DevOps in
enterprise settings
2. Some ideas for overcoming typical challenges
3. Key drivers for a successful transformation
4. How can I get started?
4 @EstebanFGarcia @HeidiAraya
Enterprise Agile and DevOps
Enterprise Agile –
▪ Multiple agile teams working in conjunction on the same product, project or
initiative, where they have interdependent knowledge, code, and structures
▪ Teams should own “develop to deployment” process end to end (typically is
not the case)
DevOps –
▪ It’s about people, process and technology... It’s not just the tools and
automation
Why does Agile matter to the DevOps people in the room?
Why does an Agile organization need to consider DevOps?
5 @EstebanFGarcia @HeidiAraya
How are Agile & DevOps Similar?
6 @EstebanFGarcia @HeidiAraya
Releasable… not just potentially shippable
Scrum Guide:
▪ “The heart of Scrum is a Sprint, … during which a “Done”, useable, and potentially
releasable product Increment is created.”
▪ “Purpose of each Sprint is to deliver Increments of potentially releasable functionality …”
▪ “Incremental deliveries of “Done” product ensure a potentially useful
version of working product is always available.”
7
Pay attention to the goal, not only the practices
▪ Agile ... is a mindset of delivering value to customers
frequently to get feedback so we can make better decisions
▪ DevOps … helps us get releasable!
@EstebanFGarcia @HeidiAraya
Typical Challenges & Advice - Agile
1. Hierarchical structures
can foster different
priorities and lack of
holistic view
▪ Align metrics to organizational
and team goals (collaboration,
delivering value)
▪ Get everyone on the same
page around mission and
vision, priorities
8 @EstebanFGarcia @HeidiAraya
Typical Challenges & Advice - Agile
2. Teams spend time
building things that don’t
solve customer problems
because it’s so costly/
time consuming to deploy
and get feedback
9 @EstebanFGarcia @HeidiAraya
▪ Don’t ask how much, ask how
little of a feature can be delivered
to get feedback
Typical Challenges & Advice - Agile
3. Inability to measure what has been released (Is
anyone using that feature?)
▪ Measure customer usage patterns, errors,
exceptions, performance
10 @EstebanFGarcia @HeidiAraya
Typical Challenges & Advice - Agile
4. Manual processes for deployment waste time,
but no one wants to invest in automation
11 @EstebanFGarcia @HeidiAraya
▪ Work together with
operations to create an
automated process
▪ Measure the impact
of not having automation
Typical Challenges & Advice - DevOps
1. Lack of good software development practices (TDD, CI,
automation) impede fast delivery and collaboration
12 @EstebanFGarcia @HeidiAraya
▪ Solution - Know where
code will reside
▪ Solution - Create CI
build as early as
possible (build delivery
pipeline before start
coding, keep it up!)
Typical Challenges & Advice - DevOps
2. Differing processes and tools between Scrum and ops
teams
13 @EstebanFGarcia @HeidiAraya
▪ Dev and ops teams collaborate
together so that the
deployment solution is aligned
end to end
▪ Dev and QA should collaborate
so that environments meets
QA’s needs
Typical Challenges & Advice - DevOps
3. Software development is optimized per team but not for
holistic delivery of product
14 @EstebanFGarcia @HeidiAraya
▪ Have a multi-team strategy
for the branching structure,
release pipelines, multiple
dev and test environments
to support a scalable
infrastructure
Typical Challenges & Advice - DevOps
4. Teams don’t know where to start, there are too many
priorities
15 @EstebanFGarcia @HeidiAraya
▪ Find low hanging fruit … find
the items that will bring the
biggest ROI
▪ Dedicate people or time to
improving things little by little
▪ Sprinkle DevOps fairy dust
(mindset!) amongst the teams
Key Drivers for Successful Transformation
16
1. Limit work in process across the enterprise (stop starting, start finishing)
2. Don’t optimize for individual teams or keeping people busy, optimize for
service delivery - Use “Pull”
3. Define a process and teams that include all skillsets for releasing to
production
4. Think holistically about delivering value – How does what you’re working on
make your company successful?
5. Feedback loops in place (unit testing, automation, and customers)
6. Don’t release without ability to measure the impact or use of the feature
7. Make it easy to participate in an automation pipeline
@EstebanFGarcia @HeidiAraya
Agile and DevOps: Better together
17
How can we make sure that we are staying true to our agile roots while
implementing new processes and new tools?
1. Value Stream Mapping - Visualize current workflow, track the flow,
and look for bottlenecks, queues, and opportunities for improvement
@EstebanFGarcia @HeidiAraya
Agile and DevOps: Better together
18
How can we make sure that we are staying true to our agile roots while
implementing new processes and new tools?
@EstebanFGarcia @HeidiAraya
2. Teams understand how
their work fits into the
bigger picture (mission
and vision)
Agile and DevOps: Better together
19
How can we make sure that we are staying true to our agile roots while
implementing new processes and new tools?
@EstebanFGarcia @HeidiAraya
3. Align people with
delivering value end to
end using feature teams
and have a unified
backlog
Agile and DevOps: Better together
20
How can we make sure that we are staying true to our agile roots while
implementing new processes and new tools?
@EstebanFGarcia @HeidiAraya
4. Try little experiments to
get buy in (sprinkle
cross-functional teams
with DevOps fairy dust)
Agile and DevOps: Better together
21
How can we make sure that we are staying true to our agile roots while
implementing new processes and new tools?
@EstebanFGarcia @HeidiAraya
5. Ask the team to
identify their pain
points and
opportunities
(magic wand)
DevOps and Agile: Better together
22
How can we implement new processes and tools without ignoring the
people aspect?
@EstebanFGarcia @HeidiAraya
6. Start with CI and a release pipeline in place before beginning to
code in new teams
DevOps and Agile: Better together
23
How can we implement new processes and tools without ignoring the
people aspect?
@EstebanFGarcia @HeidiAraya
7. Be shippable all the time
DevOps and Agile: Better together
24
How can we implement new processes and tools without ignoring the
people aspect?
@EstebanFGarcia @HeidiAraya
8. Collaborate to define holistic instrumentation strategy
DevOps and Agile: Better together
25
How can we implement new processes and tools without ignoring the
people aspect?
@EstebanFGarcia @HeidiAraya
9. Look for the things that
bring the biggest ROI /
bang for the buck
DevOps and Agile: Better together
26
How can we implement new processes and tools without ignoring the
people aspect?
@EstebanFGarcia @HeidiAraya
10. Don’t ask permission
to “do the right thing”
(e.g. code quality,
TDD, etc.)
DevOps and Agile: Better together
27
How can we implement new processes and tools without ignoring the
people aspect?
@EstebanFGarcia @HeidiAraya
11.Make the impact of
not having
automation visible
(amount of hours
doing manual work,
lost hours of work,
time blocked)
Agile Manifesto* & DevOps ... Meant to be together
1 Satisfy the customer through early
and continuous delivery of valuable software
2 Welcome changing requirements,
even late in development
3 Deliver working software frequently
4 Business people and developers work
together daily throughout the project
5 Build projects around motivated
individuals and trust them
6 Convey information face-to-face
where possible
7 Working software is the primary measure of
progress
8 Agile processes promote sustainable
development
9 Continuous attention to technical excellence and
good design enhances agility
10 Simplify: Maximize the amount of work not done
11 The best architectures, requirements, and
designs emerge from self-organizing teams
12 Team reflects, inspects and adapts to become
more effective
*12 principles
Takeaways
@EstebanFGarcia @HeidiAraya
Questions?
30
▪ 40 Agile teams working cohesively on the
most important things
▪ Continuous Delivery and feedback from
customers
▪ Fully automated and instrumented
▪ Stable and automated environment
creation
@EstebanFGarcia @HeidiAraya
Heidi Araya | [email protected]
Esteban Garcia | [email protected]