A Daily Practice of Empirical Software Design - Kent Beck - DDD Europe 2023

Ғылым және технология

Domain-Driven Design Europe 2023
dddeurope.com - / ddd_eu - newsletter.dddeurope.com/ / domain-driven-design-e...
Organised by Aardling (aardling.eu/)
The economic rationale for software design is increased revenue & decreased cost. The relationship rationale for software design is to encourage trust through a steady delivery of value. The humane rationale for software design is to care for & encourage the growth of the geeks working on the software &, by extension, care for & encourage the growth of those affected by geeky decisions.
A short list of principles & observations serves to explain why satisfying all these rationales is difficult--coupling & cohesion, time value versus optionality, power laws. The same list suggests a way forward for software designers in a complicated, conflicted, uncertain, & deeply human world--large changes in small, safe steps.
We'll start with a 10x/day situation--you need to change some messy code. Do you tidy first? (Spoiler: likely yes, only as much as you need for now.)
About Kent Beck:
Kent consistently challenges software engineering dogma, promoting ideas like patterns, test-driven development, and Extreme Programming. Currently affiliated with Three Rivers Institute and Gusto, he is the author of many Addison-Wesley titles.

Пікірлер: 27

  • @marcusradell7544
    @marcusradell75446 ай бұрын

    One of the best talks I've ever listened to. The description of coupling and cohesion was Correct, Understandable, and Terse. Sometimes you can get all three 😄

  • @MarcusHammarberg
    @MarcusHammarberg4 ай бұрын

    Goodness from start to end. Such much to unpack here. Also - looks and talks a bit like John Malkovich - never noticed that before. That's a movie I wanna see - Being Kent Beck.

  • @TSD0416
    @TSD04164 ай бұрын

    Thank you so much for uploading this talk. Excellent talk and thank you Mr Beck for sharing your experience, knowledge and insights with us Geeks in the world ❤🙏

  • @kdiggity1
    @kdiggity16 ай бұрын

    Another brilliant talk from the legend.

  • @gabrielemastrapasqua2939
    @gabrielemastrapasqua29397 ай бұрын

    What a wonderful talk! Thanks Kent Beck! 🤩

  • @brettdelia
    @brettdelia6 ай бұрын

    Great talk. Looking forward to the books. Loved the Powell's Book store shoutout!!

  • @stephendgreen1502
    @stephendgreen15027 ай бұрын

    Best talk on software design I’ve seen

  • @maverickmusic101
    @maverickmusic1016 ай бұрын

    Great talk, thanks

  • @maximandreev593
    @maximandreev5937 ай бұрын

    I liked the highlight that coupling/cohesion are respective to changes.

  • @PhilipNee
    @PhilipNee4 ай бұрын

    learned immensely.

  • @jimmyhirr5773
    @jimmyhirr57734 ай бұрын

    The definition of "cohesion" here sounds just like Meilir Page-Jones's definition of "connascence." It's even characterized by strength, locality, and degree.

  • @aaronzhong
    @aaronzhong7 ай бұрын

    Great talk, looking forward to the books! Separating the behavioural and structural changes feels like another way to look at TDD in the green and refactor cycles, or possibly even an iteration on the TDD flow with red - refactor (tidying first) - green - refactor?

  • @FlaviusAspra
    @FlaviusAspra7 ай бұрын

    41:00 "lumpers and splitters". Ask the devs which type they are and their yoe and if they used to be the other type and at how many yoe they changed. Then you're able to tell what common developer wisdom is.

  • @jimmyhirr5773
    @jimmyhirr57734 ай бұрын

    "Why are we still storing our code in files/directories?" Because Code Bubbles (Andrew Bragdon's project, not the unrelated startup) never caught on.

  • @davidglaubman6341
    @davidglaubman63417 ай бұрын

    A beautiful talk. I have one question (nitpick?). Since coupling is defined wrt a delta, and cohesion is defined as an entity A whose components are coupled, it seems to me no easy thing to determine if A is cohesive since the space of possible changes is so large. Maybe this doesn’t matter in practice since the idea is to reduce cost of coupling by moving coupled components closer together (increasing cohesion)? Also you ask why we keep code in files - what is better alternative?

  • @KentLBeck

    @KentLBeck

    7 ай бұрын

    Cohesion should also be defined wrt a particular change (or set of changes). Better than files of text in hierarchical directories would be a native AST store. We had this in Smalltalk way back when and it was glorious.

  • @lars4953
    @lars49537 ай бұрын

    "Im glad I made it" lol...

  • @bartholomewtott3812
    @bartholomewtott38125 ай бұрын

    I can't find this definition of coupling in structured design

  • @bartholomewtott3812
    @bartholomewtott38125 ай бұрын

    I can't find Kent's definition of coupling and cohesion in structured design.

  • @bonsairobo
    @bonsairobo7 ай бұрын

    "Why are we still putting source code in files?" "Compared to what?"

  • @encapsulatio

    @encapsulatio

    7 ай бұрын

    He is one of the lucky influential people in software development domain who programmed in Smalltalk in his early career and of course he's going to make inside jokes that only other people who know what Smalltalk could do 30-40 years ago is still space age technology compared to keeping source code as text files like we still do today.

  • @bonsairobo

    @bonsairobo

    7 ай бұрын

    @@encapsulatio Are you referring to "image-based persistence"?

  • @antesmolcic4354
    @antesmolcic43546 ай бұрын

    Easily watched at 1.25 speed :)

  • @AAZinvicto

    @AAZinvicto

    2 ай бұрын

    For me it was 1.5

  • @mlntdrv

    @mlntdrv

    12 күн бұрын

    I am a bit of a genius myself as well.

  • @prathykt
    @prathykt7 ай бұрын

    He should be writing the 3rd book first because that is what helps in identifying what changes come in.

  • @igo_rs
    @igo_rs6 ай бұрын

    Boring. Lifecoaching becomes a valid excuse when there is no engineering.

Келесі