CARGO CULTS
IN BUILDING MODERN
SOFTWARE SYSTEMS

Sebastian Gębski

WHAT TO EXPECT?

#techagnostic
#hypetrain
#developermaturity

#complexitytheory
#
leanthinking
#pragmatism

WHO AM I?

I lead software-based products delivery.

#lean #dotnet #webdev #elixir #dddesign

http://nokillswit.ch/

@liveweird

Sebastian Gębski

CARGO CULTS (the original ones)

Key observations

  • technical gap
  • lack of understanding ...
  • ... but plenty of hope

(I HAD, DUNNO ABOUT YOU)

  • cause or effect?
  • judgement based on visible effects

CARGO CULTS (the modern ones)

imitate

CARGO CULTS (the modern ones)

worship

(CARGO) cultists in a wild

warstories

pharaoh syndrome

... to enforce ideas from:

  • different company
  • different context
  • different technology stack
  • different capabilities

 story #1

"multi-speed" IT

... where is the real business logic?

... where is the real (core) value?

... where is the real meaning?

... what are the real dependencies?

 story #2 

(scalable) SCRUM
in enterprise

... maturity
... transparency
... technical proficiency
... stake in the game

 story #3

(Big BRAND) Consultants and ESB ...

  • P(oint) of V(iew)
  • Architecture "assetization"
  • Risk Mgmt + Immediate Effect >>>>> Long-term Qualities

 story #4 

weathercocks

... wrong type of complexity
... root cause analysis
... "wanna do fun stuff"
... tutorial-level understanding

 story #5

recruit like you're google

Different company ...

-> different challenges / problems

-> different advantages / opportunities

 story #6 

everyone wants
to be ...

... a tech unicorn

What makes a unicorn?

simple != easy

WANTS CHAOS Monkey ...

... can't provide basics of:

  • proper logging (audit or trace)
  • app monitoring
  • incident management
  • disaster recovery

​etc.

Wants containers ...

... is lightyears far from working setup of:

  • automated provisioning
  • configuration mgmt
  • "DDL artifactization"
  • phoenix environments
  • secret handling

​etc.

WANTS Continuous delivery ...

... while in the mean time can't:

  • even  start with test automation
  • have build green for a day
  • notify precisely a person who've made a breaking commit
  • release anything smaller than the whole platform increment

Wants agility ...

... but fails even in:

  • identifying product
  • distinguishing owners ...
  • ... or empowering them
  • building x-competence teams
  • creating (& meeting) feasible DoD

builds "Microservices' ...

... while facing issues these won't solve:

  • scalability is nice-to-have
  • transactionality is a must
  • can't preserve domain composition
  • coupling is omnipresent

BUt ...

THiS is the best medicine you're applying

WAIT. It's about you.

Engineers are to be blamed as well.

Too.

Engineering curiosity
... or lack of such

  • "What's it purpose?"
  • "What does it do better?"
  • "What is its 'selling point'?"
  • "How does it work?"
  • "Can you achieve the same effect with ... ?"

Recursive complexity

  • frameworks over frameworks
  • new classes of tools that serve only technical purpose
  • technical complexity over domain complexity

coder vs developer
(& how we exploit it)

  • "Brought here to solve technical problems"
  • thinking with solutions
  • domain-agnostic (domain-ignorant)
  • good communication is an extra

4 raiders of apocalypse

diseases that plague our industry

1. Opaqueness (to non-tekkies)

due to multi-disciplinary character & intangibility of assets

"Where are we now?"

"Will it be enough?"

"How much time more?"

"It is done for good, right?"

2. BROKEN Job market

demand >>>>> supply

  • hit & run tactics
  • "I want to do interesting stuff only."
  • neophyte tsunami
  • outsourcing, body-leasing, managed svcs

3. 'hello world' chasm

every technology looks simple enough in samples & tutorials

  • lowest ever entry treshold (SW & HW)
  • very few "physical" constraints
  • "Many frameworks? No probs!"
  • Starting over. Again. And again.

4. layering abstrations

due to their intangibility

  • web development w/o JavaScript
  • frameworks over frameworks

answers, we want answers

there's a certain limit of bullshit within this industry.
Wait ... is it?

A. Lean (mindset)

to the rescue

Focus on PROBLEMS first
(not solutions)

Get to the root (cause)

evolution
(instead of revolution)

iteratively validate measurable outcomes

dOMAIN
(NOT TECH) complexity

there is no such a thing
as a Tech success

B. skin in the game

make Devs care

http://nokillswit.ch/

@liveweird

Sebastian Gębski

"Cargo cults" in building modern software systems

By Sebastian Gębski

"Cargo cults" in building modern software systems

"Cargo cults" in building modern software systems

  • 973