Visualising software architecture with the C4 model - Simon Brown, Agile on the Beach 2019

แชร์
ฝัง
  • เผยแพร่เมื่อ 20 ธ.ค. 2024

ความคิดเห็น • 113

  • @kloudja
    @kloudja ปีที่แล้ว +70

    One of the best presentations I've seen so far. Not boring at all. Not reading the power point slides. Simple bullet points. Amazing presentation. Interesting topic. Amazing content. Big applause to Simon Brown

    • @AlexandrePaivaBR
      @AlexandrePaivaBR 9 หลายเดือนก่อน +2

      Those are my words too. Excelent presentation.

  • @MinhDangbui_Asopi
    @MinhDangbui_Asopi 9 หลายเดือนก่อน +7

    Still awesome in 2024! What a great presentation and explanation to break down such a complex ways of communication into simple process.

  • @JazminMortimer
    @JazminMortimer 4 ปีที่แล้ว +60

    What a lovely presentation! Sat through the whole thing easily.

  • @DeepakAggarwal77
    @DeepakAggarwal77 10 หลายเดือนก่อน +2

    One of the best presentation not just in terms of delivery and content, but also impact🎉

  • @archipeg
    @archipeg 3 ปีที่แล้ว +13

    We loved the C4 model, and this video helped us understand it in more detail, right from the author. We will soon be supporting C4 inside Archipeg, too. Seems to be a very promising metamodel for architecture. Thanks for this amazing video!

  • @SuperToughnut
    @SuperToughnut 2 ปีที่แล้ว +1

    Best video I have seen on drawing architecture diagrams. I'm glad I'm not the only one that looks at others diagrams and say "what"?

  • @christians6843
    @christians6843 4 ปีที่แล้ว +15

    27:11 from my experience the hardest decision to be made when modelling C4. Both stories are very important, true and even necessary. Omitting kafka as a box: you don't see kafka needs to be deployed as a stand-alone thing. You don't see the dependencies at a glance. In some cases the diagram might get very complex, when many components talk to each other instead to a single box. Any suggestions?

    • @PaulSebastianM
      @PaulSebastianM 4 ปีที่แล้ว +1

      Yeah. Rearchitect.

    • @christians6843
      @christians6843 4 ปีที่แล้ว

      @@PaulSebastianM what does it mean?

    • @adelyawn
      @adelyawn 4 ปีที่แล้ว +3

      yeah, I also feel like C4 lacks a concept of a "proxy" for CDNs, event buses, proxy servers etc

    • @christians6843
      @christians6843 4 ปีที่แล้ว +5

      @@adelyawn indeed, thats what I mean. From a theoretical point of view its the same like when alice and bob communicate with each other. You could draw a line between them. It would be correct. You could also draw a line to some cloud in between or some routers etc (okay somehow out of scope C4). However, proxies, brokers etc are deployable units and a layer below alice and bob.
      If you draw a line between them you see the purpose better. Through the middleware, you see the architecture better, but the purpose is lost.
      As of you need both to understand the system, I tend to draw 1 line through all 3 entities to have the purpose and the high level architecture at a glance. Multiple diagrams or multiple lines with seperate descriptions would make more confusion in most cases imho.
      Do you have another approach?

    • @adelyawn
      @adelyawn 4 ปีที่แล้ว +3

      @@christians6843 don't have any approaches yet, but I'm 100% with you on this

  • @cfpmx
    @cfpmx 2 หลายเดือนก่อน

    I found out about C4 thanks to a job interview, and now I am implementing it to design some processes, and I love it.

  • @felipealmeida6091
    @felipealmeida6091 2 ปีที่แล้ว +2

    Watching in 2022 and this is amazing.

  • @twoencore
    @twoencore 2 ปีที่แล้ว +3

    Really enjoyed this. I found my self using old school UML to still describe an architecture. This video really helped refine my approach!

  • @thirudoddi8485
    @thirudoddi8485 2 ปีที่แล้ว +4

    Nice Presentation! I always struggle what the Architect is trying to convey using the boxes and lines, a lot of hidden details even in a well organized (not documented) diagram. The Architectural diagrams are very valuable resources and C4 will definitely help to make the Architecture models self explanatory (hopefully)!

  • @wallyhall
    @wallyhall 2 ปีที่แล้ว +7

    I honestly think if universities around the world taught this first - and *then* UML - software teams (and engineering teams generally) would start to have saner (read: actually valuable) documentation within the next 10 years.
    After a decade-and-a-half of secular software engineering experience, I've only just discovered the C4 model. It's done more for my career than half of my formal education.
    Without hesitation I would say to anyone reading this: *start here*. Start with the C4 model. And stick with it until you have reason to break from it. And do your next employer/team a favour: pass this message on.

  • @thumarzeel
    @thumarzeel 2 หลายเดือนก่อน

    This is the best thing for creating diagrams... even after 5 years

  • @quangninhus
    @quangninhus ปีที่แล้ว +2

    Exactly what I'm looking for. Thanks a lot

  • @AMFLearning
    @AMFLearning ปีที่แล้ว +2

    nice mr simon brown, you are inspired us to create content about software architect for our college in UINSA, thanks a lot #amflearning #amflearningbydoing #amfedukasi #amfedukasiforeveryone

  • @Zmey5656
    @Zmey5656 2 หลายเดือนก่อน

    A very detailed and very useful explanation about C4 Model. Thanks.

  • @dandoescode
    @dandoescode 3 ปีที่แล้ว +2

    Great presso! Amazing summary of C4 modelling and recommended best practices.

  • @fad_ly
    @fad_ly 3 หลายเดือนก่อน

    What a great presentation. Thank you Simon

  • @marcthomas9831
    @marcthomas9831 3 ปีที่แล้ว +3

    I used to be the person that you talk about "Just use a whiteboard" and use those diagrams to talk around. However, it doesn't hurt to have a simple, common notation. UML always felt too detailed and more applicable to application design rather than architecture.

  • @lzap_rh
    @lzap_rh ปีที่แล้ว +3

    UML is C++ of architecture design.

  • @rdogadin
    @rdogadin ปีที่แล้ว

    Great demo. You can also use Miro boards, if you don't want your sticky notes fall off.

  • @GlennLewis
    @GlennLewis 2 ปีที่แล้ว

    Great talk... except... Where is the "workspace.dsl" file for this talk? That would be incredibly useful to have as a reference! Attempting to find a tutorial on writing this DSL file is extremely frustrating.

  • @josiahtobas9172
    @josiahtobas9172 5 ปีที่แล้ว +7

    Straight and to the point, great to see it's being taught to more people.

  • @Japethify
    @Japethify 5 ปีที่แล้ว +6

    Interesting topic - definetly worth a try.
    Just one nitpick: Wouldn't it be better to call it C3 model because, as mentioned in the talk, one shouldn't do necessarily code diagrams? I feel C3 model would convey the idea more clearly. What do you think?

    • @rosey182
      @rosey182 4 ปีที่แล้ว +2

      or C3 +1

    • @aldosolorzano5734
      @aldosolorzano5734 4 ปีที่แล้ว +2

      @@rosey182 or C3++

    • @maskahleo
      @maskahleo 4 ปีที่แล้ว +1

      @@aldosolorzano5734 or just C++

    • @MaximilianBerkmann
      @MaximilianBerkmann 4 ปีที่แล้ว

      AFAIK Calling it C3 would lead to more confusion with the already existing C3 tool (which you probably know if you've done Exploratory Data Analysis and visualisations).
      SC3 might or SC2 might have been more accurate for the model IMO.

    • @christians6843
      @christians6843 3 ปีที่แล้ว +1

      Code diagrams are great. But usually you should do them on demand and if possible auto-generated. Also, giving the component level diagrams you should be able to determine the code artifacts quickly.
      So yes, level 4 in C4 is only some set of recommendations. But it also borrows UML or other helpful notations on that level, instead of reinventing the wheel.
      That also means, I'd explicitly label such a diagram as "c4 code diagram", even though it might be UML. Just to make its relationship with the other diagrams obvious.

  • @roman_mf
    @roman_mf ปีที่แล้ว

    This is awesome. Wish I saw this talk earlier!

  • @jeromemohanan
    @jeromemohanan 2 ปีที่แล้ว +1

    Great Talk. Wonderful tool for High Level Abstraction. Paints the big picture very clearly.

  • @MB-pt8hi
    @MB-pt8hi 3 ปีที่แล้ว +2

    What is Simon using for the presentation to get this zoom circle and give the rest of the screen a shadow?

    • @DeepakAggarwal77
      @DeepakAggarwal77 10 หลายเดือนก่อน

      This can be done using obs. I don't know though what Simon is using per se

  • @TheMegaMrMe
    @TheMegaMrMe 3 ปีที่แล้ว +2

    very good points.
    On the AWS example with icons, context is king. If you know the cloud, it makes sense and it is actually very helpful

    • @devops-sushi5534
      @devops-sushi5534 2 ปีที่แล้ว

      Exactly my thought. Most of the whiteboard examples make sense for all ppl who were attending at the meetings as well?

  • @illyam689
    @illyam689 8 หลายเดือนก่อน

    Great! Excellent content and presentation skills!

  • @AntonyMeyn
    @AntonyMeyn 3 หลายเดือนก่อน

    @MilanJovanovicTech Hope you can write your next blog around documenting your Modular Monolith with C4 models. :)

  • @warrenstrife4818
    @warrenstrife4818 ปีที่แล้ว

    what's the advantage of using C4 over uml ?

  • @mauricemakesmovies
    @mauricemakesmovies 2 ปีที่แล้ว

    Very clear presentation. Thanks for uploading this!

  • @darkmift
    @darkmift 3 ปีที่แล้ว

    This really clears up amny things,thank you.
    I would very much like to see the diagram from the lecture.

  • @Krazness
    @Krazness 3 ปีที่แล้ว

    Excellent Presentation. Thank you

  • @shawnmccool1622
    @shawnmccool1622 2 ปีที่แล้ว +1

    Nice talk, but the conference template is an unfortunate waste of screen real estate.

  • @chiro5533
    @chiro5533 3 ปีที่แล้ว

    This teacher makes learning fun.

  • @helium73
    @helium73 5 หลายเดือนก่อน

    what about the file and directory structure? Robert Martin talks about that. Although I think he did server side programming which is a lot easier than programming where you have to keep track of state. It's almost like maybe other languages should copy server side programming so you don't have to keep track of state. However I think Javascript got rid of that so that you have to keep track of state without concurrency. We need some criteria by which to choose good design. Design should make it easier to add features, easier to fix, it should allow the software to run faster. It should be more secure. it should be easier to fix by third parties. It should be easier to add features to by third parties. It should be as small as possible. It should be compatible with the most systems. There may be more requirements. There will be specific requirements. How can it's design serve those requirements?

  • @AlexeyPirogov
    @AlexeyPirogov 2 ปีที่แล้ว +1

    AWS diagrams are excellent for Deployment Diagrams.
    You immediately see AZs, regions which are extremely important to understand limitations (e.g. SPOF).
    I don't think C4 is good for Deployment diagram. At least with PlantUml, where alignment options are quite limited.

  • @thingstodowithBASS
    @thingstodowithBASS ปีที่แล้ว

    Great walkthrough!!

  • @marcorutzen5351
    @marcorutzen5351 ปีที่แล้ว

    Really great presentation!

  • @nettion
    @nettion 5 ปีที่แล้ว +2

    Very good and straight forward intro to c4 thanks for sharing

  • @AndriiKSK
    @AndriiKSK ปีที่แล้ว

    so good presentation

  • @AdnanHaider80
    @AdnanHaider80 4 ปีที่แล้ว +2

    Great. I must try this

  • @cesarkohl
    @cesarkohl ปีที่แล้ว

    Quite informative, thanks!

  • @MinhYNguyen
    @MinhYNguyen 3 ปีที่แล้ว

    that's very useful video. Super thanks

  • @AdrianWright-k3p
    @AdrianWright-k3p ปีที่แล้ว +2

    One major problem is that his software-architectural floorplan diagram is actually brilliant.

  • @myaccount09011975
    @myaccount09011975 4 ปีที่แล้ว

    Thanks Simon, great video.

  • @abdtubetv
    @abdtubetv 4 ปีที่แล้ว +2

    Great talk, straight to the point

  • @sidekick3rida
    @sidekick3rida 8 หลายเดือนก่อน

    I use OmniGraffle mostly and it's perfectly fine.

  • @andreferreira.86
    @andreferreira.86 3 ปีที่แล้ว +8

    For those who came to learn about the C4 model, just jump to 9:30.
    Before that he's just mocking someone else's diagram...

    • @simonbrown4821
      @simonbrown4821 3 ปีที่แล้ว +11

      That "mocking" serves an important lesson in what not to do - it wouldn't be included otherwise.

  • @oscarsolis5969
    @oscarsolis5969 5 ปีที่แล้ว +1

    Interesting model. Great Talk

  • @christianorduno6584
    @christianorduno6584 2 ปีที่แล้ว

    LOVED!!!!!

  • @jerylcook1708
    @jerylcook1708 2 ปีที่แล้ว

    through level 4 in the trash :) lol....i remember long long time ago...we use to use a tool to autogenerate "class diagrams"..i don't think that is a thing now days.

  • @sashakatwon4906
    @sashakatwon4906 ปีที่แล้ว

    really cool, thnx!

  • @AliRezaTaleghaniIR
    @AliRezaTaleghaniIR 3 ปีที่แล้ว

    awesome speech! speaks a lot as itself... 1+

  • @seshasaivenkat
    @seshasaivenkat 4 ปีที่แล้ว +1

    Simple ,Fantastic & Excellent

  • @nickandrievsky5705
    @nickandrievsky5705 6 หลายเดือนก่อน

    Brilliant

  • @tmbarral664
    @tmbarral664 3 หลายเดือนก่อน

    “UML notation is too complicated”
    Yes, I see that when design a DB.
    Merise, yep, the oldie, is easier to understand for an audience. Even devs.
    I reckon UML tried to be a jack of all trades making it….. a tad over complicated in some cases.

  • @paixaoxavante
    @paixaoxavante 6 หลายเดือนก่อน

    Great!

  • @andrewandrosow4797
    @andrewandrosow4797 4 ปีที่แล้ว

    Thanks! It`s a very interesting lection!

  • @musahassan5863
    @musahassan5863 3 ปีที่แล้ว

    Very helpful!

  • @willgumm
    @willgumm 5 ปีที่แล้ว +1

    Great stuff - time to get rid of Visio - great comment ...

  • @jorgetevez2122
    @jorgetevez2122 3 ปีที่แล้ว

    Thanks.

  • @정광조-w1x
    @정광조-w1x 3 ปีที่แล้ว

    thanks!

  • @reshmatamrakarful
    @reshmatamrakarful 3 ปีที่แล้ว +1

    34:37

  • @DodaGarcia
    @DodaGarcia 3 ปีที่แล้ว

    Whoa Martin Freeman is looking great these days

  • @rosssoxa
    @rosssoxa 4 ปีที่แล้ว

    good themes

  • @teminoah2960
    @teminoah2960 4 ปีที่แล้ว +5

    what a rare intelligence

  • @GauravPal-pd9rf
    @GauravPal-pd9rf 6 หลายเดือนก่อน

    9:35

  • @C3Cooper
    @C3Cooper 4 ปีที่แล้ว +3

    Simon took his argument one step too far and is very incorrect when he referenced the AWS/Azure symbol diagrams as pointless. Those diagrams are very useful summary to practitioners that are fluent in the symbology. If you're not fluent in the symbols, you're not the right audience. The symbology diagrams would compliment an L3 diagram and provide a helpful, service specific summary. Audience targeting is a fundamental rule in a communications - know your audience and label your diagramming accordingly. It is not always a choice between A -or- B.

    • @simonbrown4821
      @simonbrown4821 3 ปีที่แล้ว +6

      My experience suggests that the number of people fluent in the various AWS/Azure icons is actually quite small ... especially with the rate that AWS releases new services. That's why I recommend "icons supplement text, not replace it". Here's a blog post I wrote about cloud architecture diagrams: dev.to/simonbrown/cloud-architecture-diagrams-3pbm

  • @Jonathan-od5xc
    @Jonathan-od5xc 3 ปีที่แล้ว +1

    So C3

  • @ShpanMan
    @ShpanMan 4 ปีที่แล้ว +16

    Am I crazy or did he end up basically with the same diagram structure as all the previous teams... There was really nothing special in his approach other than layering which is not a new concept.

    • @sdrbox
      @sdrbox 4 ปีที่แล้ว +22

      No, he explained very well why use c4 model, that's the key of the video.

    • @adi_sekar
      @adi_sekar 2 ปีที่แล้ว +4

      Exactly, nothing new here. Just separated each layer out to its own diagram

    • @therealdrag0
      @therealdrag0 ปีที่แล้ว +1

      Yep. I listened at 2x speed and still skipped through it manually. Not much here.

    • @vitorassissantos4302
      @vitorassissantos4302 ปีที่แล้ว +7

      The key concept here is that it's not supposed to be innovative, but to help clean up the mind mapping mess that drive people insane while trying to use those previous innovative approaches.
      It's about the abstractions made throughout the process (he emphasized the term "abstraction first" in the video), not the final result.

    • @sharbelokzan9673
      @sharbelokzan9673 ปีที่แล้ว

      unfortunately yes, I was excited at first but got disappointed at the end. If those teams in the workshop he mentioned used C4 they will end up rating each other's diagrams as 7/10.
      I don't see a concrete representation of the "abstraction" here.

  • @anytcl
    @anytcl ปีที่แล้ว

    C4 model
    Context = System (but Context is fine too)
    Container = Component
    Component = Module
    Code = Code
    I guess the weird naming, is to be able to call it C4 instead of SCMC

  • @nextlifeonearth
    @nextlifeonearth 4 ปีที่แล้ว

    Just an FYI: Acronyms by definition are pronounce-able abbreviations. Just say abbreviation if you mean abbreviation.
    (sure, "up for debate" wise arses can go speak their gibberish while other people try to maintain a consistent, comprehensible language where all words with individual meanings don't just become synonyms of one another)

    • @namaste3089
      @namaste3089 4 ปีที่แล้ว

      I think you searched for English grammar architecture and ended up in Agile Modeling, since the only thing that you could point out from the talking was his use of the word Acronyms...

    • @nextlifeonearth
      @nextlifeonearth 4 ปีที่แล้ว

      @@namaste3089 It's worth saying. Software modelling is more of the same, little to say about that hasn't been said already.

  • @MineCrafterCity
    @MineCrafterCity 2 หลายเดือนก่อน

    What a bunch of nonesense.

  • @sthex4640
    @sthex4640 ปีที่แล้ว +3

    This can't get any more dishonest. Examples for bad modelling carefully chosen to include obvious works in progress, general ideas or helicopter views, with crossed out names, written on wrinkled paper. You spent no time to try to explain those, yet you've spent quite a bit to explain what you have modeled in C4, even though it was supposed to be so clear. And you've done multiple levels of presentation of your design and did not compare those to any other techniques. Absolutely nothing new here, just promoting old design under a new name.

  • @gyawimovement9164
    @gyawimovement9164 3 ปีที่แล้ว

    The bite-sized throat bacteriologically flash because move disappointedly rot excluding a loving helicopter. protective, insidious use

  • @tsss5271
    @tsss5271 2 ปีที่แล้ว

    You were very late in coming to the point and you were explaining things which were not relevent