Slide 1

Slide 1 text

Beyond “it depends” How much architectural work do we need? Uwe Friedrichsen – codecentric – 2006-2022

Slide 2

Slide 2 text

Uwe Friedrichsen Works @ codecentric https://twitter.com/ufried https://www.speakerdeck.com/ufried https://ufried.com/

Slide 3

Slide 3 text

When to do what and how much

Slide 4

Slide 4 text

There is no “one-size-fits-all”

Slide 5

Slide 5 text

We came from “waterfall all-the-things”

Slide 6

Slide 6 text

Waterfall all-the-things • We didn’t like it • It didn’t work well in quite some contexts • We complained • Too limited, too uniform for our heterogeneous demands • “We need something that adapts better to our needs”

Slide 7

Slide 7 text

We went “Agile”

Slide 8

Slide 8 text

Well, quite often it feels more like this ...

Slide 9

Slide 9 text

Still, fine … but …

Slide 10

Slide 10 text

… now we are “Agile all-the-things”

Slide 11

Slide 11 text

Agile all-the-things • We love it • It doesn’t work well in quite some contexts • We do not complain • Instead, we try to squeeze everything into an agile corset • “We’re agile. Period!”

Slide 12

Slide 12 text

We just created the next “one-size-fits-all”

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

Understanding uncertainty

Slide 15

Slide 15 text

Uncertainty breaks the linear relation between effort and value

Slide 16

Slide 16 text

Eh, WTF?

Slide 17

Slide 17 text

Internally controlled Externally controlled Effort spent Units produced / Output Certainty-driven value prediction model (a.k.a. industrial value prediction model) Value created Units sold / Outcome Linear relation due to certainty We are looking for this Due to the linear relation it is sufficient to plan effort in order to predict value

Slide 18

Slide 18 text

Internally controlled Externally controlled Effort spent Units produced / Output The effect of uncertainty Value created Units sold / Outcome We are still looking for this Influencing factors outside our control We cannot predict it reliably upfront We can only observe it after the fact No longer suitable to predict value Breaks linear relation Uncertainty ?

Slide 19

Slide 19 text

Internally controlled Externally controlled Effort spent Units produced / Output The effect of uncertainty Under uncertainty we cannot predict upfront which kind of performance we are going to produce Support performance Idle performance No value Value-adding performance Creates value Value-reducing performance Destroys value

Slide 20

Slide 20 text

Uncertainty means you cannot predict the value that will result from your effort

Slide 21

Slide 21 text

Under uncertainty you do not maximize value by optimizing efficiency of efforts (a.k.a. cost efficiency), but by detecting and cutting idle and value-reducing performances as soon as possible

Slide 22

Slide 22 text

Acting under uncertainty 1. Create a hypothesis regarding the effect of an effort 2. Do smallest action suitable to measure an effect 3. Measure effect and evaluate hypothesis a. Further develop hypothesis if expectations met b. Drop hypothesis otherwise (optionally pivot) 4. Repeat

Slide 23

Slide 23 text

Sources of uncertainty in IT • Post-industrial markets • Complexity of context and tasks • Digital transformation (a.k.a. digitization, digitalization) • Disruptive technologies and more

Slide 24

Slide 24 text

Going post-agile or killing the one-size-fits-all dogma

Slide 25

Slide 25 text

The suitability of an approach depends on its context

Slide 26

Slide 26 text

Uncertainty Certainty • Extensive effort planning • Maximize efficiency • Detailed controlling • Hypotheses validation • Small steps • Quick feedback cycles Value maximization approaches

Slide 27

Slide 27 text

And acting under uncertainty is “Agile”, isn’t it?

Slide 28

Slide 28 text

Well, not really …

Slide 29

Slide 29 text

Types of uncertainty • Due to homework not done • Accidental, complicated, avoidable • Lack of diligence • Due to missing internal feedback • Semi-accidental, complex, harder to avoid • Rooted in company culture deficiencies • Due to required external feedback • Essential, complex, not avoidable • Cannot be solved internally

Slide 30

Slide 30 text

Uncertainty and “Agile” • Due to homework not done • Accidental, complicated, avoidable • Lack of diligence • Due to missing internal feedback • Semi-accidental, complex, harder to avoid • Rooted in company culture deficiencies • Due to missing external feedback • Essential, complex, not avoidable • Cannot be solved internally This is what Agile originally tried to address This is what Enterprise Agile * usually addresses This is what Enterprise Agile * often causes * Enterprise Agile: Typical “Agile” implementation in most companies

Slide 31

Slide 31 text

Agile as implemented in most companies does not address essential uncertainty

Slide 32

Slide 32 text

Uncertainty Certainty Software development approaches Focus on cost (Waterfall, V-model, SAFe, …) Enterprise “Agile” (SCRUM, LeSS, …) Focus on flow (DevOps, Lean, …) Focus on feedback (Developer anarchy, …) Focus on innovation (No software development)

Slide 33

Slide 33 text

Uncertainty Certainty Invent potential new business offerings Grow a successfully launched new business offering Explore a potential new business offering Extend/improve an established business offering Create a new digital interaction point for an established business offering Implement new legal regulation Replace system that technologically reached EOL Typical tasks with varying uncertainty

Slide 34

Slide 34 text

Uncertainty Certainty Task examples with varying uncertainty “Create a better world for our children” (vision) Evolution of new Living 360 offering (insurance) Fruits4U (startup) Release of new Warp wireless plans (telecommunications) Subcontractor self-service app OTID (logistics) Implement the new customer documentation law (banking) Replacement of AS/400 based ERP AMS/400 (retailer)

Slide 35

Slide 35 text

Uncertainty Certainty Software development approaches Cost “Agile” Flow Feedback Innovation “Create a better world for our children” (vision) Evolution of new Living 360 offering (insurance) Fruits4U (startup) Release of new Warp wireless plans (telecommunications) Subcontractor self-service app OTID (logistics) Implement the new customer documentation law (banking) Replacement of AS/400 based ERP AMS/400 (retailer)

Slide 36

Slide 36 text

Uncertainty Certainty Software development approaches Focus on cost (Waterfall, V-model, SAFe, …) Enterprise “Agile” (SCRUM, LeSS, …) Focus on flow (DevOps, Lean, …) Focus on feedback (Developer anarchy, …) Focus on innovation (No software development) Is this all we need to take into account?

Slide 37

Slide 37 text

We need to take the lifecycle of a system into account

Slide 38

Slide 38 text

Initial empty state S0 C1 S1 First change Resulting state C2 S2 Next change Next state SI Initial release (V1.0) SN CN Final state (EOL) Last change System lifecycle (simplified)

Slide 39

Slide 39 text

Most architectural work considers this part only … … but 80%+ of the costs and efforts accrue after the initial system release S0 C1 S1 C2 S2 SI SN CN

Slide 40

Slide 40 text

How can the architecture deteriorate over the lifecycle of a system?

Slide 41

Slide 41 text

Architecture deterioration drivers • Changes in business domain • Involuntary inadmissible implementation • Focus on implementation efforts only • Accumulated “technical debt” (quick-fixes, workarounds, ...) and more

Slide 42

Slide 42 text

We need to reassess our architecture over the lifecycle of a system regularly

Slide 43

Slide 43 text

Uncertainty Certainty Approach summary Project start Project ongoing Maintenance Cost “Agile” Flow Feedback Innovation BDUF Big Design UpFront BDUF Complete design Duration: ~weeks --- Reassessment Frequency: ~2y Duration: ~days Decent DUF & occasional updates DDUF Most of design Duration: ~days Missing details added if needed Frequency: > month Duration: ~hours Reassessment Frequency: ~2y Duration: ~days JDUF Quick pass (“Just enough”) Duration: < day Just enough DUF & continuous evolution „Whatever works“ (Minimal agreement) Discuss, complement and reassess continuously along the way Frequency: ~weekly Duration: < hour Just enough agreement to get things done fast (90%+ of all written code will be deleted anyway) --- Approach not useful for systems in maintenance “Too early for IT” ---

Slide 44

Slide 44 text

Additional influencing factors • Time and budget constraints • Availability of people (who and when) • Available skills, knowledge and experience • Risk of resulting system (e.g., can harm human lives) • …

Slide 45

Slide 45 text

Wrap-up

Slide 46

Slide 46 text

Wrap-up • Align architectural work with uncertainty • Should fit the chosen software development approach • Take the lifecycle into account • Most architectural efforts only target initial development • Reassess regularly to avoid architecture deterioration • There is no “one-size-fits-all”

Slide 47

Slide 47 text

Uwe Friedrichsen Works @ codecentric https://twitter.com/ufried https://www.speakerdeck.com/ufried https://ufried.com/