Hacker News new | past | comments | ask | show | jobs | submit login

I'm not able to speak authoritatively on this subject (after who the heck am I? I'm creative in spurts but have no deep insight on the process), but as an observer of human nature, engineers do seem especially weak at divergent thinking -- they can't help obsessing over how something might fail almost as soon as as they hear an idea.

This is a blocker. One of the ways to unblock this, I'm told, is the "improv" mantra of "yes, and" -- meaning, if someone states an idea, instead of saying "yes, but", you say "yes, and" and build upon it. For instance, someone says "I'm a unicorn fireman", you say, "yes, and your horn is a nozzle for a high-pressure hose". And you keep building.

For years I could never quite figure out how this applied to engineering problems so I thought "yes, and" was mostly stupid and unworkable (except in the arts) -- because what if the other person's wrong? How do I "yes, and" someone who says "the earth is flat"?

But one of Paul Graham's tweets helped me reframe this in a way that is palatable to even engineer-types. He says (paraphrased):

"Problem solving is 2 phase approach: (1) idea generation / mistake making, and then (2) aggressively fixing those mistakes / editing. We often shortcut the process by editing too soon."

In other words: engineers are only good at "yes, but" (convergent thinking phase) and prematurely shut down the "yes, and" (divergent thinking phase). So how about we treat thinking as a two-phase problem and give divergent thinking some room? We can still apply pragmatism/practicality ... but later, after we've "yes, and"ed.

Alls we're saying is, give "yes, and" a chance.




> In other words: engineers are only good at "yes, but" (convergent thinking phase) and prematurely shut down the "yes, and" (divergent thinking phase).

I do this sometimes. In many cases, I feel like "yes, and" would be an endorsement of the original idea. If I say "yes, and" and then there are delays or problems in implementation because of things that would have been obvious to "no, but", the question becomes "why wasn't this brought up earlier on before people sunk so much time in." In the reverse case, saying "no, but" in a case where the problem is easily surmountable just makes the questioner look like a good planner. So in that sense the reason devs tend to "no, but" is matter of them responding to incentives; it's not that they can't think divergently, it's that they're putting themselves at risk for little reward for doing so.

> So how about we treat thinking as a two-phase problem and give divergent thinking some room?

Yes, I think separating these two phases (and thus separating "throwing an idea out there" from "endorsing an idea as definitely workable with no foreseeable complications") would be very helpful.


I am a fan of cultivating "yes and" culture when appropriate, but I 100% agree with your concern. Management must earn the trust of engineers before they can expect them to hold off on the "yes, but" interjections. Most management does not earn that trust for exactly the reason you note.


engineers are only good at "yes, but"

Being primarily an engineer myself, I can't help to say 'yes, but' you might want to rephrase this into 'untrained engineers' or 'some engineers' or 'uncreative engineers' or similar. Don't get me wrong, I know the people you talk about and I simply cannot deny I used to be like this myself sometimes but over the years this changed into something bimodal. I.e. when needed I will always fall back to 'how can this fail' mode - just because it's often required to properly fix/create things which won't brake, but I find myself defaulting to generating tons of ideas. But I'm also creative b nature so that helps. In fact most other engineers (by education or not, doesn't matter) I know also clearly use a mix of both modes. There's only a couple which don't (and even some which default to only creating a mess, not seeing any problem, but that's something else and I'm not sure if it's an engineer:).


> "the earth is flat"

yes, and "resting on the backs of four huge elephants which are in turn standing on the back of an enormous turtle"

I'm engineer :)


It's only a blocker if you're using the "buts" to dismiss the idea out of anxiety. Most "divergent thinking" ideas sound cool on paper but are horrible in reality for a bunch of reasons unforeseen at the generation of the idea (Communism and Eugenics come to mind). Accounting for the potential negatives up front is just due diligence and good design. Then you do a risk analysis and determine if the risk of the negatives is worth the potential positives.

To use your "I'm a unicorn fireman" example, sure that conversation can be fun.. and what does the winner get? With that example you're not building a system to be used by humans in the real world, you're doing stream-of-consciousness thought experiments, more art than engineering. There are no solid constraints.

Sure there's some debatable evidence that creativity can be "practiced" and generally applied, but when you're trying to build a better airplane putting a giant swimming pool in the nosecone is probably not a good idea for a whole host of reasons and it's best that you account for those before building the thing.

Software and the other arts largely benefit from cheap iteration cycles and relatively low-impact mistakes. And even in those cases if you "yes and" too much and try to account for the mistakes later you can find yourself with a horrible, underthought design and swamped trying to fix all the problems at once. Then all those negative constraints you ignored in the name of "divergent thinking" suddenly make themselves known. Many a failed startup led by a Steve Jobs wannabe is a perfect example of this.


I wonder if you might be demonstrating the principle in your response?

I think the main point is that there may be advantages to explicitly giving room to both divergent and convergent thinking to exist in separate phases (this could be done in one cycle -- there's nothing that says any of the cute unworkable ideas would ever leave the meeting room or shopfloor or prototype. Reality/logic/laws of nature are the final arbiters).

Constraints/refinements/criticisms will emerge in the second phase, but we often don't give room to the first because we tend to want to edit too soon, and if we're honest, our impulse criticisms going to be based on our past experience and emotion rather than a cool, deliberate, rational analysis process or empirical reality.

A disciplined balance is what is sought. In creative processes, withholding judgment during ideation is a basic principle -- but many engineering types are too quick to ignore it, wanting to filter almost immediately. This is ok if the space is well-understood and what you're doing is cookie cutter (which to be honest, is all most engineers do), but definitely a blocker if you really want to challenge ideas and do something truly new. It snuffs out ideas pre-maturely and doesn't allow them to potentially grow into something that would work.

An example of this: I was against neural networks for years because they lacked explainability ("black boxes" was my criticism of them), and whenever someone brought them up I would enumerate my usual list of criticisms of why they would never work -- all rational and mathematically watertight. It became so habitual that a few good ideas (where neural networks actually would have worked if we had tried them, albeit it had to be in creative ways) passed us by. I snuffed that idea out before it had a chance to emerge in a form that I would have recognized as something workable.


Fair enough. I'd definitely agree there needs to be a disciplined balance, too much conservatism is just as bad as too little. But in defense of Engineers in general, it's quite possible that in their experience they've seen many situations where negatives ignored grew out of control.

An example I experienced a couple of weeks ago: Someone let code that "just works" slide through a code review back in 2017. That code had a hard-coded value that would have been easy to determine dynamically (he just set a max at an arbitrary value instead of counting how many of a resource there were) but wasn't due to general lack of discipline. Now it's a minor issue, and the code did indeed work up until a couple of weeks ago. Then the number of the resource in question changed, and all of a sudden that hard-coded max was no longer accurate.

The error manifested as a segfault in our C++ but only sporadically and was hard to reproduce when we didn't know what the issue was. Doesn't help that it was in a mountain of legacy spaghetti code. It took me and two other people two days to track down the original cause, which if you add up our de-facto hourly rates cost the company thousands of dollars. All because of one little minor piece of sloppy code.

Now imagine the effects of bigger, grander sloppiness at the design level. And then those effects get compounded because they're conveniently ignored and integrated into still further mistakes, and you get an exponentially multiplying mess.

I'm willing to bet many professional engineers have had an experience similar to that, and if they care about their craft at all it was likely extremely frustrating and painful to deal with. So it's not that they're "bad at divergent thinking" so much as they've been trained by experience to believe that the benefits of divergent thinking aren't worth the potential downsides. Whether that's an unconscious bias that should be worked against is an interesting question.


Thanks for your thoughts. I appreciate where you're coming from -- and indeed engineers are wired to be critical and to eschew sloppiness because it is useful (indeed often crucial) in execution (as your anecdote bears out -- that has happened to me many times).

But that superpower, which is so instrumental for execution, seems to me to be simultaneously deleterious to creative enterprises. It is at best an incomplete superpower.

I would also say that the reverse is true. Artsy creative types who are gifted at divergent thinking, but not convergent, are typically weak at execution so their products never gain traction or do not actually work.

Creative endeavors are by nature "sloppy". Hence the need to withhold judgment and let an idea play out via a divergent phase, and then bring it back through the convergent phase.

It would seem to me that both rationals and creatives have blind spots, hence the usefulness of a 2-phase process.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: