随笔分类 -  敏捷开发技术

敏捷开发技术
摘要:传说中的结对编程,大致结构是两个人共用一台电脑,一个开发,一个测试,以随时评审来抵消返工时间损失。 传说归传说,谁也没有见过。问题出在哪里?有两种主要原因。 一是来自高层的,高层感觉两个人只有一个人干活,实在是有点浪费。“评审抵消返工时间”虚无缥缈,但每天只有一个人干活却是现实情况。 二是来自基层的,两人若有高低,高手肯定觉得还不如我一个人干的快;两人若旗鼓相当,难免产生争执。 其实在我们身边一直有一种方法很像结对编程:“师徒制度”,就是每个新人来到公司,都指派一个师傅带着,在技术与业务方面提供指导。他们既不用 一台电脑,也不是老死不相往来,这其实就是一种“松散”的结对编程。只不过多数... 阅读全文
posted @ 2012-03-27 10:32 欢喜王子 阅读(183) 评论(0) 推荐(0)
摘要:新人其实很少偷懒,因为一方面正处于入门学习的高峰期,另一方面工作时间不长,需要得到企业和团队的认可。可为何他们工作总是不得力呢? 新人的真正问题在于无心办错事和好心办错事。 无心办错事包括没学过某种好的方法、不知道企业已经有某些可用代码或库、不懂业务等种种问题。 好心办错事包括想做一个比领导想想的更好的功能、过度思考了可复用性可维护性等。 这两个问题笔者都经历过(作为新人和老人),“避免”是最好的方法,而不是事后改正,这就需要在设计阶段和计划阶段从技术、管理两个方面来提前预防。 技术:轻量级设计 如果要把一个任务分配给一个“不放心的人”,有两种办法保证成功:师傅把设计做出来交给徒弟... 阅读全文
posted @ 2012-03-27 10:32 欢喜王子 阅读(234) 评论(0) 推荐(0)
摘要:团队中常见的一种情况计划、估算、设计的时候大家还在一起,但编程的时候就会分开。分开看似是安全的,但是却充满隐患。 2001年,一位招聘考试前三名(一共120员工)的程序员的两个月的成果被彻底放弃重写,原因是里边包含3000多个常数,而且很难修改(码 流参数),重写的人座位距离他只有4米,重写也只花费了2周;2002年,一位月薪7000(那时候北京房价才3000多)的程序员编写了一个月的 4000多行代码,在一个下午被重写为50多行,座位距离他只有5米的项目经理疑惑加惊讶地问:“你真的没学过c++ template?”。 这就是团队的距离,即使是高薪聘请来的程序员也难免犯错。难道我们只能避免.. 阅读全文
posted @ 2012-03-27 10:31 欢喜王子 阅读(237) 评论(0) 推荐(0)
摘要:估算是经久不衰的管理话题,大致分为两种流派。 第一种是领导指派,领导说这是10天的活,就必须当是10天的活来干,如果干不完,可以用加班、损失质量、功能缩水等各种方法曲线救场。另一个变种是大家自己估算,但是交给领导审批;领导审批其实就是砍一半的过程,还好大家之前就已经加了一倍,所以不怕。 第二种是自我管理派(偏敏捷),就是由具体开发的人员自己说开发工作量,领导和他人不干预。尽管“自组织”了,但是领导深以为这种方法留下了偷懒的种子,而队员也觉得某人的估算很不靠谱(太长或太短),到底怎么办呢?共同估算吧。 基本概念 假设现在是一个计划会上,PO(产品经理,策划组长,项目经理,某销售……)刚刚... 阅读全文
posted @ 2012-03-27 10:31 欢喜王子 阅读(223) 评论(0) 推荐(0)
摘要:松结对编程是小型团队的实践,大约运行在1个师傅+1~3个徒弟的尺度上,当面临更大尺度的时候,就需要大型团队模型。这里推荐139团队模型,因为它不但可以让松结对编程运转顺利,还解决了大团队沟通、绩效考核、师傅的出路等问题。 139团队的整体情况相当复杂,将另有系列博文描述,这里只描述与“松结对编程”相关的内容,以保证本系列博文的完整性。 基本概念 139团队就是1个项目经理,3个师傅,9个徒弟的简称,当然实际上未必正好凑够13个人,也未必正好每个师傅都有3个徒弟。 在第一篇里边已经提到过三个层级的工作关系,下面是一些深入的剖析。 绩效考核 绩效考核历来是软件业最头痛的问题,按代码行... 阅读全文
posted @ 2012-03-27 10:30 欢喜王子 阅读(228) 评论(0) 推荐(0)
摘要:松结对和紧结对不一样,两个人不是总坐在一起随时发现问题解决问题,而是很短时间地坐在一起。其中在后检查点发生的主要事情有两个:一是看结果是否符合需求(做什么),而是看代码是否存在问题(怎么做),后者就是代码检查。 代码检查(也称代码审查Code Inspection)是一种由来已久但是很神秘的东西,最初引入是在一些生命攸关、重大财产相关的软件开发中,典型的就是SSOS(美国航天飞机的软 件),其每段代码都交由6个人审阅,方可入库。成果就是在1989年之前(之后笔者没有数据),SSOS在太空中失效次数只有一次。笔者亲身参与的代码审 查活动包括某数字电视CA系统的代码审查(25个程序员只有1个测试. 阅读全文
posted @ 2012-03-27 10:30 欢喜王子 阅读(219) 评论(0) 推荐(0)
摘要:刚刚参加完MPD 2011深圳站,在演讲中间及后来媒体采访,被问到了一些问题,也给出了答案,这里做一总结。 我自问自答到一半,才发现这里边的很多问题的答案,都用到了火星人谚语系列之一:有问题的地方无答案、火星人谚语系列之三:正确的答案一定简单。如果您觉得答案和自己的情况不完全相符,请用火星人谚语系列之二:问问题的人负责找答案。 另外多数答案在本系列1~6中有,只是比较分散,不太容易意识到是答案。 人员与结构 在团队中使用层级结构,是否阻碍了个体与外界的沟通? 极少有底层程序员或新手能和产品经理做深入的沟通的,所以中间放上师傅这一层,让其代为问问题,徒弟旁听,不但不会阻碍,反而会促进... 阅读全文
posted @ 2012-03-27 10:29 欢喜王子 阅读(195) 评论(0) 推荐(0)
摘要:敏捷个人网址:http://www.cnblogs.com/zhoujg/archive/2010/02/28/1675183.html根据主题整理出了一些电子书,以下为现在发布的在线电子书列表,希望能够对你有所帮助!敏捷个人-认识自我,管理自我.pdf(适合所有期望自我成长、活出自己最好的生活的个人)个人成长体系和软技能培训课程 升级版本v0.5 全书共1003页 快乐、高效、平衡,简单生活,平衡成长! 软件=业务+架构+流程+组织.ppt (适合项目管理人员、架构师) 10 年的技术工作,软件这个词对我来说一点都不陌生,但是当我问自己如何理解软件的?我却不知道如何回答。软件=业务+架构.. 阅读全文
posted @ 2012-03-27 10:28 欢喜王子 阅读(246) 评论(0) 推荐(1)
摘要:学习网址:http://kb.cnblogs.com/page/107713/最近一段时间以来,很多人开始谈论敏捷开发、研究敏捷开发,那么究竟什么才是敏捷开发呢? 简单的说,敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测 试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。 敏捷开发是由一些业界专家针对一些企业现状提出了一些让软件开发团队具有快速工作、响应变化能力的价值观和原则,并于2001初成立了敏捷联盟。他们正在 通过亲身实. 阅读全文
posted @ 2012-03-27 10:28 欢喜王子 阅读(340) 评论(0) 推荐(0)