As a working furnituremaker, it depends on the client's budget. I try to get a sense of budget early in the design process so that I can both provide the best bang for the buck for the client and also a uniform level of quality throughout the piece. If push comes to shove, though, I'm not going to turn a job down because there isn't budget for a frame and panel back. I'm not going to turn someone's work away because they can't afford a higher-end option that nobody will ever see. That's not how to treat people with dignity.
In a couple instances, I've turned down work because the budget and expectations were wildly incompatible, but that's as simple as saying "I can't do the work you're looking for at that price." I'll offer suggestions for a more cost-effective alternative if I can. In one instance, that's turned into work down the line when the client came back with a different project with a budget more in alignment with their goals.
Lastly, while everything Nancy Hiller (RIP) has ever written is worth reading, these two pieces are highly relevant to the question of standards, budgets, and delivering the whole project.
The same applies to software: it's common to criticize someone's work without knowing the context or the story behind the system. The typical triangle dilemma is budget, time, and quality.
I’m add to existing legacy Code. I can’t be judgy most of the time. Sometime I can suss out the first build then the additional features tacked on at later dates which is where things get messy.
I’m at the fourth update and I did a little clean up. I didn’t tear it and start from zero, but I cleaned it up so future me will be happier when the next change comes (and we now know they keep wanting updates to this)
The original way worked and was clean and I just assume that the next updates were done under some time constraints. A lot of code here just keeps working for years with no updates so it made sense to do it faster with less flexibility.
Not everything needs to be great when more good enough functionality is more useful.
This quote comes up often in SJ biographies or anecdotes and they universally attribute it purely to aesthetic concerns. Admittedly the man cared quite a lot about "beauty", but I've always thought this was more about the caring and less about the beauty.
To spend time making something most people never see look just as good as the things they do see you have to care quite a lot. This care begets a wide range of (usually) desirable secondary effects brought about by diligence. In my view it's similar to the effect of spending the time to make many iterations of a thing versus one perfect thing, with the former usually resulting in an end product much closer to "perfect".
This can also be seen as a way to filter the customers. "We only care about customers who care about the visual quality of the board that nobody ever sees." In other words, customers who are driven by aesthetics, and who have the means to support the habit of buying extra quality things, maybe with a whiff of conspicuous consumption.
If anything, it's a good, high-margin market. Beside the actual piece, you sell both self-appreciation and status. Apple long tried to make their products closer to fashion accessories, with some success.
A real estate agent walked through my house I was putting for sale. He examined the switch plates carefully. I asked why. He replied that a good craftsman lined up the slots in the top screw and bottom screw, and this was a "tell" that he'd done a good job.
I finished building a cabinet for my shop last week. It holds 58 small parts cases from floor to ceiling. I didn't put a crappy piece of plywood on the back, I put three separate crappy pieces of plywood on the back. I used the worst leftover pieces that I though had the structural integrity to keep the cabinet rigid.
And instead of losing sleep over it, I would have lost sleep if I had used a perfectly good large sheet of plywood, and lost the opportunity to make something nice with it. Real wood? Forget about it.
Steve Jobs' imaginary carpenter must be too rich to care about stretching her materials as far as they can go.
and plywood is probably the material of choice for cabinet boxes, straight, strong, not prone to warping, etc. Actually, seems crazy to use nice wood where it won't be seen.
Most importantly it's dimensionally stable. As the seasons change it won't get significantly longer in one dimension. This is most important for the back of the cabinet because it has to deal with grain going different directions, so you can't pick an orientation that will just work.
I spend a LOT of time woodworking and have made a few cabinets.
I would love to use solid wood for cabinet backings, but I don't. The reason? $ and time cost will be 5x, and it will not be as durable as layered ply. Plywood actually makes a better cabinet!
The difference between me and SJ? He could sell the shit out of that expensive, not-as-good cabinet. And that got artists and engineers excited to start making high-quality things to go in that expensive cabinet.
This quote could only come from somebody that knows nothing about trades. Examine any "high style" cabinet from the federal period, or any other period really. The backs of highboys are the worst, rough-sawn, uneven, knot-riddled pieces the cabinetmaker had.
I think I follow this philosophy. You spend a lot of time looking at the insides of the things you build, even if no one else does - why shouldn't I get to see beauty too.
Related but distinct from aesthetic beauty, there's a sort of mechanical beauty. Simplicity and elegance and all that. All the parts that came out of the Macbook were held in with one screw - good - but all those screws look to be different shapes and sizes - less good. Maybe it isn't possible to have both. For my money I spend a lot of time going back and forth between the two.
I first heard this SJ quote maybe 15 years ago and I've carried it with me since.
I've always prided myself on taking a craftsman-like approach to software engineering... thinking deeply about interfaces, ownership, lifetimes, how the public API looks, how using the public API feels...
Lately, though, with the advent of LLM-assisted coding this mindset is starting to feel hollow. Why spend 1.5x as long crafting something robust when, in all likelihood, it will be replaced or refactored by LLM tooling within the next 5 or 10 years?
Wow, the interesting part there—at least for anyone who already knows the cabinet story—is how it ends:
"Well, that was a difficult part to layout because of the memory bus.", Burrell responded. "If we change it, it might not work as well electrically".
"OK, I'll tell you what," said Steve. "Let's do another layout to make the board prettier, but if it doesn't work as well, we'll change it back."
So we invested another $5,000 or so to make a few boards with a new layout that routed the memory bus in a Steve-approved fashion. But sure enough, the new boards didn't work properly, as Burrell had predicted, so we switched back to the old design for the next run of prototypes.
That's interesting because (a) it's a story of how the cabinet principle didn't prevail, and (b) it's a brilliant example of how to communicate.
The best-looking cabinet you can make that stays up is more beautiful than a beautiful back wall that collapses.
More cynically, these stories are also a way for Steve Jobs, who lacks technical skill but is still the boss of the technical geniouses, carves out a niche for himself where he is the undisputed leader and no oen can challenge him: his own subjective sense of aesthetic.
There was a similar story where he insisted on painting manufacturing machines for aesthetic reasons. It cost a lot of money, the paint caused problems with the machines, and the stuff they were manufacturing didn't sell well. I think I heard it in the Isaacson book, but here's a site telling the same story. https://professornerdster.com/from-steve-jobs-life-a-clean-f...
I had a job wire-wrapping circuit boards in college.
I expended effort to lay out the wires so they formed a neat pattern. Why spend time doing that? It made it easy to check for errors in wiring, as then the pattern would be disrupted. The end result was I almost never made a wirewrap mistake, and the work was appreciated.
I also soldered components on, and also took care to orient the resisters all the same way, and align everything neatly. I'd use needle nose pliers to bend the leads just so, too. It also made visual error checking fast and easy. Again, no errors.
In a couple instances, I've turned down work because the budget and expectations were wildly incompatible, but that's as simple as saying "I can't do the work you're looking for at that price." I'll offer suggestions for a more cost-effective alternative if I can. In one instance, that's turned into work down the line when the client came back with a different project with a budget more in alignment with their goals.
Lastly, while everything Nancy Hiller (RIP) has ever written is worth reading, these two pieces are highly relevant to the question of standards, budgets, and delivering the whole project.
https://www.finewoodworking.com/2019/09/11/dont-knock-the-la...
https://www.popularwoodworking.com/editors-blog/lets-make-ev...
I’m at the fourth update and I did a little clean up. I didn’t tear it and start from zero, but I cleaned it up so future me will be happier when the next change comes (and we now know they keep wanting updates to this)
The original way worked and was clean and I just assume that the next updates were done under some time constraints. A lot of code here just keeps working for years with no updates so it made sense to do it faster with less flexibility. Not everything needs to be great when more good enough functionality is more useful.
To spend time making something most people never see look just as good as the things they do see you have to care quite a lot. This care begets a wide range of (usually) desirable secondary effects brought about by diligence. In my view it's similar to the effect of spending the time to make many iterations of a thing versus one perfect thing, with the former usually resulting in an end product much closer to "perfect".
If anything, it's a good, high-margin market. Beside the actual piece, you sell both self-appreciation and status. Apple long tried to make their products closer to fashion accessories, with some success.
And instead of losing sleep over it, I would have lost sleep if I had used a perfectly good large sheet of plywood, and lost the opportunity to make something nice with it. Real wood? Forget about it.
Steve Jobs' imaginary carpenter must be too rich to care about stretching her materials as far as they can go.
Dead Comment
I would love to use solid wood for cabinet backings, but I don't. The reason? $ and time cost will be 5x, and it will not be as durable as layered ply. Plywood actually makes a better cabinet!
The difference between me and SJ? He could sell the shit out of that expensive, not-as-good cabinet. And that got artists and engineers excited to start making high-quality things to go in that expensive cabinet.
A craftsman knows where to apply his effort.
And they're not selling to cabinet makers.
Related but distinct from aesthetic beauty, there's a sort of mechanical beauty. Simplicity and elegance and all that. All the parts that came out of the Macbook were held in with one screw - good - but all those screws look to be different shapes and sizes - less good. Maybe it isn't possible to have both. For my money I spend a lot of time going back and forth between the two.
I've always prided myself on taking a craftsman-like approach to software engineering... thinking deeply about interfaces, ownership, lifetimes, how the public API looks, how using the public API feels...
Lately, though, with the advent of LLM-assisted coding this mindset is starting to feel hollow. Why spend 1.5x as long crafting something robust when, in all likelihood, it will be replaced or refactored by LLM tooling within the next 5 or 10 years?
For example, the syscalls for linux are never changing IMO. The cost is unbounded to change, even with AI.
Should your APIs be treated any different?
At the very least, the LLMs work better with better APIs and data models, which yet accelerates the solving of problems.
https://www.folklore.org/PC_Board_Esthetics.html
"Well, that was a difficult part to layout because of the memory bus.", Burrell responded. "If we change it, it might not work as well electrically".
"OK, I'll tell you what," said Steve. "Let's do another layout to make the board prettier, but if it doesn't work as well, we'll change it back."
So we invested another $5,000 or so to make a few boards with a new layout that routed the memory bus in a Steve-approved fashion. But sure enough, the new boards didn't work properly, as Burrell had predicted, so we switched back to the old design for the next run of prototypes.
That's interesting because (a) it's a story of how the cabinet principle didn't prevail, and (b) it's a brilliant example of how to communicate.
More cynically, these stories are also a way for Steve Jobs, who lacks technical skill but is still the boss of the technical geniouses, carves out a niche for himself where he is the undisputed leader and no oen can challenge him: his own subjective sense of aesthetic.
I expended effort to lay out the wires so they formed a neat pattern. Why spend time doing that? It made it easy to check for errors in wiring, as then the pattern would be disrupted. The end result was I almost never made a wirewrap mistake, and the work was appreciated.
I also soldered components on, and also took care to orient the resisters all the same way, and align everything neatly. I'd use needle nose pliers to bend the leads just so, too. It also made visual error checking fast and easy. Again, no errors.
https://en.wikipedia.org/wiki/Apple_III
> Jobs insisted on the idea of having no fan or air vents, in order to make the computer run quietly.
> Many Apple IIIs were thought to have failed due to their inability to properly dissipate heat.