Problem Solving
The solution of the age
What the problem is
You can't look a big problem too directly in the eye
Everything works both ways
The kind of problem a city is
The problem of the house has not yet been stated
Clinging to ideas
A good question is better than a brilliant answer
A normal wooden pencil
Each fascinating crisis
You are agreeing to make a Thing
How to be a genius
Old solutions
As something we have never seen before
The technology shelf
Details first
Each pattern is a rule
When all you have is a hammer
Notes on the Synthesis of Form
Framing vs. Shaping
Learning to walk through walls
An Article by David R. MacIverI have a running joke that one of the most useful things I do when coaching or consulting is to say to people “Yes, that does sound like a problem. Have you tried solving it?”
Part of why this is a joke is that actually most of the useful work happens prior to the point - the hard part is actually articulating what is going wrong well enough that it seems like a soluble problem - but there is genuinely something useful about this, because often it feels people are looking for permission.
Without the external prompt, solving their problem is not something they noticed that they were allowed to do.
Delight in the imperfect
An Article by David R. MacIverI think part of the difficulty in allowing ourselves to properly delight in the imperfect, comes from conflating delighting in something with wanting it to happen. This isn’t the case. You can appreciate something as it exists while acknowledging its problems. You can see that a fire is beautiful without becoming a pyromaniac, and you can appreciate the absurdity of your political situation without thinking it’s good.
Even if a delight in the imperfect causes you to want more imperfection in your life (and it should), there is no shortage of imperfection to seek out. The imperfect is not scarce, it’s abundant. If you find imperfection delightful, you will never be short of things that delight you, even if you fix any given problem. Solving problems and smoothing out imperfections doesn’t remove the source of delight, it merely opens up new vistas for it. You could give yourself over totally to delight in the imperfect and never run out of things to explore, even without creating your own.
The Nature of Product
An Article by Marty CaganToo many product managers and product designers want to spend all their time in problem discovery, and not get their hands dirty in solution discovery – the whole nonsense of “product managers are responsible for the what and not the how.”
The Feynman Algorithm
A Definition- Write down the problem.
- Think real hard.
- Write down the solution.
The fastest way to learn something is to do something
An Article by David R. MacIverSuppose you have a problem to solve. What do you do?
Well, you sit down and think real hard, and after extensive and careful planning you try the well thought out and rigorous solution that you have thought up. Right?
No, wrong! Bad.
The correct thing to do when you have a problem is:
- Think for a short amount of time.
- Make sure it is safe to try things.
- Try something you think will work.
- Observe the result. If you succeeded, yay you solved the problem! If it didn't work, think about what that means for the nature of the problem and try again.
Scott and Scurvy
An Essay by Maciej Cegłowski…one of the simplest of diseases managed to utterly confound us for so long, at the cost of millions of lives, even after we had stumbled across an unequivocal cure. It makes you wonder how many incurable ailments of the modern world—depression, autism, hypertension, obesity—will turn out to have equally simple solutions, once we are able to see them in the correct light. What will we be slapping our foreheads about sixty years from now, wondering how we missed something so obvious?
Class 1 / Class 2 Problems
An Article by Kevin KellyThere are two classes of problems caused by new technology. Class 1 problems are due to it not working perfectly. Class 2 problems are due to it working perfectly.
...Class 1 problems arise early and they are easy to imagine. Usually market forces will solve them. You could say, most Class 1 problems are solved along the way as they rush to become Class 2 problems. Class 2 problems are much harder to solve because they require more than just the invisible hand of the market to overcome them.
...Class 1 problems are caused by technology that is not perfect, and are solved by the marketplace. Class 2 problems are caused by technology that is perfect, and must be solved by extra-market forces such as cultural norms, regulation, and social imagination.
Adding is favoured over subtracting in problem solving
A Research PaperHow would you change this structure so that you could put a masonry brick on top of it without crushing the figurine, bearing in mind that each block added costs 10 cents? If you are like most participants in a study reported by Adams et al. in Nature, you would add pillars to better support the roof. But a simpler (and cheaper) solution would be to remove the existing pillar, and let the roof simply rest on the base.
A series of problem-solving experiments reveal that people are more likely to consider solutions that add features than solutions that remove them, even when removing features is more efficient.
Do not propose solutions
A Quote“Do not propose solutions until the problem has been discussed as thoroughly as possible without suggesting any.
I have often used this edict with groups I have led—particularly when they face a very tough problem, which is when group members are most apt to propose solutions immediately.”
— Norman R.F. Maier
What we have known since long
A Quote by Ludwig WittgensteinThe problems are solved, not by giving new information, but by arranging what we have known since long.
The small web is beautiful
I believe that small websites are compelling aesthetically, but are also important to help us resist selling our souls to large tech companies. In this essay I present a vision for the “small web” as well as the small software and architectures that power it.
Why aim small?
Why aim small in this era of fast computers with plenty of RAM? A number of reasons, but the ones that are most important to me are:
- Fewer moving parts. It’s easier to create more robust systems and to fix things when they do go wrong.
- Small software is faster. Fewer bits to download and clog your computer’s memory.
- Reduced power consumption. This is important on a “save the planet” scale, but also on the very local scale of increasing the battery life of your phone and laptop.
- The light, frugal aesthetic. That’s personal, I know, but as you’ll see, I’m not alone.
Features and complexity
Niklaus Wirth of Pascal fame wrote a famous paper in 1995 called A Plea for Lean Software. His take is that “a primary cause for the complexity is that software vendors uncritically adopt almost any feature that users want”, and “when a system’s power is measured by the number of its features, quantity becomes more important than quality”.
Solving the problem of software bloat
But instead of just complaining, how do we actually solve this problem? Concretely, I think we need to start doing the following:
- Care about size: this sounds obvious, but things only change when people think they’re important.
- Measure: both your executable’s size, and your program’s memory usage. You may want to measure over time, and make it a blocking issue if the measurements grow more than x% in a release. Or you could hold a memory-reduction sprint every so often.
- Language: choose a language that has a chance.
- Remove: cut down your feature set. Aim for a small number of high-quality features. My car can’t fly or float, and that’s okay – it drives well.
- Say no to new features: unless they really fit your philosophy, or add more than they cost over the lifetime of your project.
- Dependencies: understand the size and complexity of each dependency you pull in. Use only built-in libraries if you can.
Raw size isn't enough
A few months ago there was a sequence of posts to Hacker News about various “clubs” you could post your small website on: the 1MB Club, 512KB Club, 250KB Club, and even the 10KB Club. I think those are a fun indicator of renewed interested in minimalism, but I will say that raw size isn’t enough – a 2KB site with no real content isn’t much good, and a page with 512KB of very slow JavaScript is worse than a snappy site with 4MB of well-chosen images.
...[Instead, it's about] an “ethos of small”. It’s caring about the users of your site: that your pages download fast, are easy to read, have interesting content, and don’t load scads of JavaScript for Google or Facebook’s trackers.