I’m cur­rently work­ing on my keynote for next week’s Con­nect – Web Expe­ri­ence 2014 con­fer­ence in Basel and very much look­ing for­ward to it! Last year’s con­fer­ence was excel­lent, and this year’s sched­ule looks very exciting.

My keynote is about the value of sim­plic­ity in soft­ware – includ­ing a few tales from the trenches.

We like to think of what we build with AEM as large enter­prise sys­tems, with com­plex require­ments. Intri­cate work­flows. Rocket science.

How­ever, when you think about it, our sys­tems are “just” HTTP request proces­sors, that manip­u­late atomic pieces of con­tent in a con­tent repository.

What if you wanted to man­age the Whole World Wide Web with a sin­gle sys­tem? The archi­tec­ture of that 4WCMS might be quite sim­i­lar to what Apache Sling pro­vides for AEM: mostly inde­pen­dent dynamic HTTP request proces­sors, selected by path and resource type, that ren­der and/or process resources from a huge tree of content.

If our archi­tec­ture works for that 4WCMS, the sys­tems that we are actu­ally work­ing on are just peanuts com­pared to that. Man­ag­ing a sin­gle site, or just a small fed­er­a­tion of a hun­dred thou­sand sites? Easy. Yes I’m being provoca­tive – it’s a keynote!

The inher­ently scal­able archi­tec­ture of the Web, com­bined with the nat­ural decou­pling that HTTP and REST (and OSGi) pro­vide, should allow us to keep our sys­tems sim­ple, trans­par­ent, robust and adapt­able. Yet, much too often, we fall into the “entr­prisey” trap and start design­ing com­plex machin­ery where some­thing sim­ple would do – if only some­one had the guts to chal­lenge the sta­tus quo.

I have a few exam­ples in mind, from past projects, where sim­plic­ity pro­vided huge wins, even though it required con­vinc­ing cus­tomers that had dif­fer­ent, usu­ally more com­plex ideas. My goal is to demon­strate how valu­able sim­plic­ity is, and how expen­sive it can be to cre­ate ini­tially. Like the story of those 28 lines of code that took three months to cre­ate, in 1999, and still live hap­pily in pro­duc­tion with Zero Bugs.

We shouldn’t give up – cre­at­ing sim­ple things is a lot of work, but the rewards are huge.

To para­phrase Blaise Pas­cal, if your sys­tem is com­pli­cated it usu­ally means you didn’t work hard enough to make it sim­pler. Or maybe you have a really com­plex prob­lem, but that’s not very com­mon. And maybe that com­plex prob­lem is the wrong one to solve anyway.

I hope to see you next week in Basel and until then – keep things simple!

This post was pre­vi­ously pub­lished on Bertrand Delacretaz’s blog, June 16, 2014.