- 浏览: 488798 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
gapper:
多谢!!!
软件项目解决方案模板 -
lxyizy521:
感谢你无私的分享,正头疼文档的事情呢。
软件项目解决方案模板 -
flyisland:
不错的资料收集的心得,多谢分享!
如何从小工到专家——Dreyfus模型应用 -
a254124185:
Java编码规范及实践 -
clj2008tom:
LZ好久没更新了,呵呵
graphviz 在redhat as4 下的安装
做什么事都要讲道理,今天我说说软件开发中开发人员的”讲道理“。
开发人员写代码之前,一般都会做几件事:
编写详细设计文档 : 有些开发人员,或者公司要求写详细设计文档,用来对自己将要进行的开发工作做一个详细的设计。
参加系分,概要设计宣讲和评审 : 有时候,是没有详细设计的,直接听了系分宣讲,理解一下需求和系统实现的大概思路,就动工了。
仅仅理解需求 : 这种情况下,没有系分,设计文档,直接理解需求后,直接开始编码。
以上几种场景,都是很常见的。依不同组织,不同团队,不同的紧迫程度而不同。
设客户理解的软件为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太热了,拧回来,又太凉了,反复几次之后,终于水温合适了。
这就是负反馈回路,又叫平衡回路。
在这里,就需要开发人员和上游有多次反馈,不能只听不问,只听不讲,只讲而不做确认。
如果你刚开始程序员的工作,编码,你需要做的就是不断的听,问,讲。大多数开发人员听的多,问的少,讲的就更少了。 如果要在职业生涯更近一步,成为资深开发工程师,一定要学会讲,积极的讲。这道坎迟早要迈的,不仅要讲,而且要讲的简明扼要,要抓住关键,要让别人很快就能明白你的意图,你的设计,你的方案,你的问题等等。
这就是我说的讲道理,作为软件这条线上的蚂蚱,不仅仅是开发,其他角色也一样,一定要多讲。
从这个角度,讲道理可做如下解释:
“讲“,然后”道“就”理“清楚了,只有讲了,思路才能更清楚,你能讲的出来,说明你已经理解的非常透彻了。详细设计文档,系分宣讲,需求文档无非都是媒介,终极目的是作为开发人员,你理解了多少。
今天你讲道理了吗?
评论
Developer和BA/QA的交流总是应该尽量的多,事先交流远远比事后交流的效率高。无论文档多么详细,保证Developer能够尽量准确理解需求的唯一方式就是反复的,主动的交流。因为只有在面对面交流的过程中,Developer才会有动力去问一个又一个的为什么,“为什么用户需要这个功能?”,“为什么你想用这种方式实现这个功能?”,“为什么不试试用那种方式实现呢?”。
Developer理解需求就是去询问这样一个个为什么的过程,如果只看文档的话,由于沟通成本的上升,本来会问十个“为什么”的过程可能只会问道一到两个,而这就会带来理解的差异,造成返工。众所周知,一个返工需要前面问十个“为什么”的时间。PPT也好,DOC也好,UML也好,都只是方便交流的工具罢了。按照敏捷的要求来说,只要能够表达清楚,就该怎么简单怎么来。
当然,这种反复的过程对Developer的沟通能力和主动性要求也比较高。我认为这点上Developer大致能分三种:比较好的Developer可以在需求细化阶段和BA进行深入讨论,理解业务背景,知道实际上作出来一个什么东西才能满足BA的去要。这样的Developer在设计时甚至可以指出文档中的一些错误。一般的Developer在文档出来后会反复仔细的阅读文档,通过和BA的沟通尽量保证自己清楚BA脑海里的成品是个什么东西。比较差的Developer则是一边作一边按照自己的理解去解释文档,和BA的交流很少,最后自然bug也比较多。
说到底,只有好的Developer才能作出好的系统,那些认为只要有了流程(无论是ISO还是Agile)随便什么人都能搞出好系统的想法流毒太深了。有这个空不如多和程序员谈谈心,告诉他们主动沟通能给自己带来什么好处(能力上和待遇上),这才是王道。
考虑优化,国内的环境就这样!
大家都觉得这个没时间,那个没时间,但最后总是有时间返工!
你的领导被事实愚弄了,你被他愚弄了,最后大家都被愚弄了。
考虑优化,国内的环境就这样!
我觉得该说的时候还是要说,但说之前,我们自己要比较清晰,在脑子里过过。
现在社会化大分工,每个人都是紧密联系的,比起老子那个时代,人与人直接需要沟通的需求更迫切。
老子云:“多言数穷,不如守中”。苏格拉底认为,道理就是通过“对话”,通过“辩论”,通过刨根问底才越来越明确的。
可以使用PPT,思维导图(脑图),如果要分享,ppt加工一下就可以了。
现在我公司的都是有了需求后,让美工设计好页面,直接编码
大部分都没有所谓的文档的。
这样很不好,开始时我都会有写一些文档的。后来我都慢慢少写了。:(
讲的前提是设计思路理清楚了,时间充裕,可以做一些详细设计,对自己系统思考是一个锻炼,但格式可以不限,哪怕是ppt,草图都可以。写那种详细设计的八股文档很让人崩溃。
嗯!记得在学校时老是要写。又不懂格式,就上网搜索,再慢慢修改为自己所做项目的设计
不过,还是用文档把设计思路记下来比较好,毕竟人脑是很快就会忘记的呢!
现在我公司的都是有了需求后,让美工设计好页面,直接编码
大部分都没有所谓的文档的。
这样很不好,开始时我都会有写一些文档的。后来我都慢慢少写了。:(
讲的前提是设计思路理清楚了,时间充裕,可以做一些详细设计,对自己系统思考是一个锻炼,但格式可以不限,哪怕是ppt,草图都可以。写那种详细设计的八股文档很让人崩溃。
现在我公司的都是有了需求后,让美工设计好页面,直接编码
大部分都没有所谓的文档的。
这样很不好,开始时我都会有写一些文档的。后来我都慢慢少写了。:(
积极地反馈不仅仅是技术范畴的事,更多是道德范畴的事情。缺乏这一素质的人很难有所发展。
发表评论
-
Power of Thinking(1): 零基准思考
2010-04-12 02:11 2447《问题解决专家-策略性 ... -
看清与行动
2010-04-03 12:37 1215有人主张,看不清就不动,宁可呆在原地。 等待是最 ... -
蝴蝶效应与个人成长
2010-02-26 22:42 1231效应最初的解释是:“ ... -
岸•山•悟
2010-02-24 23:12 1050以前看amazon的原版书,很亲近,最近一段时间,对国学非常感 ... -
流程只是一个传说——敏捷方法论的理论基础
2010-02-06 16:05 2291我这里说的流程是传统 ... -
四两拨千斤
2010-02-06 11:42 0关于系统思考 -
最优化
2010-02-06 11:39 0硬系统思考,坐公交车的方法。 -
技能究竟是如何提高的?
2010-01-13 01:22 1416我爸爸学车,已经 ... -
软件需求的本质
2009-11-01 01:25 1375先看看什么是需求,人要吃饭,要喝水,要娱乐。同样,软件 ... -
这是怎么算出来的呢?
2009-07-18 15:39 1146今天看新闻,四川成都暴雨,有一系列数据,这些是怎么算出来的呢, ... -
几句值得玩味的话
2009-05-12 09:19 13481)魔鬼藏于细节之中 点评:程序中的漏洞太多了,特别是 ... -
Oracle收购Sun——未来在哪里?
2009-04-21 09:01 5327关于Sun,我去年年 ... -
QCon北京归来杂记(一)
2009-04-10 16:37 12721)Know why 先于 Know how。 ... -
软件开发中的简单法则
2009-03-22 15:52 2594读了前田约翰的《 ... -
象征对于团队的意义
2009-03-09 23:38 1960不知道多少人看 ... -
连接之美
2009-02-28 10:49 0连接之美 -
现状,目标,差距和行动指南
2009-02-24 12:36 1057这是一个进行改进的方法学,可以应用于任何改进。 ... -
程序员如何提高抽象能力
2009-02-18 13:40 5927之前写过一篇文章,讲合格程序员应该具备的能力,你 ... -
What about software design?
2009-02-16 01:10 1198What about software design? ... -
简单与复杂
2009-02-15 15:10 9871)简单的问题,简单的解决办法。 不 ...
相关推荐
1. **等差数列性质**:题目中的第一道选择题涉及等差数列的性质。等差数列中,若a1、a2、...、an是正项序列,且公差d≠0,那么相邻两项乘积的关系可以通过特殊数列验证。在这个例子中,通过构造数列1,2,3,4,5,6,7,8...
在2016高考数学专题复习中,第7讲主要探讨了函数图象的理新,这涉及到如何通过图形分析来解题。例如,第一道选择题考察了绝对值函数 y = |x|与幂函数 y = 的图象比较,通过分析两个函数的性质,可以确定绝对值函数的...
而【创新设计】(浙江专用)2014届高考数学总复习 第9篇 第9讲 直线与圆锥曲线限时训练 理,正是针对这一知识领域进行的一次深入的梳理和强化训练。 通过对直线与抛物线、椭圆、双曲线等圆锥曲线的交点问题的探究,...
【创新设计】(浙江专用)2014届高考数学总复习 第9篇 第5讲 椭圆限时训练 理这篇资料主要涵盖了高中数学中的椭圆知识点,特别是针对浙江省高考复习的内容。以下是相关知识点的详细说明: 1. **椭圆的标准方程**:...
【创新设计】(浙江专用)2014届高考数学总复习 第9篇 第3讲 圆的方程限时训练 理,这部分内容主要针对高中数学中的圆的方程进行复习和训练,旨在帮助学生巩固和提升相关知识点。圆的方程是平面解析几何中的重要部分...
4. 第四道选择题考察了两个元素插入原有序列的不同方式,分为相邻和不相邻两种情况,利用排列和组合的概念,可以计算出不同插法的总数。 填空题中,第五题是关于概率的问题,涉及到每个元件有断路或通路两种状态,...
本讲主要讲解向量的数量积的基本性质和计算方法。 向量的数量积定义为两个向量的模长乘积与它们夹角的余弦值的乘积,公式表示为:**a·b = |a| * |b| * cosθ**,其中**a**和**b**是两个向量,θ是它们之间的夹角,...
4. 这道题目涉及到了椭圆的离心率和直线与椭圆的交点问题。直线AP,AQ的斜率可以通过点斜式或斜截式得到,斜率之和与椭圆的参数有关,可以通过建立方程求解。 5. 直线PA,PB,PF1,PF2的斜率关系与椭圆的性质有关,...
在这个高考数学复习的第八讲中,主要涉及了正态分布的相关习题,旨在帮助学生理解和掌握正态分布的性质及其应用。 1. 题目要求解出随机变量ξ服从正态分布N(3,4),根据正态分布的对称性,P(ξ) = P(ξ>a+2),可以...
在第一道题目中,通过利用偶函数的性质——函数图像关于y轴对称,我们知道函数的积分在对称区间内的值会翻倍。因此,如果已知f(x)的某个区间上的积分是8,那么在相反区间(即乘以-6)上的积分将是原来的两倍,即16。...
1. **切线问题**:例如第一道选择题,通过求解函数的导数找出切线的斜率,进而构建切线方程,然后利用几何知识求解三角形面积。这要求学生能够快速准确地计算导数,并理解切线与函数图像的关系。 2. **比较函数值**...
【优化方案】(浙江专用)高三数学专题复习攻略 第一部分专题六第二讲主要涉及概率论与统计的相关知识,这是高中数学的重要组成部分,特别是在应对高考时,这部分内容常常出现在试卷中。下面将对文档中提到的知识点...
函数是描述两个集合之间关系的数学工具,这里的【标题】和【描述】指出,这是一份针对浙江省2014年高考数学复习的专项训练,专注于第二篇的第1讲——函数及其相关概念。 首先,我们要理解函数的基础概念,包括定义...
首先,我们来详细分析一下这道题目。题目描述了两个项目:甲项目和乙项目。其中,甲项目有一个盈利率线 y=0.5x,这表明了当投资额为x万元时,甲项目的预期盈利为0.5x万元。而乙项目则有一个最大亏损限制线 x=10-...
在2014年浙江省高考数学复习的大潮中,【创新设计】系列资料中的“直线、平面平行的判定及其性质限时训练 理”占据了举足轻重的地位。这份专题训练是为即将迎接高考的学生们量身定做,旨在通过系统的练习,让学生们...
【创新设计】2014届高考数学一轮总复习中的第四篇第三讲主要探讨的是三角函数的图象与性质,这是高中数学中的重要内容,尤其在准备高考时是必须掌握的知识点。这部分内容主要分为以下几个部分: 1. **三角函数的...
1. 对数不等式:题目中的第一道选择题涉及到对数函数的性质,比较对数表达式的大小。我们知道,对数函数的底数越大,其增长速度越慢。因此,当底数相同,真数越大时,对数的值越大。通过这个原理,可以判断出对数...
例如,在课件中出现的第一道选择题,学生需要计算在所有可能的排列组合中,“1314”这一特定顺序出现的概率。通过对排列组合规则的理解和应用,学生不仅能够计算出结果,还能通过这种训练增强对概念的掌握。 另一道...
1. 在第一道选择题中,题目考察了双曲线虚轴长与实轴长的关系。由题意知双曲线方程为 x^2/m - y^2 = 1,虚轴长是实轴长的两倍,所以 b^2 = 2a^2,从而得出 m = -1/a^2,解得 m = -4。 2. 第二题涉及双曲线的焦距和...
1. **函数定义域**:题目中第一道填空题涉及到函数的定义域,要求使得函数有意义的自变量x的取值范围。对于函数`f(x) = ln x +`,其定义域需满足`x > 0`,结合题目中的不等式,得出函数的定义域为`(0, 1]`。 2. **...