The lost art of software design by Simon Brown

Поділитися
Вставка
  • Опубліковано 12 жов 2022
  • “Big design up front is dumb. Doing no design up front is even dumber.” This quote epitomises what I’ve seen during our journey from “big design up front” in the 20th century, to “emergent design” and “evolutionary architecture” in the 21st. In their desire to become “agile”, many teams seem to have abandoned architectural thinking, up front design, documentation, diagramming, and modelling. In many cases this is a knee-jerk reaction to the heavy bloated processes of times past, and in others it’s a misinterpretation and misapplication of the agile manifesto. As a result, many of the software design activities I witness these days are very high-level and superficial in nature. The resulting output, typically an ad hoc sketch on a whiteboard, is usually ambiguous and open to interpretation, leading to a situation where the underlying solution can’t be communicated, assessed, or reviewed. If you’re willing to consider that up front design is about creating a sufficient starting point, rather than creating a perfect end-state, you soon realise that a large amount of the costly rework and “refactoring” seen on many software development teams can be avoided. Join me for a discussion about the lost art of software design, and how we can reintroduce it to help teams scale and move faster.
    SIMON BROWN
    Simon is an independent consultant specialising in software architecture, and the author of “Software Architecture for Developers” (a developer-friendly guide to software architecture, technical leadership and the balance with agility). He is also the creator of the C4 model for visualising software architecture, and the founder of Structurizr. Simon is a regular speaker at international software development conferences, and travels the world to help organisations visualise and document their software architecture.
    ------------------------------------------------------------
    INTRO
    * visuals & editing by @Mercator
    * music : Avocado by Ephixa
  • Наука та технологія

КОМЕНТАРІ • 24

  • @stefan-hoehn
    @stefan-hoehn Рік тому +17

    There is a good reason why this talk was rated as on of top ones during the conference. Simon really speaks from my heart. Can we please restart doing (not big) up front design and then iterate over and learn from it?
    Thanks Simon!

  • @avanishr
    @avanishr Рік тому +3

    Great talk, I am in the midst of working on a 2 year long project and only after the first 4 months of work did I realize that my risk prioritization was in whack. Getting perspectives from key stakeholders upfront as was suggested could have avoided some of the troubles

  • @juniorwebd
    @juniorwebd Рік тому

    Great talk! Thank you very much!

  • @danzaharescu2632
    @danzaharescu2632 8 місяців тому

    Very nice talk ... you can easily fall into the trap set by Agile manifesto, because the main page advices about a way of working which is not totally wrong, but incomplete. The need for upfront design is unfortunately noted at bottom and the front page is heavily promoted in trainings. Thumbs up for the talk ... and let's hope Agile Manifesto will be upgraded some day. An eye opening talk indeed !

  • @kallaskaspar
    @kallaskaspar Рік тому

    31:56 "A common set of abstractions is more important than a common notation." That's powerful!

  • @papanito4802
    @papanito4802 4 місяці тому

    Very cool and refreshing talk. I think more people should see this video.

  • @armenarz4062
    @armenarz4062 Рік тому

    Thanks

  • @shyamagrawal6161
    @shyamagrawal6161 Рік тому +2

    One of the best session .. Thanks Simon

  • @pauloperbone
    @pauloperbone Рік тому +2

    Awesome talk!

  • @emanuelerabino3909
    @emanuelerabino3909 Рік тому +1

    Thanks Simon for the talk, absolutely relevant.
    I find myself completely in agreement with the arguments and it is a theme that I live on the skin every day in my work.
    The big question is: how to address different sensitivities about "when to stop upfront design" in a team? Simon suggests a series of "goals", but imho they remain difficult to measure (for example: "you understand ... requirements").

    • @carlwummel9050
      @carlwummel9050 9 місяців тому +1

      Hmm... maybe something like...
      When count(currently unanswerable questions)/count(questions) < 0.2
      So you discussed and clearified 80 questions and twenty remain.
      Have a round of "Rate the criticality of uncertainty" for these 20. Decide to investigate it. Or guesstimate the risk (cost) of trial and error it.
      The gut-feeling is still there, however, the whole point is to think about the stuff you do a "bit" more before starting to invest heavily in it. Goes back to the old saying of "the later an error is found the more expensive it is to fix it" or something like that.

  • @PaulSebastianM
    @PaulSebastianM Рік тому +1

    19:08 LMFAO!

  • @SamTipton
    @SamTipton Рік тому +1

    The lost art of software (diagram) design

  • @xtinctspecies
    @xtinctspecies Рік тому +8

    I do not disagree with most of his stuff. But there is something in his talks that turns me off. Ridiculing things said to him for example or calling things garbage.

    • @DF-ss5ep
      @DF-ss5ep Рік тому +1

      Yes. He's making it look like it's just obvious that you have to design things, and being weary of design is just stupid. It's not stupid, there is a reason for that. It may be wrong, or not, but there are good reasons behind it.

    • @koskoz
      @koskoz Рік тому

      @@DF-ss5ep reasons like?

    • @carlwummel9050
      @carlwummel9050 9 місяців тому

      ​@@koskozmaybe overthinking? At least thats what I am cursed for 😄

  • @user-or2cx2zs8w
    @user-or2cx2zs8w 8 місяців тому

    Yeah, but can we address the elephant in the room - WHO PUTS A STRATOCASTER HEADSTOCK ON AN ACOUSTIC GUITAR?!

  • @viktoralferov2874
    @viktoralferov2874 Рік тому +1

    22:27 How we can connect Angular to ORM? Easy - GraphQL.

  • @quentinquaadgras
    @quentinquaadgras Рік тому

    lol just use code to design software. It is unambigious.

    • @carlwummel9050
      @carlwummel9050 9 місяців тому

      It's so not. But I assume you did a joke - then it was funny 😉

  • @mirageman2
    @mirageman2 Рік тому

    I expected a bit more hands on or some cool enlightning, maybe this comes somewhere after the first 10 minutes, that was just too abstract for me, but just my opinion.

    • @koskoz
      @koskoz Рік тому

      So you're complaining but you haven't even watch 10 minutes?

  • @purpinkn
    @purpinkn Рік тому +1

    Agile killed software