看牙与IT项目
周末为了一颗牙第五次去牙科诊所,得到的消息是:还需要观察至少2周才能做牙冠,同时发现了较深的牙结石需要做刮治,刮治疗需要2次。因此至少要再去医院3次。从去年的六月体检发现这颗牙的问题,目前最乐观估计也要四月份才能完成治疗。期间种种,与我们每天都要接触的IT项目何其的相似。下面就来做一下类比,各位看官瞧瞧是不是这个理儿。btw,我是个做测试的,因此可能从测试的角度去看的时候多一些。
1.缺陷修复成本会随着时间推移越来越大。六月份体检的时候医生提醒我那颗牙有个牙洞,赶紧去补一下。由于工作紧张,又犯懒,直到十月份开始觉得很疼才去第一次看。因为好医院难约,就随便找了个诊所。当时随便补了一下,症状减轻了,以为没事儿了,后来又持续开始疼痛。到了11月份,才约到了一个好医院,第二次看牙。那次重新清理了一下原来补的地方,又补了一下。但是医生告诉我,可能已经慢性牙髓炎了,补好了得观察一下。观察半月,疼痛持续。12月份第三次到了医院,这次只能把神经杀掉了,同时医生建议做一个牙冠。由于期间感觉牙还是有些疼,但工作特别忙,就忍了一个月没去,后来觉得不能再拖了,大年初七第四次去了医院,医生做了检查,发现少给我杀了一个压根(我的那个牙根属于非常难找的类型),结果又做了一次根管治疗,并约了3星期后做牙冠。直到本周第五次去,发现我有较深的结石,需要做刮质,而刮质需要分两次做,做冠需要二次(第一次做冠可以和第二次刮治疗一起做),同时,会诊发现隐裂,牙有一定几率保不住。就这样,小小的一个蛀牙,变成大事儿了,前前后后要花一万多。作为一个测试人,整天都在跟人家宣传预防缺陷比发现缺陷更重要,自己却乌龙了,很是丢人(当然医生也有点耽误我)。但这也从非IT角度证明了“缺陷修复成本会随着时间推移越来越大”。
2.同行评审很重要,必要的评审一定要进行。第五次去牙科,也许我的主治大夫有点心虚,觉得自己hold不住了,叫来了几个专家做会诊。结果发现了3个问题:1牙龈深处有结石,做牙冠前不好好处理,牙龈会回退;2牙齿中远出有隐裂,这就需要备牙的时候请个技术高明的大夫;3.敲击仍有轻度叩痛,需要再观察至少两个星期,等症状消失后再进行下一步。IT项目中,一些关键评审很重要,不同领域的专家凑在一起很容易发现问题。如需求评审,测试人员会更关注业务完整性和连贯性;开发人员会更关注需求实现难度,和是否可以根据需求开始做设计;运维人员会更关注非功能需求,如可用性,可维护性;项目经理则更关注进度和资源;一次成功的评审能够在适时的时候发现很多问题或者风险,有效的保证项目朝着正确方向发展。至于我这次的看牙,如果会诊(评审)在第三次做,根管治疗不会做2次,牙可能不会产生隐裂(无法确定是否第二次根管治疗弄裂了我的牙),洗牙和刮质可以合并。
3.外包管理。其实在第四次和第五次看牙期间,医生说我有牙结石,建议我去洗牙。但是好医院有个问题,就是资源紧张,洗牙这种低级活儿要做得排到一个月以后了,他们建议我到外面诊所洗一下。我就找了个外边的诊所做了洗牙。结果到了第五次看牙,识别了有深层牙结石,洗牙没有冲洗干净,需要刮治。刮治其实可以和洗牙一起做的。这又耽误了时间。类比IT,这其实是一个子项目外包。这次外包出现了两个问题:1外包需求不正确,需要洗牙和刮质才能除牙结石,发包方的需求只提了洗牙。2.接包方没有非常好的识别需求:洗牙的表象下面其实是要把牙结石去掉。
4.Definition of Done。第一次补牙没有补好是后续问题严重化的一个主要因素。补完了以后牙持续疼(IT项目中这叫生产缺陷泄露)才有了后面的故事。什么是补好了一颗牙呢?我现在也说不清楚,我没有专业知识,现在我只知道,在补以前要做很好的清理工作,很显然第一次这项工作做得不到位(已经没有证据不能追究了)。在敏捷开发过程中,有一个名词经常被提及就是DOD。一项工作什么是做完了,其实要有一个明确的检验标准。
5.争取你的权利。第五次识别出牙深度结石仍然建议我去外边诊所做。我拿出了工作时候的谈判态度,列举了他们的问题,并表示出了强硬。因为这样,主任医师感到他们做法是有些问题,亲自给我做了结石刮治(他平时可不做这个)。IT项目中,各个角色的人员也要争取自己的权利(当然三观要正)。每个人争取正当权利其实保证了项目有序进行,项目经理要向老板争取足够的资源来完成他的工作;例如测试人员要争取需求质量、被测物提交时候需要保证一定质量;配置管理员要争取开发人员和文档人员规范的checkin提交物等等等等。
6.项目管理是个技术活。对于这次治牙,其实我自己是项目经理。雇佣医生,以最小的代价,尽快让我的牙齿恢复健康就是这个项目的产出,很显然我没有做好它。回想有问题的地方,有如下几点:没有认识到第1点并迅速采取行动,没有推动第2点在该发生的时候发生。没有检测第3点(没有专业判断能力),对第4点也没有很好的识别(缺乏专业能力,开始又没有找到好团队),第5点也做得不好(太相信团队/医生了)。但是做项目的时候,这些意识我都还是很强的,生活中却做得很不好。人们总说生活中很多技巧可以用到工作中,其实工作中有很多技巧也是能够用到生活中来的。今后以此为戒。
看牙与IT项目的更多相关文章
- 因为之前完全没有接触过Spring,所以准备先把spring实战看完再落实项目
因为之前完全没有接触过Spring,所以准备先把spring实战看完再落实项目
- 开源利器分享:BitBar 坐看今天你的项目涨了多少 star
今天开头我想叨叨几句,我个人最近的感受.在这个信息爆炸,互联网的时代里.我的周遭总是充斥者着各种让人能产生焦虑的信息, 我不知道有没有小伙伴和我一样,看到各种神通广大.游戏人生的大侠,低头看看自己当前 ...
- MVC项目实践,在三层架构下实现SportsStore,从类图看三层架构
在"MVC项目实践,在三层架构下实现SportsStore-02,DbSession层.BLL层"一文的评论中,博友浪花一朵朵建议用类图来理解本项目的三层架构.于是就有了本篇: I ...
- 通过go-ethereum源码看如何管理项目
今天抽空看了下go-ethereum项目的源码 ( https://github.com/ethereum/go-ethereum ),其中 ethereum 是github下的一个帐号.go-eth ...
- 从一个多项目Web工程看Eclipse如何导入Gradle项目
这里再次说一下为什么我们需要熟悉Gradle构建工具,主要原因就是很多开源项目现在都在改用Gradle作为构建工具.一部分的github上的示例代码也在用Gradle构建,如果还是只能用maven,那 ...
- Mongo基础使用,以及在Express项目中使用Mongoose
MongoDB的基本使用 MongoDB特点: 使用BSON存储数据 支持相对丰富的查询操作(相对其他nosql数据库) 支持索引 副本集(支持多个实例/多个服务器运行同个数据库) 分片(数据库水平扩 ...
- Jenkins中构建Testcomplete项目的方法介绍
Jenkins的部署在上一篇随笔中已经和大家介绍了,下面我们介绍一下再Jenkins中构建testcomplete项目.我这里使用的是Testcomplete11,下面详细介绍一下构建步骤. 1.Je ...
- Java进击C#——项目开发环境
本章简言 上一章我们了解一下开发环境,知道了什么去新建一个项目工程.却并没有去项目工程进行介绍.可是之后我们会常常跟项目工程打交道.所以这章笔者就对项程工程的常用的一些功能进行讲解.当然说全面那是不可 ...
- [SL] Silverlight + WCF Demo项目
I:项目描述:利用 Silverlight+WCF 技术,模拟资源管理器(如图1)功能,通过地址栏输入本地文件夹路径,然后将解析出来的该目录下所有文件(夹)存储到数据库中,然后再加载到界面上显示出来: ...
随机推荐
- 学习HTML5必读之《HTML5设计原理》
引子:很久前看过的一遍受益匪浅的文章,今天再次转过来,希望对学习HTML5的朋友有所帮助. 今天我想跟大家谈一谈HTML5的设计.主要分两个方面:一方面,当然了,就是HTML5.我可以站在这儿只讲HT ...
- nyoj 203 三国志 dijkstra+01背包
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=203 思路:先求点0到每个点的最短距离,dijkstra算法,然后就是01背包了 我奇怪的 ...
- 解决ubuntu sudo not found command的问题
将/etc/sudoers 中Defaults env_reset改成Defaults !env_reset取消掉对PATH变量的重置, 然后在/etc/bash.bashrc中最后添加alias s ...
- 记一次hadoop datanode进程问题分析
症状:datanode进程还在,但是在web ui接口发现该节点已经被置为dead节点.监测datanode进程日志,开始时一直狂刷很忙,后来停止刷新日志. 分析datanode进程日志,发现如下一些 ...
- CUDA入门1
1GPUs can handle thousands of concurrent threads. 2The pieces of code running on the gpu are calle ...
- NYOJ--1237最大岛屿
最大岛屿 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 神秘的海洋,惊险的探险之路,打捞海底宝藏,激烈的海战,海盗劫富等等.加勒比海盗,你知道吧?杰克船长驾驶着自己的的 ...
- POJ 1556 The Doors --几何,最短路
题意: 给一个正方形,从左边界的中点走到右边界的中点,中间有一些墙,问最短的距离是多少. 解法: 将起点,终点和所有墙的接触到空地的点存下来,然后两两之间如果没有线段(墙)阻隔,就建边,最后跑一个最短 ...
- 2014 Super Training #4 E Paint the Grid Reloaded --联通块缩点+BFS
原题: ZOJ 3781 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3781 题意: 给一个n*m的X,O构成的格子,对 ...
- Linux搭建python环境中cx_Oracle模块安装遇到的问题与解决方法
安装或使用cx_Oracle时,需要用到Oracel的链接库,如libclntsh.so.11.1,否则会有各种各样的错误信息. 安装Oracle Instant Client就可得到这个链接库,避免 ...
- maven总结3
POM文件 maven版本:apache-maven-3.1.1 1.<modelVersion>4.0.0</modelVersion> pom模型的版本,对于maven2 ...