Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage Presentations Architecture War Stories

Architecture War Stories



Stefan Tilkov shares entertaining examples of real life architectural disasters in software projects.


Stefan Tilkov is Co-founder and Principal Consultant at innoQ, where he spends his time alternating between advising customers on new technologies and taking the blame from his co-workers for doing so. He is a frequent speaker at conferences and author of numerous articles. Twitter: @stilkov

About the conference

CRAFT is about software craftsmanship, which tools, methods, practices should be part of the toolbox of a modern developer and company, and it is a compass on new technologies, trends.

Recorded at:

Oct 04, 2014

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • Beware of all things "meta"

    by Jean-Jacques Dubray,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Stefan is a great entertainer, but when it comes to distributed system architecture, I am not quite sure I would follow him beyond the few jokes he cracks.

    For instance, if he had spent a bit of time drawing the REST "meta"model, he could have easily predicted that the world would remain action oriented (Web APIs) instead of becoming Resource Oriented. I am glad some people get to charge $$$ to convert a perfectly understandable action verb into an HTTP verb + a (weird) noun (such as login into POST + session), but beyond that REST-for-distributed-systems is pretty much the ultimate architectural failure of the past decade, just as laughable as some of the examples he provides.

    Actually, the best way to understand what you are doing is to draw its metamodel. For instance, when we are writing any kind of software, we somehow encode states, types, actions and relationships (STAR), yet most people, especially Stefan would dismiss that idea. People like him try very hard to reify these "meta" concepts into a single idea. And, without much "meta" thinking you are easily lead to believe that everything could be a function (FP), a resource (REST), a process (pi-calculus), a class (OO), ... Heck, even in SQL a relationship is reified as an attribute of a type.

    I would actually argue that all of Stefan's stories would have had a better outcome if people had drawn a metamodel of their approach.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p