you can't be agile when you are knee deep in mud

Post on 06-Aug-2015

3.027 Views

Category:

Software

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

@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

top related