Modern Engineering Practices - Building Blocks for the New Digital Economy (Aaron Erickson...
-
Upload
lviv-it-arena -
Category
Technology
-
view
105 -
download
3
Transcript of Modern Engineering Practices - Building Blocks for the New Digital Economy (Aaron Erickson...
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!
THINGS THAT COMPLICATE CODE
Excess state
Null
Methods you pass things to that
mutate things
Bad naming
Dead code
Copy paste
Etc.
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.”
“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.
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.
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
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
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