Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Why software architects fail – and what to do about it

Why software architects fail – and what to do about it

We’ve all seen them: Ambitious projects, starting out with grand visions, ending up as costly lessons in what not to do, leaving behind the ruins of promising paradigms, technologies, tools, and careers. But why do architecture approaches sometimes hurt instead of providing value? Why has “software architect” become a negative term for some people? And what can we do to improve our own work? We’ll look at some of the most common pitfalls that ensure you’ll come up with a disaster, and discuss how they can be avoided.

Stefan Tilkov

May 09, 2019
Tweet

More Decks by Stefan Tilkov

Other Decks in Technology

Transcript

  1. Why Software

    Architects Fail – 

    and What to Do

    About It
    craft Budapest 2019
    Stefan Tilkov, @stilkov
    https://en.wikipedia.org/wiki/Berlin_Brandenburg_Airport#/media/File:120513-BER-innen.JPG

    View full-size slide

  2. @stilkov
    Alternative title:

    10 Diseases You Should Know About

    View full-size slide

  3. @stilkov
    n. A pathological condition of a part, organ, or
    system of an organism resulting from various
    causes, such as infection, genetic defect, or
    environmental stress, and characterized by an
    identifiable group of signs or symptoms.
    n. A condition or tendency, as of society, regarded
    as abnormal and harmful.
    n. Obsolete Lack of ease; trouble.
    dis ease (dĭ-zēzˈ)
    ·

    View full-size slide

  4. @stilkov
    1. Over-Generalization Drive

    View full-size slide

  5. @stilkov
    Symptom: Seeing
    commonalities in
    everything and turning
    them into generic
    solutions

    View full-size slide

  6. @stilkov
    Phases in a Developer’s Life

    View full-size slide

  7. @stilkov
    1. The Enthusiastic Developer
    “This stuff is
    cool - let’s build
    programs! For
    real people!”

    View full-size slide

  8. @stilkov
    Boring, boring, boring.
    Create Customer
    Find Customer
    List Customers
    Edit Customer
    Delete Customer
    Create Order
    Find Order
    List Orders
    Edit Order
    Delete Order
    Create Product
    Find Product
    List Products
    Edit Product
    Delete Product

    View full-size slide

  9. @stilkov
    2. The Disillusioned Developer
    “Oh. Real people
    have boring
    problems.”

    View full-size slide

  10. @stilkov
    Create Customer
    Find Customer
    List Customers
    Edit Customer
    Delete Customer
    Create Order
    Find Order
    List Orders
    Edit Order
    Delete Order
    Create Product
    Find Product
    List Products
    Edit Product
    Delete Product

    View full-size slide

  11. @stilkov
    Create Thing
    Find Thing
    List Thing
    Edit Thing
    Delete Thing

    View full-size slide

  12. @stilkov
    3. The Enthusiastic Architect
    “Generic solutions! Cool!”
    Create Thing
    Find Thing
    List Thing
    Edit Thing
    Delete Thing

    View full-size slide

  13. @stilkov
    4. The Disillusioned Architect
    KISS
    YAGNI
    Lean
    Minimable viable product
    Story focus

    View full-size slide



  14. @stilkov
    When you go too far up, abstraction-wise,
    you run out of oxygen. Sometimes smart
    thinkers just don't know when to stop,
    and they create these absurd, all-
    encompassing, high-level pictures of the
    universe that are all good and fine, but
    don't actually mean anything at all.
    These are the people I call Architecture
    Astronauts.
    Joel Spolsky
    “Don’t Let Architecture Astronauts Scare you”, http://www.joelonsoftware.com/articles/fog0000000018.html

    View full-size slide

  15. @stilkov
    5. The “Wise” Architect
    Answer: It depends.
    Question: *

    View full-size slide

  16. @stilkov
    2. Domain Allergy

    View full-size slide

  17. @stilkov
    Symptom: Treating the
    domain as a negligible
    nuisance

    View full-size slide

  18. @stilkov
    Application
    (100%)
    Configuration
    10%
    The 

    Generic

    Thing

    Machine
    90%

    View full-size slide

  19. @stilkov
    80% 20%
    Functionality:
    320%
    80%
    Time/Effort:

    View full-size slide

  20. @stilkov
    Configuration
    The 

    Generic

    Thing

    Machine
    Customer
    Developer

    View full-size slide

  21. @stilkov
    The benefits of choices already made
    Microsoft .NET + Visual Studio
    SAP et. al.
    Ruby on Rails

    View full-size slide

  22. @stilkov
    3. Obsessive Specialization
    Disorder

    View full-size slide

  23. @stilkov
    Symptom: Believing every
    problem to be unique, even
    if it’s been solved 1,000
    times

    View full-size slide

  24. @stilkov
    Task: Read a file of text,
    determine the n most frequently
    used words, and print out a
    sorted list of those words along
    with their frequencies.

    View full-size slide

  25. @stilkov
    Donald Knuth Doug McIlroy
    Dr. Drang, http://www.leancrew.com/all-this/2011/12/more-shell-less-egg/
    10-page literal
    Pascal program,
    including
    innovative new
    data structure
    tr -cs A-Za-z '\n' |
    tr A-Z a-z |
    sort |
    uniq -c |
    sort -rn |
    sed ${1}q

    View full-size slide

  26. @stilkov
    Symptom: Believing
    everything needs to be a
    perfect match to your
    environment to be usable

    View full-size slide

  27. @stilkov
    4. Unhealthy Complexity
    Attraction

    View full-size slide

  28. @stilkov
    Symptom: Being so smart
    you can’t be bothered by
    simple approaches

    View full-size slide

  29. @stilkov
    Benefits of Complexity
    > Challenging work
    > New and interesting experience
    > Self-esteem
    > Community
    > Barrier to entry
    > Job security

    View full-size slide

  30. @stilkov
    5. Analysis Paralysis

    View full-size slide

  31. @stilkov
    Symptom: Taking longer to
    evaluate than to actually
    do it

    View full-size slide

  32. @stilkov
    Vendor Selection
    Collect and agree on requirements
    Week 0
    Conduct market research
    Week 8
    Send out RFP to selected vendors
    Week 10
    Evaluate responses, create shortlist, start PoC
    Week 14
    Evaluate PoC results, recommend vendor X
    Week 20
    Accept your CEO picked vendor Y
    Week 26

    View full-size slide

  33. @stilkov
    6. Innovation Addiction

    View full-size slide

  34. @stilkov
    Symptom: Things become
    progressively less fun the
    closer you get to
    production

    View full-size slide

  35. @stilkov
    Symptom: Using fashionable
    technology because it’s popular

    (a.k.a. conference-driven
    architecture)

    View full-size slide



  36. @stilkov
    Mindful choice of technology
    gives engineering minds real
    freedom: the freedom to
    contemplate bigger questions.
    Technology for its own sake is
    snake oil.
    Dan McKinley

    http://mcfunley.com/choose-boring-technology

    View full-size slide

  37. @stilkov
    Image Credit: Dan Dickinson, https://flic.kr/p/9mUs73

    View full-size slide

  38. @stilkov
    7. Severe Tunneling Fixation

    View full-size slide



  39. @stilkov
    I know what I like
    And I like what I know …
    Genesis

    View full-size slide

  40. @stilkov
    Symptom: Enforcing an
    architectural approach
    that clashes with the
    framework, libraries or
    tools you use.

    View full-size slide

  41. @stilkov
    Symptom: Using
    fashionable technology
    because it’s popular (a.k.a.
    fallacy of argument by
    authority)

    View full-size slide

  42. @stilkov
    8. Asset Addiction

    View full-size slide

  43. @stilkov
    Symptom: Becoming so
    attached to a particular
    tool/library/framework it
    becomes a fit for every
    problem.

    View full-size slide

  44. @stilkov
    9. Exaggerated Risk Aversion

    View full-size slide

  45. @stilkov
    Symptom: Sticking with
    horrible, horrible,
    HORRIBLE tools because
    they’re there

    View full-size slide

  46. @stilkov
    Symptom: Confusing
    “easy” with simple,
    creating accidental
    complexity

    View full-size slide

  47. @stilkov
    simple
    complex
    easy
    hard
    Rich Hickey, “Simple Made Easy”, http://www.infoq.com/presentations/Simple-Made-Easy

    View full-size slide

  48. @stilkov
    10. Impact Dissonance

    View full-size slide

  49. @stilkov
    Symptom: Becoming too
    detached from the actual
    system that is being
    delivered

    View full-size slide

  50. @stilkov
    Related:
    Governance Megalomania

    View full-size slide

  51. @stilkov
    Symptom: Believing
    everything has to be
    approved by you to ensure
    it meets architecture
    standards

    View full-size slide

  52. @stilkov
    What architects want to do
    Shape strategy
    30 %
    Make important decisions
    30 %
    Mentor developers
    20 %
    Explore technologies
    20 %

    View full-size slide

  53. @stilkov
    What others think architects do
    Slow down development
    20 %
    Pick the wrong tools
    20 %
    Refuse to learn from devs
    20 %
    Define annoying rules
    40 %

    View full-size slide



  54. @stilkov
    “Architect” is Latin
    for “Can’t code anymore.”
    Ted Neward

    View full-size slide

  55. @stilkov
    What architects actually do
    Do technical stuff
    5 %
    Act as salespeople
    30 %
    Try to be involved
    35 %
    Defend architecture
    30 %

    View full-size slide

  56. @stilkov
    Image Credit: Sean Michael Ragan, http://flic.kr/p/8XEm6L

    View full-size slide

  57. @stilkov
    I don’t have an answer …

    View full-size slide

  58. @stilkov
    … so here’s one, anyway

    View full-size slide

  59. @stilkov
    An Architect’s Success Formula
    Dogma and rules 10 %
    Experience 20 %
    Pragmatism 20 %
    Flexibility 10 %
    Minimalism 10 %
    Trends and future needs 10 %
    Experiments & PoCs 10 %
    Hands-on participation 10 %
    Vendor advice 0 %

    View full-size slide

  60. www.innoq.com
    innoQ Deutschland GmbH
    Krischerstr. 100
    40789 Monheim am Rhein
    Germany
    +49 2173 3366-0
    Ohlauer Str. 43
    10999 Berlin
    Germany
    +49 2173 3366-0
    Ludwigstr. 180E
    63067 Offenbach
    Germany
    +49 2173 3366-0
    Kreuzstr. 16
    80331 München
    Germany
    +49 2173 3366-0
    innoQ Schweiz GmbH
    Gewerbestr. 11
    CH-6330 Cham
    Switzerland
    +41 41 743 0116
    That’s all I have.

    Thank you!
    Stefan Tilkov
    [email protected]
    @stilkov
    +49 170 471 2625

    View full-size slide

  61. www.innoq.com
    OFFICES
    Monheim
    Berlin
    Offenbach
    Munich
    Zurich
    FACTS
    ~125 employees
    Privately owned
    Vendor-independent
    SERVICES
    Strategy & technology consulting
    Digital business models
    Software architecture & development
    Digital platforms & infrastructures
    Knowledge transfer, coaching & trainings
    CLIENTS
    Finance
    Telecommunications
    Logistics
    E-commerce
    Fortune 500
    SMBs
    Startups

    View full-size slide