---
title: Simple Examples For Complex Concepts?
canonical: "https://www.alainschlesser.com/thinking/simple-examples-complex-concepts/"
pubDate: "2016-08-31T00:00:00.000Z"
updatedDate: "2016-08-31T00:00:00.000Z"
author: Alain Schlesser
description: "A short talk-prep meditation on a real teaching problem: the architecture patterns that earn their keep at scale look like absurd over-engineering when demoed on a Hello World. How do you sell the value of solving problems your audience hasn't hit yet?"
tags: [Software Architecture, "Open Source & Community"]
---

I'm currently in the process of preparing a talk for <a href="https://2016.frankfurt.wordcamp.org/">WordCamp Frankfurt</a> (<a href="https://twitter.com/search?q=%23WCFRA">#WCFRA</a>) about a concept that enables you to make large parts of your code truly reusable. I'm talking about the "<em>store in a separate package and pull in via Composer</em>" type of reusability, not the "<em>copy-paste and edit</em>" one.

However, I'm having real difficulty putting this concept into slides. Where I would have a large unit-tested class that can be reused as is and save hours of work in every future project, I end up with very complicated and over-engineered ways of <a href="https://en.wikipedia.org/wiki/%22Hello,_World!%22_program">greeting the world</a>. It seems that some <strong>concepts that are useful and necessary in a given context (in regards to scope, </strong>scale<strong> and complexity) are rendered meaningless when applied to a different context</strong>.

I currently face this dilemma in several areas of my work. I am very passionate about software architecture and want to try to distil my findings into easily digestible pieces of content. <strong>But how do you sell benefits when your potential customers haven't faced the problems yet?</strong> That is a very fundamental problem when trying to share "best practices".

> How do you sell benefits when your potential customers haven't faced the problems yet?

<ul>
    <li>How do you show the benefits at scale when there is no scale?</li>
    <li>How do you demonstrate the necessity to divide-and-conquer complexity without having complexity?</li>
    <li>How do you explain the testing you can save when all you have is a `printf()`?</li>
</ul>

I'll probably manage to put together a decent slide deck for the coming presentation, but I am not entirely sure that I will be able to get my main points across. The slides will be available soon after the talk, so I'll let others be the judge...

<em>Have you faced a similar dilemma lately? <a href="#comments">Let me know in the comments!</a></em>
