我常常会遇到项目经理或者客户提出一个复杂或者难以实现的需求时,开发者会说:“我实现不了,这么功能作不了,这么作没有意义”之类的。程序员
咱们先不去讨论需求提出者的水平怎么样,或者脑回路有坑之类的问题。我想先问一句:“真的实现不了吗?”,这不是一个开发者解决问题的方式。开发
==我相信没有实现不了的需求,只有实现不了需求的程序员==产品
那么如何去实现那些看起来好像很难作到或者根本实现不了的需求呢?在讨论这个问题以前,我想先让你们回忆一个最近刚刚怼回去的需求,看看在接下来的阅读后对你有没有帮助。程序
我如今要提出这样一个需求:我要一颗原子弹。方法
你不须要去考虑这个需求的合理性,也不须要去考虑我拿着这颗原子弹回去作什么。因此,无论你怎么去作,只须要最终把我要的那颗原子弹放在个人面前。im
有一个很经典的笑话:“把一只大象放进冰箱,须要几步”,打开冰箱,把大象放进去,关上冰箱。逻辑简单但无懈可击,由于不管是搞到一个足够装进大象的冰箱,或者是把大象缩小到足够装进冰箱都只是具体的实现方式而已。项目
回到咱们的问题“我要一颗原子弹”,你的解决思路是什么?img
咱们解决问题关注的不是可能性,而是逻辑性,甚至可能不现实,可是符合逻辑。就好像制造一个足够装进大象的冰箱这是现阶段可实现的,可是把大象缩小到足够装进冰箱只是现阶段不可实现而已,本质上都符合“三步逻辑”。开发者
在我提供的思路里,前两个是现阶段可实现的,第三个是现阶段实现不了的,咱们先来讨论这个现阶段实现不了的思路如何解决问题。解决方案
"如何变出一颗原子弹"。不知道各位有没有看过漫威漫画,里面有一个变种人“富兰克林·理查兹”(神奇四侠中隐性女和神奇先生的儿子),具备的能力是将思想变成现实。那么解决方案来了,咱们先找一个具备这种能力的变种人,让他给咱们变出一颗原子弹。至于如何找到或者制造这个变种人,我想咱们能够参考“麦哈顿计划”制定一个“Marve Plan”。虽然这种解决的思路有点扯淡,可是你不能否认在逻辑上的可行性,我甚至能够说若是精深的掌握了这个方法,你绝对会是一个伟大的产品经理。
为何说前两个解决方案是可行的,由于无论是原子弹或者原子弹的制造方法都是现实中真实存在的,问题只在于怎么获得它。
那么如何获得一颗已经存在的原子弹呢?那么方法多了去了,你应该想的是从哪里获得,美国、俄罗斯、德国甚至是中国,至于获得的方式,这是一个考验想象力的和计划制定能力的问题,有不少电影可供参考。制定一个足够严谨的计划,而后得找到一群可靠的执行者,搞定计划中的各类意外,以及可能出现的正义使者,最后清理掉一切手尾,将原子弹带到客户的面前,固然这里存在不少的不肯定性和让计划破产的风险。
再来讲“制造一颗原子弹”的步骤,首先你得找齐研究原子能的物理学家和工程师、可以完成制造的工人、足够的原料,接下来须要考虑的是找到一个不被任何人打扰的地方,努力干个几年十几年的,或许最后真能造出一颗来。
其实还有一个平常咱们处理这类问题的常规思路,找一个铁匠师傅,照着外壳打一个原子弹的模型,而后写上三个大字:“原子弹”,OK,搞定。
解决方案准备好以后,咱们要考虑的是实现方案的成本问题,
读到这里,我但愿我表达的内容会对你有所帮助,比较若是连原子弹都能搞获得,还有什么是作不了的呢?