You Can't be Agile When you are Knee Deep in Mud
-
Upload
thoughtworks -
Category
Software
-
view
3.028 -
download
2
Transcript of You Can't be Agile When you are Knee Deep in Mud
@r a c h e l l a y c o c k
YOU CAN’T BE AGILEWhen you are knee deep in mud
2
I WANT CONTINUOUS DELIVERY
3
Architecture Quality Assurance
Continuous Integration
Configuration Management
Data Management
Environments & Deployment
WHERE ARE WE?
4
AGILE THE ADJECTIVE
5
FLUENCY MODEL
6
IT’S THE 90S
7
SCRUM
8http://upload.wikimedia.org/wikipedia/commons/thumb/5/58/Scrum_process.svg/2000px-Scrum_process.svg.png
XP
9http://ronjeffries.com/xprog/what-is-extreme-programming/circles.jpg
TDD?
10http://luizricardo.org/wordpress/wp-content/upload-files/2014/05/tdd_flow.gif
SELF TESTING CODE
11http://www.focus-itoutsourcing.com/wp-content/uploads/2013/10/Software-testing-trends-2013.jpg
TESTING CUPCAKE
12
REFACTORING
13
Refactoring is a controlled technique for improving the design of an existing code
base.
http://martinfowler.com/books/refactoring.html
CONTINUOUS INTEGRATION
14http://ronjeffries.com/xprog/what-is-extreme-programming/circles.jpg
CONTINUOUS INTEGRATION
15
Everyone Commits To
the Mainline Every Day
Mainline Server
Develop
Build
Build
pull
Local Workstation
Buildpush
✔Done!
WATER - SCRUM - FALL
16
CONTINUOUS DELIVERY
17
Software always production ready
Releases tied to business needs, not operational constraints
Customer
Delivery teamConstant flow of new features into production
MORE THAN JUST DEVOPS
18
Organisational Alignment
Release Management
Architecture Quality Assurance
Continuous Integration
Configuration Management
Data Management
Environments & Deployment
BALLS OF MUD
19
Reckless Prudent
DeliberateInadvertent
“We don’t have time for design”
“What’s Layering?”
“We must ship now and deal with consequences”
Good Design
No Design
Design Payoff Line
Cumulative Functionality
time
“We don’t have time for design”
“What’s Layering?”
“We must ship now and deal with consequences”
“Now we know how we should have done it”
Reckless Prudent
DeliberateInadvertent
QUALITY ISSUES (TECHNICAL)
23
Code qualityDesign qualityAutomated testingTechnical debt reduction
…is what your business partners hear!
BLAHBLAHBLAH
HISTORICAL DILEMMA
24
Business Outcome
FEATURES QUALITY
Technical Outcome
WHAT IF?
25
Business Outcome
FEATURES ?
BusinessOutcome
WHAT IF?
26
Business Outcome
FEATURES
BusinessOutcome
CYCLE TIME
CAN’T JUST LIFT AND SHIFT
27
REPLACING THE MONOLITH
28
MICROSERVICES
29
A monolithic application puts all its functionality into a single process…
… and scales by replicating the monolith on multiple servers
A microservices architecture puts each element of functionality into a separate service…
… and scales by distributing these services across servers, replicating as needed.
REFACTORING
30
COMPONENTS
31
Component
LibraryService
Libraries and Services are two forms of component
Components are units of software that can be independently replaced and upgraded
Libraries run within a single process, communicating through language function call mechanisms
Services run in separate processes, communicating with networking mechanisms such as HTTP or TCP/IP
COUPLING AND COHESION
32
code artifact
afferent efferent
FROM PROJECTS
33
BUSINESS PROJECTS OPERATIONSMany ‘good’ ideas -
WE NEED $$$! We’re working - GIVE US $$$!
That doesn’t work - NEED MORE $$$!
Humble, Molesky, O’Reilly, Lean Enterprise: How High Performance Organizations Innovate At Scale
TO PRODUCTS
34
PRODUCTS / SERVICES OPERATIONS
Customers
Service DeskOps Management
Cross-FunctionalProduct Teams
Teams PushChanges Continuously
Product Teamsfor IaaS / PaaS
Infrastructure / Platform-As-A-Service
Humble, Molesky, O’Reilly, Lean Enterprise: How High Performance Organizations Innovate At Scale
YOU NEED TO BE THIS TALL TO BE AGILE
35
@rachellaycock
THANK YOU