0.背景

从事软件开发行业的人可能都会遇到各种奇葩问题。比如:

项目经理:你好,客户,你想做个什么啊?

客户:我想造个桥。

项目经理:什么桥?

客户:。。。。。。。就是一个桥。

项目经理:你这桥多长,什么样式,作用是什么,有其他要求吗?

客户:。。。。。。。嗯,我就想造一个桥,你们怎么这么多问题,你们还能不能干了?

项目经理硬着头皮回来跟研发讨论:客户想造一个桥,但是不知道是什么样,而且要明天交工。

研发:。。。。。。。。??????????

干了一个通宵。终于赶出来了。交付给客户。

客户:这是什么玩意,这里不对啊、这里怎么是这样的、这里应该这样啊、你们怎么做的,你们行不行啊。。。。。

项目经理:(满脸黑线)。。。。。。。。。。。。。。。。。

研发:(满脸黑线)。。。。。。。。。。。。。。。

以上场景可能经常出现在一些小型的软件开发公司中。原因不多说,相信大家都有体会。今天从软件开发角度说下,我总结的一个软件开发中的三角不可能原则。

1.三角不可能原则

最原始的三角不可能最先出现在金融学中,又称三元悖论。指一个国家在资本自由流动、汇率稳定和货币政策独立性三者中不可兼得。我把这个理论搬到实际软件开发中。

这个不可能原则主要是针对实际干活的。假设情景是一个刚开始起步的软件公司。任何人给你安排一个比较着急的活的时候就要考虑下面三角不可能原则。

简单解释就是:任何一个比较着急工作,如果上述三角能全部满足,则此项工作很有希望按时质量完成。如果只能满足上述两个,则能保证按时完成,质量不能完全保证。如果上述三角只能满足一个,则按时完成都会成问题。如果上述三角一个都不能满足。那么,小伙子,赶紧辞职吧,这是一个坑。

这里简单解释一下:这里的“人”指的是有能力完成这项工作的人,不是随便从大街上拉一个人。“时间”指的是并不是无限时间,而是按照一软件开发的每一个过程给与每个阶段相应的时间。“钱”就是money。

当然,上述这个三角只针对于一个新的软件开发公司,如果你所在的公司有底蕴,完全可以避免遇到这种问题。

2.如果避免遇到三角不可能问题

如果是别人给你安排工作,你是无法避免这个问题的,因为除了你之外,你没有其他可以调配的“资源”。但是,公司可以帮你避免这个问题 ,一个有软件开发背景的公司遇到这种情况会做什么。

公司会提供“平台”。这个“平台”大部分软件开发公司都有自己的平台。平台的主要作用是帮助你快速开发,因为但凡是你这个软件公司在某个行业待的时间长了,相应的业务场景一定有,相当于把以前实现的功能简单复现一遍。这个时候可以借助平台快速把功能开发出来,而且相对比较可靠。

如果没有平台,一定要和公司商量多开发原型,多写原型,一定要学会代码复用,减少开发的工作量,这样才能相应比较急的需求。

最后,如果什么都没有的公司,赶紧跑。。。。。。。。。。。。