April 16th, 2019
(written by lawrence krubner, however indented passages are often quotes). You can contact lawrence at: email@example.com
Writing the same dull CRUD application over and over is boring. But what if you could figure out a way to get all the simple CRUD applications to talk to one another? That’s a nice and juicy puzzle. This perhaps explains the complexity fetish I see in so many “Enterprise” architectures and applications. Some of it is accidental complexity, accrued from years of piecing together parts that were never meant to work with one another. But I don’t think accidental complexity covers the entirety of why things are so convoluted.
I remember back in the mid-90s, I was the CTO of a small training and consulting company. We were absolutely delighted when we first saw EJB: here was a technology no one could understand without extensive training. The same thing happened with all the variations of COM, DCOM, and CORBA. Those were flush times for training companies because we knew that developers would be drawn like moths to a flame, frequently with the same result.
Building the simplest thing that can work is sometimes duller than crafting some devilishly complex Rube Goldberg machine, but keeping it simple is a worthy challenge in it’s own right. If you find yourself in Rubick’s Cubicle, stop and ask yourself: “is there a simpler way to do this? Perhaps dismantling something that no longer serves it’s purpose? What is the simplest thing that could possibly work?”