Did Uncle Bob say the database is not important?
First of all I would just like to say that I’m not an Uncle Bob fanatic . I’m a fan but not a fanatic. I have even written before on something I disagree with Uncle Bob, but it was not about programming.
And I’m also aware that Uncle Bob is against this fanaticism about the ideas and practices he is presenting:
… In 1999, when Kent Beck and I decided to put our energies into the promotion of Extreme Programming, we feared that we could be starting a religion instead of a movement, and vowed to fight ritualism when it arose. This concern and vow was expressed again in the 2001 meeting that produced the Agile Manifesto…
— from The True Corruption of Agile
Okay… Here I go… defence mode
About two weeks ago, in a facebook group I am a member of, I posted a message with a link to Uncle Bob’s article “A Little Architecture” .
Part of my message in that post are these words:
if you were brainwashed into thinking that the database is the center of our application, and you still think the same today…
you have to repent
The haha ( ) is part of the post to indicate my frivolous phrasing and of the use of the words brainwashed and repent. (I borrowed the word repent from Christianity; it means “to change ones mind”)
Some disagreed with this idea of the business rules as the center of the application.
But there was one who seem to be very angry about that article.
At first, I did not fully understand why he seemed to be angry. I thought he only disagrees with this idea of the database being not the center of the application. But I later discovered, through the exchanges in the comments, that he (and perhaps there are others more) thinks that Uncle Bob is saying that the database is not important:
Seeming angry person: Dude, kung hindi talaga importante ang database decision eh ganyan talaga ang mangyayare: Tangahan.
(partial translation: Dude, if the database decision is not really important, then…)
Me: what! who said the database decision is not important…
we never said things like that
Me: dapat i-consider mo yung context nung article… “Context is King” sabi nga nila
(partial translation: you should take into account the context of the article… “Context is King”…)
Neutral person (observer): Did you even read what you shared?
> expanded brain meme
> brainlet: Burn the enemy
> expanded brain: Self burn
Someone with even a short experience in software development will not say something stupid like that, I thought haha. — “The database decision is not important.” — How much more someone who has worked in the software develpment industry for so many years, like Uncle Bob Martin!
So I opened the article again and read…
Wow! I have read this article many times in the past and I cannot even remember that I noticed that the phrase “the database isn’t an important decision” is even in the article! And the phrase is located at the very beginning!
What do you mean? The Database isn’t an important decision? Do you know how much money we spend on them?
Too much probably. And, no; the database is not one of the most important decisions.
(Self burn… … Failed…)
I was consumed by the grandness of the idea presented in the article that I was not able to notice the detail, that short phrase, that the seeming angry person was able to notice.
… The Database isn’t an important decision?
Firstly, to answer the question of the “Neutral person” (whom I later learned is someone actually rooting for me )… Yes!…
I had read the article before, and I visit it from time to time. The first time I read it, it took me about three days of rereading it and analyzing the example before I was able to make sense of what Uncle Bob is trying to say. (I was not not yet very familiar with things like this in software development so it took time for me to understand them.)
And about that statement: “the database isn’t an important decision” …
I think Uncle Bob is misinterpreted in here. I can see how he can be easily misinterpreted by how those sentences were constructed. I experienced the misinterpretation firsthand when I read the article again after seeing the “Neutral person”’s comment of “Did you even read what you shared?” above. After discovering that part, I said to myself, “What? Uncle Bob said that? …. Wait, wait… Let’s read it again…”
(Perhaps Uncle Bob did that on purpose? Perhaps not? Perhaps it’s just his style of writing.)
So I beg to differ on how those sentences should be interpreted. And here is my explanation:
Did you notice that that sentence is not a statement but a question? It ended with a question mark!
What do you mean? The Database isn’t an important decision?
And it is the architect wannabe, and not Uncle Bob, who said that.
The architect wannabe is asking a question:
“What do you mean? The Database ISN’T AN important decision?”
It is as if he is trying to put words in Uncle Bob’s mouth.
Then Uncle Bob replied,
“… no; the database IS NOT ONE OF THE MOST important decisions.”
Uncle Bob said “ONE OF THE MOST”, not “AN”.
And if one argues that the architect wannabe in the article is still Uncle Bob speaking, remember that the architect wannabe also said this:
“[the database]… It’s where all the data is organized, sorted, indexed, and accessed. Without it there would be no system!”
Whoever will say something like that understands that the database is important.
So however you choose to interpret the statements in that article, it can still be concluded that Uncle Bob is NOT saying that the database isn’t an important decision.
What he is saying is that when it comes to the “architecture” (not when it comes to the purpose of the universe) the database decision is irrelevant, or it is supposed to be irrelevant, or should be irrelevant, ought to be irrelevant — when it comes to the architecture of the system.
(I think that we can be certain also that Uncle Bob will never say that the architecture of a software system is the most important thing in the entire universe. )
In his other writings and talks, Uncle Bob is saying that we are making the architecture to be about databases and frameworks when it should not be about them.
… So, in conclusion, even if someone says that he can point out a software application where the database decision is more important than the architecture… he is missing the point of the article, because the article is not talking about the “importance of the ‘architecture decision’ over the ‘database decision’“ in relation to the overall state of affairs; it is talking about, among other things, the importance of the database decision in relation to the architecture of the system.
 I’m not sure if I’m using the word “frivolous” correctly in here. You are free to correct me if I’m not.