With serverless things are getting really different. Commodity building blocks from our cloud providers, functional billing, serverless marketplaces etc. are going to hit the usual “Not invented here”3 syndrome in organizations.
Many beloved things have to be un- or re-learned by software developers. How can we prepare our organizations and people for unlearning old patterns and behaviours? Let’s have a look from a knowledge management perspective.
Objective of the talk:
Intro into systemic knowledge management
9. Agenda
1. What’s Serverless
2. The Evolution of (Backend) Programming
3. What Developers will have to (un)learn with Serverless
4. Why is (un)learning so hard.
5. Generic strategies to amplify (un)learning and to overcome
resistance
11. “Serverless computing is a cloud-
computing execution model in which
the cloud provider acts as the server,
dynamically managing the allocation of
machine resources.”
12. “… Pricing is based on the actual
amount of resources consumed by an
application, rather than on pre-
purchased units of capacity”
13. “A Serverless solution is one that costs you
nothing to run if nobody is using it
(excluding data storage)” - @PaulDJohnston
Serverless - A definition
22. A typical web-app backend Customer/User-Need
Genesis Custom Built Product Commodity
App
Runtime Execution
Event-System
Login/User
Management
Database
Storage
Power
API-Endpoint
Compute
23. What happened to Ops? Customer/User-Need
Genesis Custom Built Product Commodity
App
Runtime Execution
Event-System
Login/User
Management
Database
Storage
Power
API-Endpoint
Compute
API
Your Ops Team
Cloud Provider
24. Customer/User-Need
Genesis Custom Built Product Commodity
App
Runtime Execution
Event-System
Login/User
Management
Database
Storage
Power
API-Endpoint
Compute
25. Customer/User-Need
Genesis Custom Built Product Commodity
App
Runtime Execution
Event-System
Login/User
Management
Database
Storage
Power
API-Endpoint
Compute
API
Developer Duty
Cloud Provider Duty
26. What does Serverless “take away” from developers?
Library / Self-Hosted AWS Service(s) Google
Messaging Kafka, RabbitMQ,
Resque, ...
Kinesis/SQS/SNS/Batch Pub/Sub, Dataflow
Middleware Nginx/Rack/Express/Sil
ex...
API Gateway / ALB +
Authorizers
GLB, Cloud Endpoint
Databases MongoDB/CouchDB... DynamoDB Datastore
Identity/Login Keycloack/Hydra/…. Cognito Firebase
API Managment Express-graphql, .. AppSync ?
SSL Management OpenSSL Certificate Manager ?
Data Analysis Hadoop Kinesis/Athena BigQuery, DATAPROC
Logging ELK Stack ElasticSearch-Kinesis-
Kibana, CW Logs
StackDriver
28. Stereotype: The “serverful” vs the “serverless” dev
“Serverful” Serverless / Serviceful
Products/Libraries Services
Not-Invented-here Proudly found elsewhere
“Favorite tech” Usage of cloud building blocks
Single Tech Expert Cloud Provider Expert / Generalist
Developing with Stubs / Fakes Developing “in the Cloud”
No direct feedback loop on costs High visibility and traceability of cost
Worth based development
Long running tasks Small batches
12 factor maybe 12 factor enforced
36. Stable
Old “Business
as Usual”
Stable
New “Business
as Usual”
Destabilization
Learning
Restabilization
Unlearning
How do organizations learn?
Learning new
habits, routines
and reactions
41. "The acceptance and valuation of external knowledge can
be perceived by insiders as a degradation of the own
achievements, expertise and competence of the in-
group.”
52. Individual Group / Team / Organizational
● Not-invented-here syndrome
● Routine blindness
● Illusory superiority / Dunning-Kruger effect
● Lack of social meta knowledge
● Lack of time
● Information overload
● Knowledge-is-power thinking
● Poor understanding
● Antipathy
● Reduction of cognitive dissonance
● Lack of Self-efficacy
● ...
● Hierarchy
● Formalism and bureaucratism
● Micropolitics
● Silo thinking
● Groupthink
● Separation of information collection/using
and decisions
● Lack of a knowledge strategy
● No support from management
● Leaders/managers acting as bad examples
● Top-down procedures
● Missing or dysfunctional incentives
● Focus on IT for “knowledge sharing”
● ...
“Knowledge barriers” / “information pathologies”
57. Possible solutions - So what do the books say?
◉Have a Knowledge Strategy
○ Focus on core competences and user needs
○ Know what to (un)learn
◉Experiments / Small Wins
◉Right incentives
◉Team and personnel development
○ Training “Letting Go”
○ Seeking “Positive ignorance”
65. Customer/User-Need
Genesis Custom Built Product Commodity
App
Runtime Execution
Event-System
Login/User
Management
Database
Storage
Power
API-Endpoint
Compute
API
● “Positive Ignorance” (“Don’t need to
know”)
● Unlearn details, learn usage of
commodity building blocks
● Vendor Lock-in as “feature”, Cloud
Provider as “strategic partner”
FOCUS here
66. Universally applicable knowledge
Doesn’t go away even with serverless
◉ Ports and adapters, hexagonal architecture
◉ Test pyramid
◉ Domain driven design
◉ Design patterns
◉ (Unit) tests
◉ CAP theorem
◉ Fallacies of distributed computing
◉ SQL injection (aka not preparing data for subsystem)
◉ ...
67. Ok, but how can we change without
“destabilizing” too much?
72. Vision / Challenge 100% value-add (Focus on customer
needs).
Next Target Condition 50% value-add work
Current Condition 30% value-add work (bugs, incidents,
outages, ...)
Current Obstacle Our login system causes 80% of the bugs
and outages.
Next Experiment Look for managed alternatives for login /
user management
Learned Our Cloud Provider AWS offers a service
called “Cognito Userpools”. We could start
a Proof of Concept
(Made up) Toyota Kata Example
74. Toyota Kata Recap
◉ Directed, structured, disciplined way of learning
◉ Giving the direction, not the implementation
◉ “Routine to cancel routines”: Improvement work
gets a habit
◉ Experiments > Opinions
79. Ideas for Team and personnel
development
◉ Team/Personal Coaching
○ Training “Letting Go”
◉ Giving people and teams autonomy, mastery and
purpose
◉ From “Special Tech Expert” to “Function Master”
○ Example: from “RabbitMQ Expert” to “Messaging
Master”
◉ Again: Right incentives
80. Recap
◉ Serverless means Serviceful: Caring about your
customer needs and the core product.
◉ Knowledge is identity, Unlearning can be a painful
experience.
◉ Prerequisites for (Un)learning:
○ Knowledge vision / strategy (e.g. Wardley Map)
○ A process for structured learning (e.g. Toyota Kata)
◉ Team and personnel dev / The right incentives
○ Foster “generic” knowledge, unlearn “special” knowledge
81. Standing on the shoulders of giants / Proudly
found elsewhere:
- Systemic Knowledge Management / Ignorance
Management (Ursula Schneider, Helmut Willke,
Dirk Baecker)
- Wardley Mapping (Simon Wardley)
- Organizational Psychology (Susanne Hopf)
- Learning Organizations (Argyris & Schoen)
- Systems thinking (Peter Senge, Deming)
- Toyota Kata (Mike Rother)
- Defensive Routines (Argyris)