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