`

讲•道•理

阅读更多

   做什么事都要讲道理,今天我说说软件开发中开发人员的”讲道理“。

 

   开发人员写代码之前,一般都会做几件事:

 

   编写详细设计文档 : 有些开发人员,或者公司要求写详细设计文档,用来对自己将要进行的开发工作做一个详细的设计。

 

   参加系分,概要设计宣讲和评审 : 有时候,是没有详细设计的,直接听了系分宣讲,理解一下需求和系统实现的大概思路,就动工了。

 

   仅仅理解需求 : 这种情况下,没有系分,设计文档,直接理解需求后,直接开始编码。

 

 

   以上几种场景,都是很常见的。依不同组织,不同团队,不同的紧迫程度而不同。

 

   设客户理解的软件为C,需求分析人员理解的软件为R,设计人员理解的软件软件为D,开发理解的软件为P。

 

   理想情况下: C=R=D=P,这是理想,限于时间,成本,不可能完全相等。

 

   我了解的日本外包,C=R=D≠P,他们通过大量的时间,将软件用语言描述为文档,但到实现层面,开发人员理解还是可能产生误差。保证了C=R=D≠P

 

   这里,我不说其他的环节,只讨论开发人员完成编码工作需要的前置条件,换句话说,开发人员做了什么事情,他就可以开干活了,并且保证理解的正确,返工率低。

 

   有人赞成编写详细设计文档,有人说详细设计文档写了也没用,浪费时间,设计变了,还得改文档,麻烦。

 

   设想一个场景:

 

   我让我儿子去打酱油,我话音刚落,他已经出去了,不一会,回来了,拿了一袋酱油。我说:”你怎么买袋装的,我想要瓶装的,用起来方便啊“。话音刚落,我儿子出去了,买了一瓶酱油回来。我说:“我要黄豆酱油,你这个太淡了啊!”。

 

   此故事纯属虚构,我儿子目前还不会打酱油。我想说明的是,如果在打酱油之前,他能够问一下:“爸,你想要什么样的酱油啊”,就尅有避免这种事情的发生,包括返工。

 

   但,仅仅问就足够了吗? 说着可能溜号,口不对心,想要A,说成了B。听着也可能把A听成B。

 

   回到软件开发场景,开发和上游的理解偏差可以表示为,即:

 

   ΔPD = P-D

 

   如何让ΔPD = 0呢?

 

   大家都有这个体验,洗澡的时候,开热水,不热,再拧,tmd太热了,拧回来,又太凉了,反复几次之后,终于水温合适了。

 

   这就是负反馈回路,又叫平衡回路。

 

   在这里,就需要开发人员和上游有多次反馈,不能只听不问,只听不讲,只讲而不做确认。

 

   如果你刚开始程序员的工作,编码,你需要做的就是不断的听,问,讲。大多数开发人员听的多,问的少,讲的就更少了。 如果要在职业生涯更近一步,成为资深开发工程师,一定要学会讲,积极的讲。这道坎迟早要迈的,不仅要讲,而且要讲的简明扼要,要抓住关键,要让别人很快就能明白你的意图,你的设计,你的方案,你的问题等等。

 

   这就是我说的讲道理,作为软件这条线上的蚂蚱,不仅仅是开发,其他角色也一样,一定要多讲。

 

   从这个角度,讲道理可做如下解释:

 

   “讲“,然后”道“就”理“清楚了,只有讲了,思路才能更清楚,你能讲的出来,说明你已经理解的非常透彻了。详细设计文档,系分宣讲,需求文档无非都是媒介,终极目的是作为开发人员,你理解了多少。

 

   今天你讲道理了吗?

 

 

13
6
分享到:
评论
12 楼 iamlotus 2010-03-02  
同意楼主的观点
Developer和BA/QA的交流总是应该尽量的多,事先交流远远比事后交流的效率高。无论文档多么详细,保证Developer能够尽量准确理解需求的唯一方式就是反复的,主动的交流。因为只有在面对面交流的过程中,Developer才会有动力去问一个又一个的为什么,“为什么用户需要这个功能?”,“为什么你想用这种方式实现这个功能?”,“为什么不试试用那种方式实现呢?”。
Developer理解需求就是去询问这样一个个为什么的过程,如果只看文档的话,由于沟通成本的上升,本来会问十个“为什么”的过程可能只会问道一到两个,而这就会带来理解的差异,造成返工。众所周知,一个返工需要前面问十个“为什么”的时间。PPT也好,DOC也好,UML也好,都只是方便交流的工具罢了。按照敏捷的要求来说,只要能够表达清楚,就该怎么简单怎么来。
当然,这种反复的过程对Developer的沟通能力和主动性要求也比较高。我认为这点上Developer大致能分三种:比较好的Developer可以在需求细化阶段和BA进行深入讨论,理解业务背景,知道实际上作出来一个什么东西才能满足BA的去要。这样的Developer在设计时甚至可以指出文档中的一些错误。一般的Developer在文档出来后会反复仔细的阅读文档,通过和BA的沟通尽量保证自己清楚BA脑海里的成品是个什么东西。比较差的Developer则是一边作一边按照自己的理解去解释文档,和BA的交流很少,最后自然bug也比较多。
说到底,只有好的Developer才能作出好的系统,那些认为只要有了流程(无论是ISO还是Agile)随便什么人都能搞出好系统的想法流毒太深了。有这个空不如多和程序员谈谈心,告诉他们主动沟通能给自己带来什么好处(能力上和待遇上),这才是王道。
11 楼 gurudk 2010-02-28  
raojl 写道
写文档,反馈,任何事情都有个条件,当你的任务压的慢慢,你还有时间考虑这个,还有时间
考虑优化,国内的环境就这样!


大家都觉得这个没时间,那个没时间,但最后总是有时间返工!

你的领导被事实愚弄了,你被他愚弄了,最后大家都被愚弄了。
10 楼 raojl 2010-02-26  
写文档,反馈,任何事情都有个条件,当你的任务压的慢慢,你还有时间考虑这个,还有时间
考虑优化,国内的环境就这样!
9 楼 gurudk 2010-02-26  

我觉得该说的时候还是要说,但说之前,我们自己要比较清晰,在脑子里过过。

现在社会化大分工,每个人都是紧密联系的,比起老子那个时代,人与人直接需要沟通的需求更迫切。

老子云:“多言数穷,不如守中”。苏格拉底认为,道理就是通过“对话”,通过“辩论”,通过刨根问底才越来越明确的。
8 楼 gurudk 2010-02-26  
cuixuxucui 写道
讲*道*理之后,用简洁的文字描述下来备忘,并让别人也看得懂,这才是有意义的文档


可以使用PPT,思维导图(脑图),如果要分享,ppt加工一下就可以了。
7 楼 cuixuxucui 2010-02-26  
讲*道*理之后,用简洁的文字描述下来备忘,并让别人也看得懂,这才是有意义的文档
6 楼 咖啡仔 2010-02-24  
gurudk 写道
咖啡仔 写道
一直我都是听的居多,很少有"讲"的
现在我公司的都是有了需求后,让美工设计好页面,直接编码
大部分都没有所谓的文档的。
这样很不好,开始时我都会有写一些文档的。后来我都慢慢少写了。:(


讲的前提是设计思路理清楚了,时间充裕,可以做一些详细设计,对自己系统思考是一个锻炼,但格式可以不限,哪怕是ppt,草图都可以。写那种详细设计的八股文档很让人崩溃。

嗯!记得在学校时老是要写。又不懂格式,就上网搜索,再慢慢修改为自己所做项目的设计
不过,还是用文档把设计思路记下来比较好,毕竟人脑是很快就会忘记的呢!
5 楼 java_fxj 2010-02-23  
同意!慢慢学会讲...
4 楼 gurudk 2010-02-22  
咖啡仔 写道
一直我都是听的居多,很少有"讲"的
现在我公司的都是有了需求后,让美工设计好页面,直接编码
大部分都没有所谓的文档的。
这样很不好,开始时我都会有写一些文档的。后来我都慢慢少写了。:(


讲的前提是设计思路理清楚了,时间充裕,可以做一些详细设计,对自己系统思考是一个锻炼,但格式可以不限,哪怕是ppt,草图都可以。写那种详细设计的八股文档很让人崩溃。
3 楼 咖啡仔 2010-02-22  
一直我都是听的居多,很少有"讲"的
现在我公司的都是有了需求后,让美工设计好页面,直接编码
大部分都没有所谓的文档的。
这样很不好,开始时我都会有写一些文档的。后来我都慢慢少写了。:(
2 楼 honlin 2010-02-22  
博主写的非常好,佩服佩服。抛开C,我们从R到D到P一直都在吵架,P出问题了就指责开发人员的水平有问题,或者理解有问题。这个问题一直困惑着我,不知道该怎样表达,一直建议公司重视流程的改进,但领导们都来都不管流程,就是坚持瀑布模型+ISO 9000一条道走到黑,烧了多少钱领导们都没意识到。
1 楼 funcreal 2010-02-22  
严重同意!
积极地反馈不仅仅是技术范畴的事,更多是道德范畴的事情。缺乏这一素质的人很难有所发展。

相关推荐

    软件工程思想--讲述“软件开发”和“做程序员”的道理

    《 软 件 工 程 思 想 》 讲 述 “ 软 件 开 发 ” 和 “ 做 程 序 员 ” 的 道 理 , 视 野 独 特 , 构思新颖, 内容风趣, 不落窠臼, 令人耳目一新。堪称难得, 以至回味无穷。

    软件工程思想 程序员软件工程思想

    《 软 件 工 程 思 想 》 讲 述 “ 软 件 开 发 ” 和 “ 做 程 序 员 ” 的 道 理 , 视 野 独 特 , 构 思 新 颖 , 内 容 风 趣 , 不 落 窠 臼 , 令 人 耳 目 一 新 。 堪 称 难 得 , 以 至 回 味 无 穷 。

    IDC网络安全.pdf

    网络安全从 其本质上来讲就是网络上的信息安全。一般来说我们可以分成 以下六大块:网络的物理安全、网络拓扑结构安全、网络系统 安全、应用系统安全和网络管理的安全等。 一,网络的物理安全 网络的物理安全是整个...

    矩阵控制器设计方案.doc

    矩阵控制器设计方案 目录 一、总体功能 4 1....中心处理模块接收到矩阵模块的信息,并进行类型分析,如果是反馈给 键盘的信息,则讲给键盘处理,如果是需要反馈给中心服务器的则交给中心 服务器模块处理,如果

    电子商务设计师真题06年和07年

    述和到课如考6程下试个结:成单束 绩元后均构进由成行每,期门每末课个考程单试的元,主结其讲束成教后绩师会作上进为传行这给一门成次课绩测程管试的理,考系其试统成成。绩绩 作。 文课选件修程来了所3.确这包 在...

    学生信息管理系统java课程设计报告.doc

    页面生成器则负责记录管理员的行为动态生成管 理员个性化Web页面。二者通过数据库服务器和Web服务器连接。 1. 系统描述: 1、设计目的 本程序用于用户对少量学生信息进行简单的管理,本程序针对于对安全系数要求不高...

    大数据口号.docx

    53、数典论据,求理讲真。 54、定位新理念,高效心体验。 55、心中有疑问,就找云平台。 56、数据天下,云上平台。 57、没有搜不到的数据。 58、智能安全,搜您所想。 59、数据时代,成就商业未来。 60、帮您挖掘...

    智能手机作文400字.pdf

    最后讲⼀讲它对⼈体的危害,⼤家都知道,电⼦产品都有辐射,⼿机⾃然也不例外。再说了,⼉童头⾻防辐射的能⼒也没 有成年⼈那么强,辐射⾃然也容易射进⼤脑内部。从⽽引发记忆⼒下降、痴呆等种种疑难杂症。朋友们,...

    计算机局域网网络安全建设的探讨.doc

    2.3实施制度化的文件信息备份管理,预防不可逆损失 一般来讲,各类网络攻击或者是病毒侵袭,均需要首先找到网络系统中的落脚点方能实 现攻击窃取目标。而计算机系统漏洞、局域网络后门则为攻击者提供了落脚点,成为...

    大数据专题.doc

    编者按随着技术创新和行业需求的推动,大数据产业和市场已步入快车道。我国"十二五 "规划以将大数据作为建设重点,各级政府也着手建立大数据库,进入了大数据管理时代 。目前,我国已成为全球IT巨头布局大数据战略...

    大数据时代的思考.doc

    作者继而用"数据、技术与思维"三个维度阐述在大数据时代下人们的机遇,数 据是资源,是需要制造、管理和整理的,技术是发掘的手段,而思维是前面讲的三个数 据特征对政治、经济和生活的影响,很好!这是一个不错的...

    BI与大数据区别.docx

    第二、从思维方式角度 大数据对于传统BI,既有继承,也有发展,从"道"的角度讲,BI与大数据区别在于前者更倾向于决策,对事实描述更多是基于群体共性,帮助决策者掌握宏观统计趋势,适合经营运营指标支撑类问题,...

    HUSKY机培训资料全.doc

    培训资料 培训目的 通过对原料及注塑成型的基本原理的初步介绍,使大家进一步熟悉原材料的基本特性和 注塑成型的基本原理、设备的性能、安全生产以及最基本的参数的调整、对简单缺陷处 理方法、以控制质量,使我们...

    《诚实守信》学校诚信教育主题班会PPT课件

    小牧童很得意,感到很好玩,于是就有了第二次、第三次……, 久而久之村民们知道是小牧童故意制造的,就都不去理他啦。结果有一天狼真的来了,他拼命地叫喊,村民们却没有一个来,没有人相信他的话了,他被狼吃掉了。...

    Delphi 屏 幕 拷 贝 程 序

    输 出 功 能, 这 使 得 我 们 可 以 通 过 他 以 更 直 观 的 方 式 和Windows 的 屏 幕 打 交 道, 而 不 必 关 心 令 人 头 疼 的Windows API 函 数。 下 面 的 一 小 段 程 序 就 可 以 实 现 整 个 屏 幕 的 图...

    基于AT89S52 单片的频率计

    理,所以应该首先对待测信号进行放大、降压、与整形等一系列处理。 (2)分频电路 将处理过的信号4 分频,这样可以将频率计的测量范围扩大4 倍。 (3)逻辑控制 控制是利用计数还是即时检测待测信号的频率。 (4)脉冲计数...

Global site tag (gtag.js) - Google Analytics