为什么这很难?
Why is this hard?

原始链接: https://programmersstone.blog/posts/why-is-this-hard/

识别并克服挑战,在专注注意力和开放讨论下会更容易。当团队成员表达困难时,直接询问“为什么这很难?”并避免立即否定想法——探索“看似不可能的中间步骤”可以释放创新的解决方案。不要假设问题无法解决,考虑变通方法和替代方案。 此外,积极探索构建的*多种*方法,即使看起来是重复的,也非常有价值。正如John Ousterhout所建议的,两次设计功能可以促进对问题的更深入理解。 最终,通过彻底分析和讨论获得的知识比代码本身更重要。优先考虑集体理解能提供更大的优势,并促成更好、更明智的实施选择。

相关文章

原文

I feel like this is one of the easier issues to identify as soon as you get good at paying attention to the signs. My teammates have always been eager to explain the difficulties they are facing. Still, it never hurts to deploy the direct question in discussions: Why is this hard?

When you do ask, try to avoid letting anyone dismiss ideas too quickly. A key element to reaching new insights is traveling through the intermediate impossibles. This is the idea that we would like to just do X, but obviously we can't because X is impossible. Therefore we dismiss it. However, is X always impossible? Or is it just impossible in certain circumstances? Could we work around those circumstances? If we did, could we then do X? Even if this doesn't turn out to be the direct solution, having the discussion and working through the possibilities is often how we find our way to better ideas.

Speaking of better ideas, it's surprisingly helpful to analyze more than one possible approach to a build. John Ousterhout sometimes has to threaten his programming students to get them to try his idea to design features twice, but he finds that it always leads to better outcomes. I'm not even convinced that it wastes much time. The amount of understanding you gain for the problem you are solving provides more leverage when you are building the implementation, no matter which path you end up choosing.

Remember, what we've loaded into our collective understanding is far more important than any code that we produce.

联系我们 contact @ memedata.com