In both stories, we find an “impedance mismatch” between the complexity of the problem and the systems or time allocated to solve them. No matter how hard we try, we cannot bend a problem or situation requiring nuanced communication into a purely transactional, stable, and unchanging problem. The harder we try to do that (or the more we are forced by our environment, incentives, skills, etc.), the harder it becomes to find a way forward. What might have been difficult but within reach now becomes intractable.
Try as we might — and as uncomfortable as this makes driven managers leaders — we can’t cheat the physics of complex, socio-technical systems. We can “dance” with the system, but we can’t bend the system to our will (thank you, Donella Meadows).
In a sense, impedance mismatches, where we experience efforts at summarization and simplification that break things, are signals that something needs changing. It isn’t realistic to firehose information everywhere, but at the same time, it isn’t helpful to try to crunch it down beyond recognition.
You need effective interfaces acknowledging that localized complexity—dynamic and vibrant collaboration and communication—can be highly beneficial, and “simple” messages between parts of the system are necessary. But you can’t, unfortunately, cheat physics and solve the problem of leaking complexity with oversimplification—no matter how much we fetishize simplicity.
This is one of the big work problems we need to solve in the "modern workplace." The level of information load and “information process” is incredibly draining and saps creativity and outcomes.
Among freelancers, it’s commonly understood that you must protect and hide away that thing that makes you unique. Your ability to feed yourself and your family seems to come directly from your jealously hoarded talents, the perception of your abilities. Anyone else is merely just another hungry mouth, eager to snap up that job which you obviously deserved more. The freelancer, at the same time perceived as being all-powerful, as one who holds close the bounty of their skillset, the prized possession of their dependability, tempting eager and slavering clients with their availability only to beg off as busy on the faintest of whims, their calendars sacred, hidden knowledge, is also the miserable misanthrope, holding onto a tiny, glittering sack of tools and accolades, those bric-a-brac which make them feel all shiny and attractive, that keep their LinkedIn pages hot and their email notifications pinging.
Here in 2023, that air of mystery and expectation is gone. Every phone looks the same; every announcement has been widely leaked. But there is still a good reason to attend to Apple’s marketing extravaganzas: The fake texts.
I’m talking about the mocked-up texts and emails Apple puts together to demonstrate new messaging features in its operating-system updates, presumably written by some well-paid professionals in Apple’s marketing department. These eerily cheery, aggressively punctuated messages suggest a alternate dimension in which polite, good-natured, rigorously diverse groups of friends and coworkers use Apple products exactly how they are designed to be used, without complaint or error.
This article isn’t about making the case for state machines. It’s about how you take the concept of a state machine and have it work alongside your database models, leveraging your relational database (say Postgres or MySQL) to help you build concurrent-safe and efficient software.
In this post, we’ll learn almost everything about Rails middleware: what it is, why we need it, how it works, and why it’s so important. We’ll also learn how to create and test custom middleware in a Rails app.