Cynefin Is A GAMECHANGER For Software Developers

Поделиться
HTML-код
  • Опубликовано: 20 янв 2025

Комментарии • 73

  • @ContinuousDelivery
    @ContinuousDelivery  9 месяцев назад +6

    FREE CONTINUOUS DELIVERY COURSE: Study the fundamentals of Continuous Delivery FOR FREE with my free course. Find out more HERE ➡ courses.cd.training/courses/cd-fundamentals

  • @JeffreyLiss0
    @JeffreyLiss0 9 месяцев назад +20

    I love it when two important sets of ideas (and the people behind them) converge. Both Cynefin and Continuous Delivery have been points of light that have helped me orient my thinking and make forward progress. Great video!

  • @brownhorsesoftware3605
    @brownhorsesoftware3605 9 месяцев назад +11

    ❤ Complexity is something that software engineers, scientists, and artists all wrestle with. All of them work by experimentation. It is the nature of creativity in any field. Lovely and very interesting video!

  • @br3nto
    @br3nto 9 месяцев назад +7

    Great video! I think this captures the problem with software engineering really well. Especially the part where you say that at any time, a change in requirement may mean our design doesnt work any more or is now a poor choice even though moments before the design was fine.

  • @johntrevithick5900
    @johntrevithick5900 9 месяцев назад +6

    Nice to hear someone discuss constraints in the context of software development! This feels like a convergence of ideas.
    Love the videos. My go-to resource for development ideas.
    BTW: nice attempt at pronouncing Cynefin, boyo. :)

  • @ITPMMentor
    @ITPMMentor 9 месяцев назад +3

    Outstanding presentation that every software architect should know. And even software project manager with the occasional dedicated executive who wants to support his company more through his engineering team. Understanding the differences and the trade-offs with each type of system could help temper expectations with customers and other stakeholders. I'm going to watch this video a couple more times and take notes. Excellent content as always

  • @PJAOK
    @PJAOK 9 месяцев назад +4

    THANK YOU - This is Terrific.
    All of your presentations are great, but this is uniquely important .. and the cnyefin concept you connect to connects to so many domains that are important right now. I had not considered this in terms of the process of developing software, but it makes so much sense.

  • @matsg2596
    @matsg2596 9 месяцев назад +4

    Very good take on Cynefin! Kudos!

  • @MattMcT
    @MattMcT 9 месяцев назад +2

    Wow this is really really cool to learn about, and so helpful for those of us that are converting traditional businesses to more software aware and software production friendly businesses. Thank you as always!!!

  • @revsquare
    @revsquare 5 месяцев назад

    Brillant explanation of the non linearity of software development. Thanks a lot. In addition, software development does not happen in a vacuum. The business environment, unexpected and uncontrollable exogenous factors, continuously affects the development, the direction of the software. This is a dynamic world not a static one. A business is a complex adaptive system, an organism… not a machine.

  • @Rob-zp3hn
    @Rob-zp3hn 9 месяцев назад

    Very helpful. Great to have such a good explanation in this context. I often use the Staci Matrix as a gateway drug to Cynefin in fear going down a rabbit hole. I'll just send a link to this vid from now on.

  • @KathySierraVideo
    @KathySierraVideo 9 месяцев назад +4

    Thank-you so much Dave. 🙏This is one of the most important videos (and concepts) I've seen in my 35 years in software. I'd argue that the problem of trying to solve non-linear problems with linear solutions is the single biggest contributor to both inefficiencies and ineffectiveness in virtually anything that involves living creatures and self-organization. I've taken a decade-long detour away from code and into movement skill training for pain, rehab, and performance (for both horse and human athletes), and the shift toward a non-linear pedagogy / approach has lit a fire in THAT space, turning classical/traditional practices inside out. Also wondering if you've read the book from AI folks Ken Stanley and Joel Lehman on "Why Greatness Can't Be Planned", inspired by their findings when developing novelty search algorithms. Or my favorite example where my two worlds of movement science and computer science collide: the 2015 Nature paper (Cully, et al.) "Robots that can adapt like animals" (featuring the MAP-Elites algo). So many beautiful examples are... emerging... 😉 for what happens when we let go of trying to solve complex problems as if they were linear/simple/"clear".

    • @ashnur
      @ashnur 9 месяцев назад +2

      Definitely check the wiki page then for the guide image, and Dave Snowden has a few long format workshop videos online where it is put in practice.

  • @radoslavstamenov4663
    @radoslavstamenov4663 9 месяцев назад

    The best thing I heard all week!

  • @AndySpamer
    @AndySpamer 9 месяцев назад

    Best explanation of Cynefin I've seen.
    Dave, do you mind if I play this video in some of my Agile training? Obviously credit will be given.

    • @ContinuousDelivery
      @ContinuousDelivery  8 месяцев назад +1

      Andy, please do feel free to use this in your training, but I would be grateful for the reference. Thanks.

  • @mikkolukas
    @mikkolukas 9 месяцев назад +1

    Yay! Cynefin FTW! ❤

  • @drivers99
    @drivers99 8 месяцев назад

    Chaotic Act-Sense-Respond reminds me of the OODA loop. Just starting at A, doesn’t matter since it’s a loop. Hmm, that might apply to other categories too, like Complex.

  • @Jonarzz
    @Jonarzz 9 месяцев назад +2

    This video could be a good explanation of why agile approach is usually better than waterfall when it comes to software engineering.

    • @quantum_ocean
      @quantum_ocean 9 месяцев назад

      But everyone learned that already decades ago!

    • @ContinuousDelivery
      @ContinuousDelivery  9 месяцев назад

      You'd think! But that's not my experience of most "agile orgs" in practice.

  • @AlfredNutile
    @AlfredNutile 9 месяцев назад +2

    Almost 200k subscribers 🎉🎉🎉

  • @sirgibsonable
    @sirgibsonable 9 месяцев назад +1

    Great stuff, as usual, Dave. At a couple of points in the video, you say "A follows B", but the example you cited, with "A" being sensing, *followed by* a response which you defined as "B". Did you mean "A followed by B"?

    • @ContinuousDelivery
      @ContinuousDelivery  9 месяцев назад

      I did mean "A follows B", I didn't mean that "A" was "Sense" and "B" was "Response" though. "A" and "B" were meant to be anything as in "Outcome A" resulted from "Action A"

  • @KimballRobinson
    @KimballRobinson 7 месяцев назад

    Could it be that most software alternates between complex and chaotic? In my experience, even just talking to users about possibilities changes their expectations and constraints - before you even make a real change! But feature implementation can still be approached in a "complex" mindset, while the project/epic needs an incremental, hypothesis-driven mindset? Software solves human problems and is fundamentally a human-oriented activity; (even internal design/architecture is about maintainability *by humans*). E.g. when you deliver software, people have to change their workflow, and may eventually demand new features they hadn't thought of before. ("now that I can see each item in my order has different status, I need to be able to track and cancel just one item on my order please"). Users who dislike change or anticipate changes that they fear... might pull out of a system and use workarounds (excel, etc). It's almost like fog-of-war, where just trying to anticipate what the other general is doing changes everything. I think. From a project/epic/sprint level perspective, we have to deliver in increments and accept risk by making risk small and incremental and experimental.

  • @edgeeffect
    @edgeeffect 9 месяцев назад

    The word "cynefin" reminds me of hearing Dan North talking about "habitability".

  • @techpiller2558
    @techpiller2558 9 месяцев назад

    I think everyone can be a 10x developer. It depends on the day you measure it. If you're feeling off, you might be a 0.1 from your best capability. People are stressed, there are deadlines, domestic issues, bad sleep, all sorts of things. The greatest leadership should take care of the workforce at a deep level. That would be the only way to truly reduce stress, and therefore 10x productivity, by improving the workers' lives.

  • @williamsbotchway2471
    @williamsbotchway2471 9 месяцев назад

    Ok it is time to ask can microsoft autodev handle these complexities or where do we place it?

    • @ContinuousDelivery
      @ContinuousDelivery  9 месяцев назад

      Not yet, and when it can we will have bigger concerns than loosing our jobs.

  • @citstuff
    @citstuff 9 месяцев назад

    You appear to have made a mistake when describing Chaotic. Here is a quote from Snowden, “too confusing to wait for a knowledge-based response.” The connection between the input and output of the system regular meaning the same input produces the same output. The problem is that small and even tiny changes to the input can have sometimes huge, sometimes small, and sometimes no effect on the output. This is what makes a chaotic system “confusing.”
    As you state in other places, complex systems differ from this in that the infinitely stateful (every input modifies the system by adding to the state) complex system is never the same twice when given the same input and therefore the same input can and often does produce different output .

  • @fennecbesixdouze1794
    @fennecbesixdouze1794 5 месяцев назад

    To argue that software development is not Simple and not merely Complicated, Dave points to the human aspect of software engineering, the engineers themselves (sick on day, Neo-like flow the next day, with no cause-and-effect). Then when arguing that software dev is not Chaotic, he insists we talk only about the machine aspects of software engineering: that computer execution is deterministic, and that non-deterministic aspects like concurrency are parameters under our control.
    This thought process is schizophrenic.
    If we conceptualize software development as creative and dependent on humans, then it is a chaotic system as a whole. Software systems themselves at a static moment in time in a particular context are merely complex: hard to predict, but still deterministic and can be understood in hindsight. But software development as a practice is not about one individual software system at a static moment in time. Software development as a whole is most certainly in the chaotic realm. Dave named one example that he should have followed to its conclusion: that software engineers are human. But the chaotic nature of software development is not just about the human performance of software engineers, but also about the context in which software systems are deployed: software will be constantly used in different, unanticipated ways. Markets will change and the software will have to adapt, etc.
    Dave is simply wrong that software should follow a scientific Baconian process: probe-sense-respond. It is a chaotic realm and companies would do better to follow the chaotic path: act-sense-respond. Follow your intuition to release small increments, put in monitoring and observability so you will be able to understand the result of your actions, then respond to the results with more action.
    Largely I think this is because Dave doesn't actually understand the scientific process and what probe-sense-respond actually means. It doesn't mean "let's release version 1 and then measure how people respond", that would bet he chaotic realm as I've mentioned. Probing means constructing specific experiments that are meant to probe and ascertain certain parameters of a formal scientific model of the system. This is not a good idea, because software engineering is chaotic: there is no fixed model that we can probe to discover the parameters of.

  • @benmathews533
    @benmathews533 9 месяцев назад

    Is that a Gource render in the background?

  • @fcanz519
    @fcanz519 9 месяцев назад

    Problem is, after learning about cynefin, I find a number of people fall for the allure of complexity and begin to strive for it. They want something to be complex, when some analysis or known practice would do. It falls in the same trap as the original "pattern envy" did for design. Stay flexible and be curious

  • @johntrevithick5900
    @johntrevithick5900 9 месяцев назад

    Cynefin is a useful framework, but some of the details are giving me a mental itch...
    The reference to loose/tight coupling seems the wrong way around, at least in the context of software development. Why would decoupled components be chaotic? If I can change a module without worrying about the effect it has on other modules - that is much clearer. We're *aiming* for decoupled code.
    Also, what does "lacking constraint" mean? If it means "moving constraints", then sure - that's hard to deal with. But it implies "no constraints" - which is impossible.
    BTW: I'm using this diagram as a reference (en.wikipedia.org/wiki/Cynefin_framework#/media/File:Cynefin_framework_2022.jpg)

    • @ContinuousDelivery
      @ContinuousDelivery  8 месяцев назад +1

      Forgive me, but I think that you are being a bit over literal in ascribing this to technical uses of words like coupled in this context, this is not about components of a software system, but is much more general than that, it is talking about "systems" in the broadest sense...
      "A system is a group of interacting or interrelated elements"
      So in a coupled "system" is if I do X and Y then Z ALWAYS results in a decoupled system if I do X and Y then that has no bearing on whether to not Z happens.
      In a chaotic system (meaning broader than a software system) then the parts of that system *are* de-coupled and lack constraint and means they don't interact and so don't work together and so behaviour is chaotic. At least that is my reasoning of this diagram.

    • @johntrevithick5900
      @johntrevithick5900 8 месяцев назад

      ​@@ContinuousDelivery Thanks for the explanation. That does help to clarify a few things. Yes, maybe I'm being too literal, and I didn't intend to criticize. The Cynefin framework is very useful and intuitive.
      That said, terminology can be tricky, especially with systems terms. For example, it seems "chaotic" is used here when it perhaps should be "disordered". And "constraint" seems to mean "dependency".
      On its own, not a big deal. But when terms clash with other ways of describing systems, it creates confusion. But I think I've got it now.
      Thanks again.

  • @Solstice42
    @Solstice42 9 месяцев назад

    TC 13:50 Twitter - BAM!

  • @crazygamelover
    @crazygamelover 9 месяцев назад

    Felt personally attacked with that chaotic bug fixing comment😂

  • @JDLuke
    @JDLuke 9 месяцев назад

    Dave, I hate to be "that guy"... But I'm gonna do it anyway. The "Enroll" button on the free course is spelled "Enrol". You might want to deliver an update.

    • @ContinuousDelivery
      @ContinuousDelivery  9 месяцев назад

      I love a pedant (being a programmer:-) But in British English it is definitely spelled "enrol".

    • @JDLuke
      @JDLuke 9 месяцев назад

      @@ContinuousDelivery TIL

  • @ace90210ace
    @ace90210ace 9 месяцев назад +1

    I think using twitter as an example and then trying to argue it's no chaotic is pretty funny

  • @pixelfingers
    @pixelfingers 9 месяцев назад

    Poke and feel your way through

  • @TheLucanicLord
    @TheLucanicLord 9 месяцев назад

    12:19 Disordered? If you mean unknown, there's a better word for that.

    • @jockoselberg6841
      @jockoselberg6841 9 месяцев назад

      The better word is "aporetic"

    • @ContinuousDelivery
      @ContinuousDelivery  8 месяцев назад +1

      None of these are my words, these are the words that Cynefin uses. The only divergence is that I, and quite a few other people it seems, prefer the earlier version of "Simple" rather than the more aliteration inspired "Clear"

    • @jockoselberg6841
      @jockoselberg6841 8 месяцев назад

      @@ContinuousDelivery Dave renamed Disordered to Aporetic a couple years back. No worries, as Dave has been tweaking the language a bit lately. Just thought I'd point it out :). This is an excellent video btw!

  • @AndreyAzov
    @AndreyAzov 8 месяцев назад

    How is any of this a GAMECHANGER for software developers? What would we, software developers, start doing differently, after being introduced to the Cynefin model?
    Also, what is the difference between "Act-Sense-Respond" and "Probe-Sense-Respond"? How is "probe" different from "act"?

  • @ashnur
    @ashnur 9 месяцев назад

    Hi Dave, please update your description of a video. Cynefin is not a "model" it's a framework.

    • @ContinuousDelivery
      @ContinuousDelivery  9 месяцев назад +1

      The description does describe it as a Framework first, it later mentions that it is a "model" which I think it clearly is, and since that addition improves the search-ability, Sorry to disagree, but I think it is ok for it to stand.

  • @smallbluemachine
    @smallbluemachine 9 месяцев назад +1

    Refer to the butt-cheek matrix.

  • @csabaczcsomps7655
    @csabaczcsomps7655 9 месяцев назад

    Every river have different fish, so every computer have different software.

  • @ashnur
    @ashnur 9 месяцев назад

    lol, took you long enough to get here :D

  • @BryonLape
    @BryonLape 8 месяцев назад

    Both Scrum and SAFe re-enforce the nonsense to management.

  • @jruere1
    @jruere1 9 месяцев назад +1

    So, as humans are not perfectly consistent no system involving humans could be clear? Meh.

  • @JetJockey87
    @JetJockey87 9 месяцев назад

    Is it just me or does that image look like a neuron?

  • @TimJW
    @TimJW 9 месяцев назад

    "we can't write automated tests because it's non-deterministic"... OK fix it then!

  • @Grouiiiiik
    @Grouiiiiik 9 месяцев назад +14

    So it's a 17 minutes marketing video.

    • @Skittaru
      @Skittaru 9 месяцев назад +1

      Is there a product that this is promoting for anybody to buy? I just see typical channel self-promotion and link to their own free course.

    • @MarceloLopezJr
      @MarceloLopezJr 9 месяцев назад

      And how is that not marketing?

    • @ContinuousDelivery
      @ContinuousDelivery  8 месяцев назад +18

      I am not really sure what you expect from a RUclips channel? It takes a lot of time, effort, and a fair amount of money to produce videos like these. So sure we try to sell some things to make up those costs. That isn't our only motivation, I take a lot of pride in trying to help people to improve their approach to software development, and we get a lot of feedback that we do that. But I have bills to pay too. So no! it is not 17 minutes of marketing it is about 1 minute of marketing and 16 minutes of what I hope is useful, educational content.
      If you'd like to see less advertising, you could watch on Patreon and support the channel that way, but good luck finding content online that isn't funded by marketing in some way.

    • @MarceloLopezJr
      @MarceloLopezJr 8 месяцев назад +1

      @@ContinuousDelivery Too right....

    • @Sergio_Loureiro
      @Sergio_Loureiro 8 месяцев назад

      @@ContinuousDelivery some people have their brains inside their asses. It is the case of that person.