One of our architects posted a link to Malik's Laws of Service Oriented Architecture which argues that building reusable services/software is futile. I responded with this version that substitutes "brick" for "service" throughout:
Malik's Laws of Home Construction
- No one but you will build the bricks you need in time for you to use them
- If you build a brick that no one else asked for, you will have built it for yourself
- If you build a brick for yourself, you will optimize it for your own use
- It is therefore the optimal brick for you to use
- It is very unlikely to be the optimal one for anyone else to use
- No one besides you will use it
- You will not use anyone else's
And so forth. Notice that Malik is 100% right in the context of primitive (mud brick) construction and 100% wrong in the context of modern (real brick) construction.
Also notice that customers never clamor for a transition from the mud bricks they're used to. The statement of work invariably specifies more of the same, meanwhile complaining bitterly of labor costs, weathering, and roofs collapsing on their heads. As if this were a law of nature instead of a shortcoming of the mud brick approach to architecture.
The transition from primitive to modern is a slow and evolutionary process that isn’t even mainly technological. Its mostly about trust building, which only begins when a pioneer takes the risk and their customer starts telling their friends. I’d like us to be that pioneer (and yes, I know about pioneers and arrows).