Skip to content
DevMeme
2234 of 7435
The Ephemeral Art of Whiteboard Architecture
DesignPatterns Architecture Post #2488, on Dec 21, 2020 in TG

The Ephemeral Art of Whiteboard Architecture

Why is this DesignPatterns Architecture meme funny?

Level 1: Crayon Blueprint

Imagine you and your friends are trying to build a really cool LEGO castle together, but it’s complicated. At first, you talk about it, but it’s hard to picture everyone’s ideas just by talking. So one friend says, “Hey, let’s draw a plan on paper!” Everyone agrees that drawing might help. You get a big piece of paper and some crayons. One friend draws a square and says, “This is the tower.” Another friend says, “We should add a bridge here,” and scribbles a line for the bridge. But then you realize the bridge doesn’t reach the tower correctly. “Oh no, that won’t work, the door is too high!” someone says. So you erase or scratch out part of the drawing and draw a new path for the bridge. Then another friend suggests, “What if we make a second tower for support?” Now the paper is getting messy with lots of lines, shapes, and erased bits. You spend a long time adding things, fixing things, and arguing a little, but eventually you step back and look at the paper. It’s super messy — there are so many scribbles and changes that it’s hard to tell what the drawing is. It almost looks like a funny abstract painting rather than a LEGO castle plan. Still, you’re all happy because, after all that work, you think you have a good plan for the castle. You even pose like superheroes, feeling proud that you solved the problem together. Before you clean up, one of you says, “Let’s take a picture so we remember how to build it!” You use a phone to snap a photo of the crayon drawing. Now you have it “for future reference.” The joke, however, is that later on when you look at the photo, it just looks like a crazy jumble of shapes — like a weird art piece — and not a clear plan. It’s funny because you were so serious about making a plan, but the only record of it is a confusing doodle. This is just like what sometimes happens with grown-up engineers: they have big meetings to design a system, draw complicated diagrams on a whiteboard, and then proudly take a photo. But that photo might as well be modern art, because it’s so hard for anyone else to understand! In the end, everyone laughs because we all recognize that feeling of working really hard on a plan that turns out looking like a messy treasure map drawn in crayon.

Level 2: Whiteboard Wisdom

Let’s break down what’s happening in simpler terms. The team is facing a complicated software problem and one person says, “We need a better way to understand this problem.” This often means the problem is too hard to grasp just by talking. Another person agrees and suggests using a whiteboard. In developer culture, “let’s whiteboard it” means “let’s draw a diagram of the system or problem on a big erasable board so we can all see and think it through.” This is common in meetings when tackling design questions. By drawing boxes for components and arrows for data flow, the team can visualize how things connect. It’s like drawing a map of their software. Often, this clarity helps find issues or new ideas.

In the second panel, they’ve started drawing (indicated by scribble scribble on the board) and are actively debating a solution. One suggests using a microservice. In software, a microservice architecture means breaking an application into small, independent services that each do one part of the job. For example, instead of one giant program handling everything (a monolith), you might have separate microservices: one for user accounts, one for payments, one for notifications, etc. Here, someone thinks a particular microservice could solve their problem – maybe by introducing a dedicated service to handle a specific feature.

However, another team member points out, “But that won’t work with this API!” An API (Application Programming Interface) is how different software components talk to each other – kind of like a contract or menu of what one piece can ask another to do. If the proposed microservice doesn’t speak the same language or follow the same rules as the existing system’s API, they can’t directly integrate. For a junior developer, imagine one service speaks Spanish and the other speaks French – they need a translator or a change in language to communicate. That’s what an API conflict is like: a mismatch in how data or requests are structured. The team realizes that just adding the microservice isn’t plug-and-play because the existing backend won’t accept it. The backend is the server side of their application – databases, servers, and the logic behind the scenes that users don’t directly see. If the backend was originally built a certain way (perhaps all in one piece or expecting certain inputs/outputs), a new microservice might not fit in without changes.

So the teammate concedes: “You’re right, we may have to refactor the backend.” Refactoring means changing the code structure without changing its external behavior – basically reworking the internals to be cleaner or to accommodate new things. Refactoring the backend here implies they might have to redesign some parts of the server, database, or core logic to allow this microservice and API to work together. This could mean adjusting the API layer, writing an adapter, or breaking the backend into smaller parts – all significant tasks. It’s not said explicitly, but you can sense this is a big deal; developers generally groan at “refactor the backend” because it can be risky and time-consuming (imagine renovating the foundation of a house while still living in it).

By the time we get to the third panel (“LATER…”), it implies that some time has passed – possibly hours of discussion. The two developers at the whiteboard are now smiling, hands on hips, looking relieved. The tiny teammate between them shows the whole team is together again. One of them says, “I think we found a solution that works!” This suggests after all the arguing and drawing, they agreed on a plan. Maybe they decided exactly how to change the backend and use the microservice in a way that resolves the API issue. This moment will feel familiar if you’ve ever been in a long meeting that finally produced a plan; there’s relief and a bit of pride. Architecture trade-offs were made, pros and cons weighed, and now there’s a clear path forward (at least on the whiteboard).

Now, the comedic kicker: in panel 4, we see someone took a smartphone photo of the whiteboard. The drawing on the board has morphed into something crazy: an “abstract cubist portrait.” In other words, the sketch is so messy and convoluted that it literally looks like abstract art rather than a tech diagram. The caption “Let’s take a picture for future reference” is something you hear a lot after whiteboard sessions. Instead of transcribing the diagram properly into a document or diagramming software, teams often just snap a quick photo. The intention is, “We’ll have this picture if we need to remember the design later.” It’s a form of documentation, albeit a very informal one. The joke is that the picture is practically useless – it’s more like a bizarre drawing than a clear plan. Over time, those scribbles will mean little to anyone who wasn’t in the room (and even those who were might scratch their heads). This is highlighting documentation woes: developers often fail to create good documentation of decisions. They rely on memory or artifacts like whiteboard photos that end up buried in an email or Slack channel. It’s funny because it’s true: we convince ourselves a blurry photo of a chaotic diagram is “documentation.” In reality, it’s like keeping a doctor’s prescription note – good luck reading it later! Senior engineers chuckle because they’ve been there: claiming victory after a grueling meeting, then doing the bare minimum to record it. The result is a “modern art” documentation that no one ever truly uses. The whole strip humorously captures how a serious architecture design meeting can start with earnest intentions (using proper patterns, discussing microservices and APIs), and end with something that looks more like a child’s drawing – both in literal appearance and in documentation value.

Level 3: Architectural Cubism

At the highest technical level, this meme captures a whiteboard architecture session devolving into what can only be described as Cubist design documentation. Three developers convene to untangle a complex backend problem, invoking the battle cry “let’s whiteboard it.” This is a familiar ritual in system design: when code and logs fail to reveal the truth, you retreat to the whiteboard to sketch service diagrams and data flows. Here, one developer proposes integrating a new microservice into their system — presumably to offload or isolate some functionality for better modularity. Immediately, another developer counters: “But that won’t work with this API!” Ah yes, the classic API-contract conflict: perhaps the existing REST API expects data or behavior that the shiny new microservice can’t provide without some glue. In real architecture terms, maybe the microservice uses a different data model or the wrong protocol (GraphQL vs REST, anybody?), or it simply doesn’t meet a critical compatibility requirement. The third teammate chimes in: “You’re right, we may have to refactor the backend.” In other words, to make this architectural vision work, they might need to restructure core services or database schemas. This is the point in the meeting where a simple feature request balloons into a full-on system redesign. Seasoned engineers recognize this slippery slope — a supposedly small change unveiling hidden coupling in the system and forcing a broader refactor. It’s an architecture trade-off in action: adopt a microservice to solve one problem, pay the price in integration complexity elsewhere.

On the whiteboard, scribbles accumulate: boxes, arrows, maybe a quick UML-ish sketch of services calling other services. Microservice architecture discussions often bring up concerns like data consistency (did someone mention distributed transactions or the CAP theorem under their breath?) and deployment pipelines, but in the heat of designing, those details turn into hastily drawn lines and circled notes. Over time, this once-logical diagram turns into a convoluted mess of overlapping shapes and scratched-out ideas. This is architectural cubism: a multi-perspective system diagram that now looks like a Picasso painting of a backend. The meme shows the final whiteboard as an abstract portrait — likely a tongue-in-cheek exaggeration that the diagram has become indecipherable even to its authors. Every senior developer has seen a diagram go from a neat few boxes to a chaotic scrawl after enough debate. It’s design-by-enthusiasm meeting the reality of complex integration: overlapping concerns transform a whiteboard into modern art.

Finally, in the third panel, after much debate (note the “LATER…”), the architects stand triumphantly, hands on hips, proclaiming “I think we found a solution that works!” There’s a diminutive teammate between them — possibly an amused bystander or the junior who had to endure the seniors’ long debate. Their prideful stance is familiar: the mix of relief and self-congratulation after wrestling with a tough design problem for hours. From a cynical senior perspective, this “solution” might be held together by optimism and marker fumes. Often these whiteboard solutions gloss over nasty implementation details or future edge cases. But at 5 PM after an exhausting meeting, everyone is just happy to have something they can call a plan. The real punchline lands in the last panel: one of them snaps a photo of the whiteboard saying, “Let’s take a picture for future reference.” This is a stinging satire of our industry’s documentation habits. After all the high-minded talk of microservices and refactoring, the only record of the grand new architecture is a blurry smartphone photo of a chaotic whiteboard. Documentation woes indeed! Senior engineers know that feeling: you promise to “transcribe this into a doc later” but end up with architecture_final_final_really.png sitting in a chat history forever. The once-clear intentions behind each scribble will fade from memory, and the photo will serve as an inscrutable artifact — a piece of modern art rather than a useful blueprint. In essence, the meme humorously exposes how even the most earnest architecture design sessions can produce outcomes that are technically ambitious, socially familiar, and utterly under-documented.

Description

A four-panel comic from 'sourcreamcomics' illustrating a common software development scenario. In the first panel, three developers agree to whiteboard a problem. The second panel shows two of them at a whiteboard, engrossed in a technical discussion with dialogue like 'WE SHOULD USE THIS MICROSERVICE,' 'BUT THAT WON'T WORK WITH THIS API!,' and 'WE MAY HAVE TO REFACTOR THE BACKEND,' surrounded by scribbles. The third panel, labeled 'LATER...,' shows two developers proudly announcing, 'I THINK WE FOUND A SOLUTION THAT WORKS!'. The final panel reveals their 'solution' on the whiteboard: a complex, abstract, Picasso-style painting of a figure in a city. One developer says, 'LET'S TAKE A PICTURE FOR FUTURE REFERENCE.' The comic humorously critiques how complex architectural discussions can result in diagrams that are indecipherable without the original context, making the act of 'documenting' them by photo hilariously futile

Comments

7
Anonymous ★ Top Pick The half-life of a whiteboard architecture diagram's usefulness is about 30 minutes, or until the first person leaves the room to get coffee
  1. Anonymous ★ Top Pick

    The half-life of a whiteboard architecture diagram's usefulness is about 30 minutes, or until the first person leaves the room to get coffee

  2. Anonymous

    Pro tip: once the microservice topology on the whiteboard crosses into cubism, just snap a photo and file it as an ADR - interpretation is tomorrow’s SRE problem

  3. Anonymous

    After 15 years of architecting distributed systems, I've learned that the most permanent documentation is always the 'temporary' whiteboard photo someone took during that one meeting where we solved everything with boxes and arrows that nobody can decipher six months later

  4. Anonymous

    This perfectly captures the senior engineer's dilemma: you start with a simple problem that could be solved with a function, spend three hours debating CAP theorem implications and event-driven architectures, and end up with a whiteboard that looks like a Jackson Pollock painting crossed with a microservices topology diagram. The 3D glasses are a nice touch - because by the end, you need extra dimensions just to comprehend what you've architected. The real kicker? That photo will be referenced in exactly zero future discussions, but it'll live forever in the team's Confluence graveyard, right next to the other 47 architecture decision records nobody reads

  5. Anonymous

    Whiteboarding microservices: where consensus emerges not from clarity, but from collectively agreeing the scribbles are unreadable - now screenshot for the inevitable post-mortem

  6. Anonymous

    If your system design exists only as IMG_7321.jpg in someone’s camera roll, you don’t have microservices - you have folklore

  7. Anonymous

    Whiteboard-driven architecture: we argued microservice vs API refactor, found a path, and published the ADR as a selfie named IMG_2137 - future us will debate whether that squiggle was an event bus or Dave’s elbow

Use J and K for navigation