程序员X在一个IT咨询公司工作,这一天他的Slack收到了来自老板的一条消息,可是这个经常使用200G内存的软件又一次崩溃了,他看不到老板在说什么,于是就直接去找老板。
他打开了老板办公室的门,看到老板慌忙地把浏览器关掉, 问道:“有什么事吗?我正在工作。”
“我的Slack崩溃了,看不到你发的消息。”
“奥,是这样,” 老板说,“下星期是我外甥女的7岁生日,我姐姐想让我给她做一个庆祝生日的网站,你能帮忙吗?”
“当然,没问题!”
程序员回到了座位上,预定了第二天的会议。
“老板吩咐我们给他的外甥女做一个网站,怎么开始呢?”
“那当然得先选技术栈啊!” 另外一个程序员说到。
他们花了两周的时间来讨论用什么技术栈,最终确定了一个列表, 这里仅仅是前端列表:
“不错,不错,我们有前端技术了,让我们开始吧!”
三个月以后
老板坐在办公室吃三明治,这时候他想起了一件事情。
“X, 3个月前我让你给我的外甥女建一个网站,现在网站到底在哪儿?”
“先生,我们正在开发前端,我们写了测试,并且创建了后端的Mock,我们很快就会完成了!”
“什么?你在开玩笑吗?滚出去!”
程序员X知道老板为什么发火,因为老板知道他们不应该使用Fad.js,他们应该使用Even-More-Fad.js。
项目启动6个月以后
前端完成了, 可是他们还需要一个后端, 于是程序员X又举办了一个会议。
“好了, 朋友们,我们得开始写后端了, 对于用什么框架,欢迎各抒己见!”
20个程序员给了20个建议,基本上,每个人都选择了自己最喜欢的,能让自己获得更好工作的框架。
经过了一周的争论,他们发现了一个新的编程语言,由Google和Facebook联合推出,新的语言叫做“顽皮小脚本”。
于是每个人都同意用这个新语言。
程序员X幻想着这个项目完成以后,他就可以到Face-oogle去工作了。
项目开始1年以后
项目进展不顺利,程序员X的头上开始冒汗了。
“顽皮小脚本” 有很多的Bug,他们不知疲倦地Fix,实际上是为Google和Facebook提供免费劳动力。
虽然他们还没有开始一行代码的编写,但是X知道再努力一下,成功就在不远处。
这个时候老板把他叫进了办公室。
“X,你这个白痴,一年前我让你给我的外甥女建个网站,你到底在干什么?”
“先生,马上就做完了,再给我两周就行!”
“算了吧。去年我外甥女自学了一点HTML和Javascript, 她自己就把网站建起来了!”
程序员X震惊了!
一个HTML网站!到底是谁做的!
“这太荒谬了, 她怎么去测试呢?她写测试用例了吗?”
“她打开浏览器,这儿点点,那儿点点不就行了?”
“但是她是怎么Mock后端数据库的?怎么集成微信、微博、QQ的?缓存呢?负载均衡呢?如果CDN挂掉了怎么办?如果她想把网站改成SPA该怎么办?!”
“滚出去,你这个白痴!”
程序员X回到了座位上,他到知乎上写了一个很长的文章,抱怨这些刚进入编程领域的孩子们不讲究任何标准,他们这样会毁掉软件产业。
文章得到了一千个赞同,每个人都同意现在入门编程的标准确实降低了。
原文链接:
https://www.pythonforengineers.com/the-attack-of-the-over-engineering-cowboy-programmers/
后记:这个小品文生动地诠释了什么是过度设计和过度工程,程序员X在没有搞清楚真正需求的情况下就贸然开始设计,选择了复杂的前端和后端,尝试了各种热门的东西,这样的项目必败无疑。
【本文为51CTO专栏作者“刘欣”的原创稿件,转载请通过作者微信公众号coderising获取授权】