How do we communicate? Passing information between our human brain holes
is difficult. We all come from such different places that we
have to work hard to establish a shared context, as a team, so that
we can speak to each other.
This is one of the reasons that I love the concept of Domain Driven Design.
That we should design things in software as the agents of the business see
As a business student in school I studied accounting, economics, marketing and
how to write. All that I know of the wonderous world of programming I have learned
on my own. Which has allowed me to build software from a DDD perspective from
the get go. But I have one large flaw, I just don’t understand classic CS
problems. You want me to walk a binary-tree and print the longest path? Nope.
Give me 5 minutes on the internet and I will have this simple procedure typed
out for you in any number of languages. But can I do it from route memory?
Yeah right, I have better things to study.
Is it important that I understand classic CS problems? Absolutely, and the
older I get, the more I enjoy not only learning them, but finding the commonality
in my business problems and how an intimate understanding of graph theory really
does help solve them.
As much as I start to learn about classic CS solutions the more that I want
to build these abstract solutions to problems using generic data structures.
But then it seems that I have lost the focus on the business in exchange for
solution that a larger group of programmers would have the ability to plainly
see. “Oh, this is just a graph traversal problem.”
How can we balance these two forces of general CS problem solutions and those
built with a clearer understanding by those in the domain of the business?
I don’t know. But I don’t intend to stop seeking a solution either.