Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Domain Driven Design and Spherical cows

Domain Driven Design and Spherical cows

Scheduled Pinned Locked Moved The Lounge
businesscomdesigncollaborationhelp
17 Posts 9 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • R raddevus

    I was just reading an excerpt from : Patterns, Principles, and Practices of Domain-Driven Design: Scott Millett, Nick Tune: 0787721845461: Amazon.com: Books[^]

    Book Quote:

    Selling DDD DDD is not a silver bullet, and it shouldn’t be sold as one. In the same way that following an agile methodology won’t solve all of your problems, neither will DDD; however, it is a powerful and extremely effective philosophy when used in the correct circumstances, such as these: + You have a skilled, motivated, and passionate team that is eager to learn. + You have a nontrivial problem domain that is important to your business. + You have access to domain experts who are aligned to the vision of the project. + You are following an iterative development methodology. Without these key ingredients, applying the principles and practices of DDD will overcomplicate your development effort rather than simplify it. However, if your particular circumstances meet the preceding list, then applying the principles and practices of DDD can greatly increase the value of your development effort.

    Uh, have you ever had the alignment of all four of those circumstances on any project ever? :rolleyes: Requirement #3 from the list is especially under scrutiny here. :cool: Maybe DDD is only for hypothetical situations like Spherical cows (Wikipedia).[^]

    P Offline
    P Offline
    PIEBALDconsult
    wrote on last edited by
    #6

    I suspect that point three means, "you must hire a consultant who understands DDD... and I'm the only one."

    1 Reply Last reply
    0
    • R raddevus

      I was just reading an excerpt from : Patterns, Principles, and Practices of Domain-Driven Design: Scott Millett, Nick Tune: 0787721845461: Amazon.com: Books[^]

      Book Quote:

      Selling DDD DDD is not a silver bullet, and it shouldn’t be sold as one. In the same way that following an agile methodology won’t solve all of your problems, neither will DDD; however, it is a powerful and extremely effective philosophy when used in the correct circumstances, such as these: + You have a skilled, motivated, and passionate team that is eager to learn. + You have a nontrivial problem domain that is important to your business. + You have access to domain experts who are aligned to the vision of the project. + You are following an iterative development methodology. Without these key ingredients, applying the principles and practices of DDD will overcomplicate your development effort rather than simplify it. However, if your particular circumstances meet the preceding list, then applying the principles and practices of DDD can greatly increase the value of your development effort.

      Uh, have you ever had the alignment of all four of those circumstances on any project ever? :rolleyes: Requirement #3 from the list is especially under scrutiny here. :cool: Maybe DDD is only for hypothetical situations like Spherical cows (Wikipedia).[^]

      M Offline
      M Offline
      Mark_Wallace
      wrote on last edited by
      #7

      raddevus wrote:

      + You have a skilled, motivated, and passionate team that is eager to learn. + You have a nontrivial problem domain that is important to your business. + You have access to domain experts who are aligned to the vision of the project. + You are following an iterative development methodology.

      Sure. Only recently, I contracted to a place that worked on weather systems for airports -- i.e. we were working on getting planes off the ground and on the ground safely, with the knowledge that if we screwed it up, people could die. I can say, in all honesty, that I have never worked with a more dedicated team of skilled, knowledgeable people, who did an absolutely fantastic, professional job using the agile methodology, which, to be honest, didn't count for a damn, in our minds -- any other methodology would have worked as well. Maybe it makes a difference if what you do will make more money for some unidentified bunch of shareholders, rather than make sure that children see their parents again, but the shareholders made more money, too. So it was why we were doing what we were doing doing that counted, not any silly flavour-of-the-month way of doing it. If you don't believe in what you're doing, look for another job, not another way of working.

      I wanna be a eunuchs developer! Pass me a bread knife!

      1 Reply Last reply
      0
      • R raddevus

        Marc Clifton wrote:

        It's the 5th element that was missing. Manager vision. The VP who had the vision retired

        Oh, no Product Owner[^]? Very bad indeed. Can't even get to the other four items without that driving force really. That's a good one to add to the list of items required. And pushes the Spherical Cow further out of our reach. :laugh:

        M Offline
        M Offline
        Mark_Wallace
        wrote on last edited by
        #8

        A good team only needs a manager to help clear the way for the team to do a good job. A good manager only clears the way for his team(s) to do a good job. Find out what's not working, and see if there's a way to fix it if it's not.

        I wanna be a eunuchs developer! Pass me a bread knife!

        1 Reply Last reply
        0
        • R raddevus

          I was just reading an excerpt from : Patterns, Principles, and Practices of Domain-Driven Design: Scott Millett, Nick Tune: 0787721845461: Amazon.com: Books[^]

          Book Quote:

          Selling DDD DDD is not a silver bullet, and it shouldn’t be sold as one. In the same way that following an agile methodology won’t solve all of your problems, neither will DDD; however, it is a powerful and extremely effective philosophy when used in the correct circumstances, such as these: + You have a skilled, motivated, and passionate team that is eager to learn. + You have a nontrivial problem domain that is important to your business. + You have access to domain experts who are aligned to the vision of the project. + You are following an iterative development methodology. Without these key ingredients, applying the principles and practices of DDD will overcomplicate your development effort rather than simplify it. However, if your particular circumstances meet the preceding list, then applying the principles and practices of DDD can greatly increase the value of your development effort.

          Uh, have you ever had the alignment of all four of those circumstances on any project ever? :rolleyes: Requirement #3 from the list is especially under scrutiny here. :cool: Maybe DDD is only for hypothetical situations like Spherical cows (Wikipedia).[^]

          R Offline
          R Offline
          RedDk
          wrote on last edited by
          #9

          raddevus wrote:

          scrutiny

          Poor tiny, always gett'in screwed ... [EDIT] Like cookie, always gett'in targetted [END EDIT]

          1 Reply Last reply
          0
          • R raddevus

            I was just reading an excerpt from : Patterns, Principles, and Practices of Domain-Driven Design: Scott Millett, Nick Tune: 0787721845461: Amazon.com: Books[^]

            Book Quote:

            Selling DDD DDD is not a silver bullet, and it shouldn’t be sold as one. In the same way that following an agile methodology won’t solve all of your problems, neither will DDD; however, it is a powerful and extremely effective philosophy when used in the correct circumstances, such as these: + You have a skilled, motivated, and passionate team that is eager to learn. + You have a nontrivial problem domain that is important to your business. + You have access to domain experts who are aligned to the vision of the project. + You are following an iterative development methodology. Without these key ingredients, applying the principles and practices of DDD will overcomplicate your development effort rather than simplify it. However, if your particular circumstances meet the preceding list, then applying the principles and practices of DDD can greatly increase the value of your development effort.

            Uh, have you ever had the alignment of all four of those circumstances on any project ever? :rolleyes: Requirement #3 from the list is especially under scrutiny here. :cool: Maybe DDD is only for hypothetical situations like Spherical cows (Wikipedia).[^]

            S Offline
            S Offline
            Steve Naidamast
            wrote on last edited by
            #10

            All of this crap that has been promoted in the last 15 to 20 years is all based on utopian visions of the software engineering world that simply does not exist in reality. You use the simplest technologies to get the job done as fast and as efficiently as possible to meet ridiculous deadlines setup by incompetent technical managers. The rest is just vendor marketing and self-aggrandizement by those who want you to believe they have the answers for everything...

            Steve Naidamast Sr. Software Engineer Black Falcon Software, Inc. blackfalconsoftware@outlook.com

            R 1 Reply Last reply
            0
            • R raddevus

              I was just reading an excerpt from : Patterns, Principles, and Practices of Domain-Driven Design: Scott Millett, Nick Tune: 0787721845461: Amazon.com: Books[^]

              Book Quote:

              Selling DDD DDD is not a silver bullet, and it shouldn’t be sold as one. In the same way that following an agile methodology won’t solve all of your problems, neither will DDD; however, it is a powerful and extremely effective philosophy when used in the correct circumstances, such as these: + You have a skilled, motivated, and passionate team that is eager to learn. + You have a nontrivial problem domain that is important to your business. + You have access to domain experts who are aligned to the vision of the project. + You are following an iterative development methodology. Without these key ingredients, applying the principles and practices of DDD will overcomplicate your development effort rather than simplify it. However, if your particular circumstances meet the preceding list, then applying the principles and practices of DDD can greatly increase the value of your development effort.

              Uh, have you ever had the alignment of all four of those circumstances on any project ever? :rolleyes: Requirement #3 from the list is especially under scrutiny here. :cool: Maybe DDD is only for hypothetical situations like Spherical cows (Wikipedia).[^]

              M Offline
              M Offline
              MikeTheFid
              wrote on last edited by
              #11

              Quote:

              have you ever had the alignment of all four of those circumstances on any project ever?

              Yes. I was the only member of the team. And I was a domain expert. :)

              Cheers, Mike Fidler "I intend to live forever - so far, so good." Steven Wright "I almost had a psychic girlfriend but she left me before we met." Also Steven Wright "I'm addicted to placebos. I could quit, but it wouldn't matter." Steven Wright yet again.

              1 Reply Last reply
              0
              • R raddevus

                I was just reading an excerpt from : Patterns, Principles, and Practices of Domain-Driven Design: Scott Millett, Nick Tune: 0787721845461: Amazon.com: Books[^]

                Book Quote:

                Selling DDD DDD is not a silver bullet, and it shouldn’t be sold as one. In the same way that following an agile methodology won’t solve all of your problems, neither will DDD; however, it is a powerful and extremely effective philosophy when used in the correct circumstances, such as these: + You have a skilled, motivated, and passionate team that is eager to learn. + You have a nontrivial problem domain that is important to your business. + You have access to domain experts who are aligned to the vision of the project. + You are following an iterative development methodology. Without these key ingredients, applying the principles and practices of DDD will overcomplicate your development effort rather than simplify it. However, if your particular circumstances meet the preceding list, then applying the principles and practices of DDD can greatly increase the value of your development effort.

                Uh, have you ever had the alignment of all four of those circumstances on any project ever? :rolleyes: Requirement #3 from the list is especially under scrutiny here. :cool: Maybe DDD is only for hypothetical situations like Spherical cows (Wikipedia).[^]

                M Offline
                M Offline
                Member 10731944
                wrote on last edited by
                #12

                This is kind of triple-D I prefer; though I've never seen it put into practice, it seems like it would work in a reasonable manner - and really isn't far from what many of us do already: Meme Agora: D-Cubed[^] D^3 - Defect Driven Design It's an old idea (and unfortunately, the original source can't be found any longer), but if implemented properly, in theory it would always result in an application that is -exactly- fit to the requirements of the client. Essentially, you pretend your project is already in maintenance mode, and you're just fixing "bugs". Sooner or later, that's where you're going to end up anyhow, so why not start there at the beginning?

                R 1 Reply Last reply
                0
                • S Steve Naidamast

                  All of this crap that has been promoted in the last 15 to 20 years is all based on utopian visions of the software engineering world that simply does not exist in reality. You use the simplest technologies to get the job done as fast and as efficiently as possible to meet ridiculous deadlines setup by incompetent technical managers. The rest is just vendor marketing and self-aggrandizement by those who want you to believe they have the answers for everything...

                  Steve Naidamast Sr. Software Engineer Black Falcon Software, Inc. blackfalconsoftware@outlook.com

                  R Offline
                  R Offline
                  raddevus
                  wrote on last edited by
                  #13

                  That's actually a very good summary of the situation. APIs and Magic Libraries that will supposedly solve everything are often the cause of more problems. And, the daft managers don't understand that the Marketing Propaganda of the APIs and Libaries are often not true (seldom true) and then the mgr gets the idea that it is the dev who is incompetent when it is really a problem with the Magic Library. :sigh:

                  S 1 Reply Last reply
                  0
                  • M Member 10731944

                    This is kind of triple-D I prefer; though I've never seen it put into practice, it seems like it would work in a reasonable manner - and really isn't far from what many of us do already: Meme Agora: D-Cubed[^] D^3 - Defect Driven Design It's an old idea (and unfortunately, the original source can't be found any longer), but if implemented properly, in theory it would always result in an application that is -exactly- fit to the requirements of the client. Essentially, you pretend your project is already in maintenance mode, and you're just fixing "bugs". Sooner or later, that's where you're going to end up anyhow, so why not start there at the beginning?

                    R Offline
                    R Offline
                    raddevus
                    wrote on last edited by
                    #14

                    Member 10731944 wrote:

                    Essentially, you pretend your project is already in maintenance mode, and you're just fixing "bugs".

                    That honestly sounds like the idea of Minimum Viable Product from Agile Scrum and I think it does make sense.:thumbsup:

                    1 Reply Last reply
                    0
                    • R raddevus

                      That's actually a very good summary of the situation. APIs and Magic Libraries that will supposedly solve everything are often the cause of more problems. And, the daft managers don't understand that the Marketing Propaganda of the APIs and Libaries are often not true (seldom true) and then the mgr gets the idea that it is the dev who is incompetent when it is really a problem with the Magic Library. :sigh:

                      S Offline
                      S Offline
                      Steve Naidamast
                      wrote on last edited by
                      #15

                      A very astute summary of what I said. Bully for you!!! :) Hopefully, the younger generations of professionals will come to realize this and will start the pendulum swinging back to a more sane time in our profession...

                      Steve Naidamast Sr. Software Engineer Black Falcon Software, Inc. blackfalconsoftware@outlook.com

                      1 Reply Last reply
                      0
                      • R raddevus

                        I was just reading an excerpt from : Patterns, Principles, and Practices of Domain-Driven Design: Scott Millett, Nick Tune: 0787721845461: Amazon.com: Books[^]

                        Book Quote:

                        Selling DDD DDD is not a silver bullet, and it shouldn’t be sold as one. In the same way that following an agile methodology won’t solve all of your problems, neither will DDD; however, it is a powerful and extremely effective philosophy when used in the correct circumstances, such as these: + You have a skilled, motivated, and passionate team that is eager to learn. + You have a nontrivial problem domain that is important to your business. + You have access to domain experts who are aligned to the vision of the project. + You are following an iterative development methodology. Without these key ingredients, applying the principles and practices of DDD will overcomplicate your development effort rather than simplify it. However, if your particular circumstances meet the preceding list, then applying the principles and practices of DDD can greatly increase the value of your development effort.

                        Uh, have you ever had the alignment of all four of those circumstances on any project ever? :rolleyes: Requirement #3 from the list is especially under scrutiny here. :cool: Maybe DDD is only for hypothetical situations like Spherical cows (Wikipedia).[^]

                        E Offline
                        E Offline
                        EbenRoux
                        wrote on last edited by
                        #16

                        Well, I feel that for the most part the "tactical patterns" of DDD are simply OO done right :) I do, however, feel that when developers do *not* have access to domain experts we end up with second hand information (or worse) which simply contributes to the sad state that the software development industry finds itself in.

                        R 1 Reply Last reply
                        0
                        • E EbenRoux

                          Well, I feel that for the most part the "tactical patterns" of DDD are simply OO done right :) I do, however, feel that when developers do *not* have access to domain experts we end up with second hand information (or worse) which simply contributes to the sad state that the software development industry finds itself in.

                          R Offline
                          R Offline
                          raddevus
                          wrote on last edited by
                          #17

                          EbenRoux wrote:

                          for the most part the "tactical patterns" of DDD are simply OO done right

                          I agree.

                          EbenRoux wrote:

                          when developers do *not* have access to domain experts we end up with second hand information (or worse) which simply contributes to the sad state that the software development industry finds itself in

                          I agree again. :) If teams really did OO right it would solve a lot of design issues that cause maintenance and extensability to be far more difficult than they have to be later. If teams really had domain experts that knew what they wanted and could explain what they wanted it would solve a lot of problems where the wrong solution is created.

                          1 Reply Last reply
                          0
                          Reply
                          • Reply as topic
                          Log in to reply
                          • Oldest to Newest
                          • Newest to Oldest
                          • Most Votes


                          • Login

                          • Don't have an account? Register

                          • Login or register to search.
                          • First post
                            Last post
                          0
                          • Categories
                          • Recent
                          • Tags
                          • Popular
                          • World
                          • Users
                          • Groups