不懂技术的人不要对懂技术的人说这很容易实现

 “这个网站相当简单,所有你需要做的就是完成X,Y,Z。你看起来应该是技术很好,所以,我相信,你不需要花费太多时间就能把它搭建起来。”

 

我时不时的就会收到这样的Email。写这些邮件的人几乎都是跟技术不沾边的人,或正在研究他们的第一个产品。起初,当听到人们这样的话,我总是十分的恼怒。他们在跟谁辩论软件开发所需要的时间?但后来我意识到,即使我自己对自己的项目预测要花去多少开发时间,我也是一筹莫展。如果连我自己都做不好,我何必对那些人恼怒呢?

 

真正让我郁闷的不是他们预估的错误。问题在于他们竟然认为自己可以做出正确的估计!!!作为开发人员,我们经常会发现,在软件开发的问题上,一个外行人会很自然的把复杂的事情估计的很简单。

 

这并不是为我们的愤怒找借口。但这引起了另外一个有趣的问题:为什么我们天生的预测复杂性的能力在遇到编程问题时会失灵?

 

为了回答这个问题,让我们来认识一下我们的大脑如何估计事情的。有些事情对于一些没有经验的人也很容易预估正确,但有些事情则不然。

 

我们来想想观看一个人弹吉他。即使你从来没有弹过吉他,在观看了一场弹奏《玛丽有只小羊羔(Mary had a Little Lamb)》的吉他表演后,你也能大概推测出这很简单,一个人不需要太高的技术就能演奏出来。同样,当观看了有人演奏D大调的《卡农(Pachabel’s Canon)》后,你也很容易推测出,这很复杂,需要很长时间的练习才能演奏的出来。

 

为什么我们能够很迅速准确的预估这两首曲子的复杂性呢?这是跟我们用来判断一个事情简单和还是复杂的方法有关的。我们的大脑有一些现成的模式来完成这些事情,首先一个就是根据速度。这种情况下,大脑会辨别每秒钟演奏的东西。根据每秒钟演奏了多少东西,我们很容易有一个直观的判断曲子的复杂度。因为用吉他演奏一首歌是一种物理过程,一种感官上的活动,我们的大脑很容易依此来推测速度,继而转换成复杂度。

 

我们还有另外一个天生的推测依据:体积。想想把一个帐篷和一栋公寓放在一起对比。即使一个人从来没有学过建筑学,他也能告诉你通常设计和建造一个帐篷会比设计和建造一栋公寓要简单。为什么?因为我们天生的会使用物理体积作为事物复杂性的一个指标。

 

当然。上面说的这两种逻辑分析并不是总是100%的有效。但大多数情况下,人们就是这样干,而且很成功。大多数情况中,我们在对物理过程评估时,我们的大脑会对物理事物进行有效的关联,不需要依赖之前的经验。

 

现在让我们来谈谈软件。当一个不懂技术的人试图对软件开发时间进行评估时,有两个很基本的直观指标在辅助他们:以体积为指标的复杂度和以速度为指标的复杂度。但他们没有意识到,软件跟他们想象的不一样。软件本质上不是有形物质。没有体积和速度。它的极小的组成部分可能会时不时的在电脑屏幕上闪现。正因为如此,当面对开发一个web应用时(或任何类型的软件),我们的基本直观感觉失效了。

 

这第一点,速度,很显然根本不可能被外行人拿来对软件进行评估。于是很自然的,他们倾向于使用体积指标进行评估。要么是根据描述文档的页数,要么是根据软件的功能用例数或特征数。

 

有时候,这种评估手段确实有效!当面对一个静态网站,没有特别的设计要求,外行人很容易用这种方法估计出开发时间。但是,通常情况下,对于软件开发,体积并不能真实有效的反映复杂度。

 

不幸的是,对于软件的复杂度,唯一有效的推测方法是依据经验。而且还不是时时都好用。作为一个程序员,我知道,根据我之前开发过的相似的功能特征,我可以估计出现在的这些功能特征各自要多少开发时间。然后,我把总时间加起来,这就得到了完成整个项目需要的大致时间。然而,事实情况中,每个项目在开发过程中都遇到二、三个瓶颈。这些瓶颈会肆意的消耗程序员的大量时间,你在遇到它们之前根本不会有所预见。它们会拖住整个项目,致使工期延后数周甚至数月。

 

这些是没有经验的人在评估复杂度时不会理解的。他们不明白在其他事情上都很灵的方法,为什么放到软件开发上就不灵了。所以,下一次当你听到有人说“我想你几天时间就能把它开发出来”时,不管是谁说的,都不要懊恼。深呼吸一下,告诉他这篇文章的地址,自己该干什么还干什么。

时间: 2024-09-07 04:42:51

不懂技术的人不要对懂技术的人说这很容易实现的相关文章

UI设计师要不要懂技术?

  UI 设计师要不要懂技术?废话,当然要啊!不然怎么把幻想变成现实?在实际产出之前设计师做的一切都是「美美的幻想」,还有可能不怎么美,直到最后的产出才是真实. 举个例子:建筑师除了画图外,需不需要知道盖房子每个阶段的建造方式?要不要理解各种材料的特性和规格?需不需要熟悉当地环境的限制? 但建筑师需不需要知道水泥车怎么开?需不需要操作吊高机? 他们最后的成品是那迭图纸吗?谁去看图纸啊,当然是实体的建筑啊!那 UI 设计师最后的成品为什么是 Mockup? 懂技术 比较常听到「PM/Planner

互联网领域“既要懂技术,又不用懂技术”

硅谷网9月9日讯 读者钱先生来电咨询:http://www.aliyun.com/zixun/aggregation/6934.html">互联网创业一直是热门项目,但其中的核心技术部分是大多 数人难以应付的.如果要做一个互联网项目的产品经理,需不需要懂技术? 18创富记者楼安娜.实习生劳汝洁解答:产品经理(简称PM),指在公司中,针对某一项或某一类的产品进行规划和管理的人员,他们需要考虑目标用户特征.竞争产品.产品是否符合公司的业务模式等 诸多因素,也就是说,他们是周旋在工程师和客户.产

站长不一定要精通技术 但一定要懂技术

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 对于很多没有技术的站长来说,网站被别人挂马或者中病毒了来说无异于是一场恶魔.有的人说站长并不一定要懂技术,只要会推广就行了.对,一个成功的网站推广是非常重要的.但我要说的是技术也是不得少的一部分.至少要懂一点简单的html知识才行. 我就是一个不懂一点技术的一个初级小站长.刚开始的时候自己想做个站,就到admin5上发布信息找技术帮我做模板.

产品经理创业必须懂技术?

引言:在有的时候我们更需要的不是一个会技术又会懂产品的产品经理,我们需要的是能够相信伙伴能做得好,并且鼓励其一起去做得更好的产品经理.所以到底产品经理需不需要懂技术,下面就让我们来看看知乎网友对这个问题的回答. herock(herockpost.com) 在最近七年,我一直都在做互联网产品,其中前五年的时间分别在创业公司和上市公司里,做别人的产品;而近两年在创业,努力的做自己的产品. 而你要问我的体会的话,我的体会就是:产品经理是需要懂技术的,而创业者尤其需要.但前提是,你总会觉得有股憋不住的

java 学习 技术-求牛人给指条技术学习的明路

问题描述 求牛人给指条技术学习的明路 本人13年毕业,至今工作将近1年时间,每天从事代码复制粘贴和简单代码编写的工作,知道程序员需要不断学习,特别希望知道从哪学起 解决方案 会编程 编好程 是程序员本质的区别 如果你会实现功能了 就追求性能 都会了就转架构方向把 解决方案二: 会复制,那你还得回阅读 解决方案三: 主要还是会懂得逻辑,这是编程不可缺少的部分

AI 创业 5 问,顶级 VC 与技术领袖犀利评审 | 新智元百人会在红杉

2017年2月22日,新智元百人会2月闭门论坛暨新智元创业大赛评审会在红杉资本中国基金会议室召开.来自投资界.企业界和学术界25名评审坐阵,其中包括共同捕猎2017年的"AI 创业独角兽".  新智元"寻找AI 独角兽" 创业大赛从2017年1月 启动至2月21日,共收到100多份BP.本次会议对闯过初审关的 20 家创业企业进行再评审,25名专家评审根据"技术实力"."商业潜力"."团队亮点"和"

《日志管理与分析权威指南》一1.6 人、过程和技术

1.6 人.过程和技术 有效的日志分析策略不单单是一系列的工具,而是人.过程和技术的完美组合.技术是你使用的各种工具的组合.但是只有最新的工具是不够的,你必须知道用它们来做什么.过程决定了你如何使用这些工具.如何管理日志数据,确保它含有你所需要的信息,并从中获取你所需要的信息?过程对于这些问题来说是必需的.在法庭上用日志作为证据时,一个记录在案的日志处理过程是必不可少的.能够展示你平时怎样收集和保存日志数据,会极大地影响到你的日志数据是否可以成为证据.报告可以对此提供帮助,我们会在第12章涉及这

这是一个国内只有寥寥数人懂得的云计算技术

据说,这是一个国内只有寥寥数人懂得的云计算技术领域.以下是邱洋分享实录: 邱洋:现在发现越来越多的客户,都不大知道IaaS+是什么.跟他们交流之后,主要的总结是:IaaS+可以解决IaaS和PaaS都解决不了的问题,IaaS主要解决基础资源抽象化,但应用能直接使用的能力不多(弹性算是一种),PaaS主要解决应用的云化,但需要改造原有系统架构和编程方式(例如Cloudfundary.MapReduce). 最近Gartner在中国未来重要技术趋势报告中指出,提到"通过软件定义架构(云平台),强化数

云技术让UC浏览器TV版 赋予懒人超能力

本文讲的是<strong>云技术让UC浏览器TV版 赋予懒人超能力,</strong>在看<来自星星的你>时,"都敏俊兮"的超能力是不是很让大家很羡慕?要睡觉,意念关灯;渴了,隔空端水;瞬间移动就更帅了--虽然没有都敏俊的超能力,但科技已经让越来越多的麻烦从生活中划走,我们以火箭速度进入了"懒人时代":懒得洗碗,有洗碗机;懒得扫地,有扫地机;懒得按开关,有声控电灯--在智能家居大行其道的今天,电视也越来越智能化.近日,UC浏览器T