Modern Engineering Practices - Building Blocks for the New Digital Economy (Aaron Erickson...

44
1 MODERN ENGINEERING PRACTICES BUILDING BLOCKS FOR THE NEW DIGITAL ECONOMY

Transcript of Modern Engineering Practices - Building Blocks for the New Digital Economy (Aaron Erickson...

1

MODERN ENGINEERING PRACTICES

BUILDING BLOCKS FOR THE NEW DIGITAL ECONOMY

2

DOES INSTALLATION OF FOOSBALL TABLES AND BEANBAG CHAIRS CREATE INNOVATION?

3

WHY NOW?

4

PROGRAMMING USED TO BE REALLY HARD… ...WHICH IS WHY INNOVATION IS “SUPPOSED TO BE EXPENSIVE”

5

WHAT CHANGES AS THE DISTANCE FROM IDEA TO CASH APPROACHES ZERO?

1940-50s: Years, 10s of Millions (in today’s dollars)

1960s: 10s Months, 1-10 Million

1970s: 3-12 Months, 0.25-1 M

1980s: 1-6 Months, 100-500k

90s: 3-10 Wks, 10-50k

00s: 1-2 Wks, 1-10k

1 Day, 1K

6

WHO'S IDEAS ARE ATTEMPTED?

1940-50s: Years, 10s of Millions (in today’s dollars)

1960s: 10s Months, 1-10 Million

1970s: 3-12 Months, 0.25-1 M

1980s: 1-6 Months, 100-500k

90s: 3-10 Wks, 10-50k

00s: 1-2 Wks, 1-10k

1 Day, 1K

Gov’t

F500 CEOs

Dept +

Mid

Size

Co

PMOs and

Startups

Innov.

Dept.

Anyone

With Idea!

ARTIFICIAL COMPLEXITY IS THE ENEMY!

SIMPLIFICATION IS THE KEY TO SOLVING THIS – BUT IT’S EASIER SAID THAN DONE

Engineering Practices

Level 1: Engineering Practices

THINGS THAT COMPLICATE CODE

Excess state

Null

Methods you pass things to that

mutate things

Bad naming

Dead code

Copy paste

Etc.

FIGHTING THE COMPLEXITY DEMON

FIGHTING THE COMPLEXITY DEMON

FIGHTING THE COMPLEXITY DEMON

OOP: “LET’S TRY TO USE PROGRAMMING TO MODEL THE REAL WORLD”

FP: “LET’S TRY TO USE PROGRAMMING TO SIMPLIFY AND REASON ABOUT THE REAL WORLD”

“ALWAYS CODE AS IF THE PERSON WHO ENDS UP MAINTAINING YOUR CODE WILL BE A VIOLENT PSYCHOPATH WHO KNOWS WHERE YOU

LIVE.”

Engineering Practices

Agile Delivery Methodology

Level 2: Agile Delivery

“AS AN X, IN ORDER TO DO Y, I NEED Z”

Alignment of our unit of work with things that users find valuable.

KEY BENEFIT: Helps avoid the writing of “speculative” code that adds complexity without adding value.

AGILE WHEN YOU REMOVE GOOD ENGINEERING PRACTICES

HAS AGILE EVOLVED?

THE EVOLUTION (AND DEVOLUTION) OF AGILE…

• GOOD: Ceremony reduction – getting rid of IPMs when possible • GOOD: Incorporation of things like Kanban – limiting WIP • GOOD: Generally speaking, even the darkest corners of the industry are

accepting it • BAD: Generally speaking, even the darkest corners of the industry are

trying it and giving it a bad name • BAD: Things like SaFE, Scrum, and others that are trying to make

versions of Agile friendly to people who want to de-emphasize engineering practices, add ceremony, and make it PMO friendly

Engineering Practices

Agile Delivery Methodology

Continuous Delivery &

DevOps

Level 3: Continuous Delivery

CD - PRIMER

Unit of work that has potential, recognizable

value to a customer

Automated deployment to a set of environments

that automatically configure and test the

change

Deployment of change to production if tests pass

rinse… repeat…

WHY CD MATTERS

Continuous versus batch delivery of business

value. No more “faith driven development”.

Quickly determine what caused the problem. Bugs

that occur in prod when a big batch is released

are really hard to resolve.

Get feedback faster. Avoid development of large

bundled feature sets users don’t value.

DEVOPS AS A CULTURE

It’s an approach, not a role. There is no such thing as a “devops” person.

What is it then?

Dev and ops working together to create better business outcomes.

PRODUCTS OF THE DEVOPS MOVEMENT

Infrastructure

as Code

Phoenix Deployment

Containers

WHY CONTAINERS?

CONTAINERS: SMALL IS BEAUTIFUL

Just enough of an OS to do what the service needs to

accomplish, and no more.

MICROSERVICES – THE FIRST POST-DEVOPS ARCHITECTURE

Small, stateless, units of business capability that do one thing well.

Typically RESTful interfaces using web standards and protocols.

Usually <1k lines of code, often far less.

Stateless nature lends itself well to functional programing.

Can be deployed using containers that isolate the environment in which the service runs.

SERVERLESS (AKA “NANO-SERVICES”)

Even smaller stateless units of business capability that do one thing well.

Means of interfacing is abstracted away from the consumer – they just work.

Usually <50 lines of code or fewer.

Stateless nature requires functional programing.

Aren’t deployed in the traditional sense at all. A JIT container is spun up for use, destroyed when done. No server to maintain.

AGILE AND CD

CD can’t happen without Agile and good engineering practices.

Agile delivers units of capability that users find meaningful, which is key to getting acceptance for CD.

The engineering practices that agile depends on enable you to do CD without causing new bugs every time you put new things into production.

WHAT BLOCKS CD ACCEPTANCE

Fear

History of new releases being disruptive

“Audit Concerns” – focus on additional traceability, automation. Remember that ops actually “hits the button” to go into prod. You can still separate concerns/segregate duties.

Confusion between frequency and scale of change. It is scale of change that upsets people, not frequency. Help people understand that.

WHY WE SHOULD CARE

Ends the the “large batch” problem. Millions of

dollars down the tube, with no idea if you actually

got value….

… measure software delivery by what actually

works, not just what the PM tells you.

Engineering Practices

Agile Delivery Methodology

Continuous Delivery &

DevOps

Lean Startup / Lean Enterprise

Level 4: Lean Startup/Enterprise

34

WHICH IS MORE VALUABLE – A PRODUCT THAT DRIVES REVENUE, OR A PROJECT THAT COSTS MONEY?

35

DEVOPS BIZPROD

36

OPS BIZ

DEVOPS ISN’T ENOUGH

37

LEAN VALUE TREE - PRIMER

Using a Lean Value Tree, work with customers

to define vision, strategic goals, and strategic

bets.

Manage and prioritize strategic bets into a

balanced portfolio, across short, medium, and

long time horizons (McKinsey 3 horizon model)

Identify investable opportunities, framed as

promises of value, under each strategic bet.

Coordinate investments, through active strategic

portfolio management.

Deliver on investments, through autonomous

pods attached to each promise of value.

38

39

RESULTS MATTER MORE THAN EFFORT

A REVOLUTION?

Is the monolith dead?

THE REVOLUTION

Codebases of millions of LOC to…

“Big Iron” to….

Projects success defined by on time delivery to…

Software developers as a organizational cost…

Codebases of tens-hundreds of LOC

Disposable Infrastructure

Products, success defined by results delivery

Software developers as a driver of profitability

GO WATCH…

http://www.infoq.com/presentations/Simple-Made-Easy

GO READ…

THANK YOU!

44