文章分类 -  小型团队快速开发方法研究

摘要:佛山项目开发模式的探索问题:1. 任务的粒度太大,完成周期会很长(超过一星期),导致PM无法知道成员的进度。2. 成员报告任务完成时,PM也不清楚任务是否合格(代码是否清晰、功能是否完备、操作是否简便)。Scrum的解决办法:按照Scrum的方法,是把模块切分为能够在一天之内完成的任务(小粒度),这样就能够在每日晨会上发现滞后的任务。Scrum的评估是团队全体参与,由ProductOwner在Sprint会议上解答所有的业务问题。任务执行的问题:Scrum的方法是有条件的,那就是团队的开发水平处在同一标准线上,否则一个任务的完成时间因人而异,达不到预想的效果。如果任务是纯粹的业务功能还好办,很 阅读全文
posted @ 2011-01-19 18:39 深圳大漠 阅读(10) 评论(0) 推荐(0)
摘要:代码进度统计(二)本次统计以HMIS为蓝本。生产力8个月,160个模块,每个月20个模块:5人:每周4个模块;6人:每周3.33个模块;5.5人:每周3.64个模块。生产率人员流动性大,稳定人员是5人。这是在经常加班的情况下完成的。14天扣除周末,只有12天,但每天的加班量算上,其实也是14天。最好的情况下是5个人每周4个模块,每个人每周(7天)0.8个模块。评价总体说来效率有点低,每个人5天(一... 阅读全文
posted @ 2010-08-26 16:27 深圳大漠 阅读(131) 评论(0) 推荐(0)
摘要:交叉测试我原来的测试方案是由项目经理一个人写自动化测试代码(白盒测试),这种方案虽然功效很大,但PM的压力太大,可能出现迭代到期仍然无法完成测试代码的情况。交给其他队员却不放心,毕竟除了测试,自动化测试还附加了代码重构(提取公共类库)的任务。交叉测试的过程每个迭代阶段完成之后,团队成员互相检查别人的制品,并提交测试报表。制品包括系统模型、系统原型、代码(注释、代码风格)、数据表等。交叉测试的优点l... 阅读全文
posted @ 2010-08-03 22:10 深圳大漠 阅读(1411) 评论(0) 推荐(0)
摘要:一、需求矛盾 根据CHAO的权威统计,虽然自"软件危机"提出以来,软件工程方法得到了长足的发展与进步,但在去年的软件项目成功率仍然不足30%,绝大多数的软件项目仍然超进度、超成本。而在这些不成功的项目中,由于需求不清晰、需求不完整等方面的因素,占到了60%左右。 下面的这幅漫画虽然不乏夸张,但却是能够激起我们的深思: 根据笔者多年来从事软件需求捕获、分析工作的实践经验,认为造成这一现象的根本原因在... 阅读全文
posted @ 2010-06-18 19:53 深圳大漠 阅读(413) 评论(0) 推荐(0)
摘要:需求开发过程需求开发(RequirementDevelopment)包括了从需求调研到需求文档交付的整个过程。1需求调研需求调研是需求开发的第一步。调研本身非常重要,它是需求开发的源头。但不幸的是,调研没有模式可言,也没有按部就班的指导,只能依靠调研人员本身的沟通技巧和行业经验。沟通技巧越高明的调研人员越能提高需求的准确性和完整性。需求不是凭空得来的,客户也不会把需求按1、2、3…&#... 阅读全文
posted @ 2010-06-10 11:02 深圳大漠 阅读(877) 评论(0) 推荐(0)
摘要:TDD VS UDDTDD,测试驱动开发TDD是敏捷开发(特别是XP)提倡的。TDD不是以测试为目的,而是以客户需求为目的,这从测试优先(Test-First)原则就可以看出来。测试比实现更早,这意味着需要定义出实现的接口。UDD,用例驱动开发UDD是RUP和ICONIX提倡的。从这方面来看,TDD和UDD并不冲突,它们完全可以互相兼容。我们用用例定义出需求,然后用测试确定需求接口,最后再编码实现... 阅读全文
posted @ 2010-04-26 10:38 深圳大漠 阅读(513) 评论(0) 推荐(0)
摘要:系统分析过程前言拥有持续的、跨不同领域的技能、知识和经验构成了系统架构的职责。系统的调研、分析、设计、架构、开发、部署这些活动,很大程度上是经验的总结。系统分析过程1、与涉众(Stakeholder)交流,记录他们的问题域。问题域以FDD模板(Feature-Driven Development)的形式记录。这一步是调研的开始,交流有许多技巧,也有一些规范化的模式,请参考《大象UML》。2、画出泳... 阅读全文
posted @ 2010-04-21 18:01 深圳大漠 阅读(692) 评论(0) 推荐(0)
摘要:数据驱动开发—— 对项目开发的总结和反思1. 前言本文是对以往的开发模式做一个总结,指出了其中的优点和缺点,并反思了其中的弊端,提出了一些解决方法。2. 需求调研2.1.过程用VISIO画出系统职能图,明确系统大流程,然后开始写客户需求文档。注意,是“客户需求文档”不是“需求文档”,这是给客户看的,所以不要用专业的编程术语,不... 阅读全文
posted @ 2010-04-07 13:41 深圳大漠 阅读(3754) 评论(0) 推荐(1)
摘要:快速迭代与原型开发l有了快速迭代之后,是否还需要原型开发?原型开发的意义在于,我们能够以一种快速简便的方式,在最短的时间内让客户看到系统的雏形。从这一点看来,原型开发其实也是快速开发的一种实践,它与快速迭代的目的是一致的。l那么如果有了短时间的快速迭代(通常是半个月,甚至一周),我们还需要做系统原型吗?如果某一个模块的业务极其复杂,不能在短时间(超过一次正常迭代的时间)内完成粗胚,那么我还是建议先做原型。现在我们得到了做原型的条件:是否做原型的关键是模块的业务是否复杂。l那么如何判断这一个模块的业务是复杂的?通常一个业务复杂的模块,要么它的界面极复杂,要么是流程非常长,甚至两者兼而有之。对于有 阅读全文
posted @ 2010-04-07 13:39 深圳大漠 阅读(6064) 评论(0) 推荐(0)
摘要:本文是一些零碎的想法,不成体系,也不能保证是正确的。敏捷的一个重要方法是迭代,可以这么说:迭代是敏捷区别于瀑布最显要的方法。迭代的作用是什么?迭代的作用是:用可运行的系统代替中间产出物(文档),让开发人员把精力集中到有效的工作上(以交付最终产品为目标),而不是浪费在无效的中间产出物上。迭代的本质是什么?迭代的本质是:用一种高效的方法代替低效的管理,减少了时间成本的浪费。 阅读全文
posted @ 2009-11-26 17:30 深圳大漠 阅读(1264) 评论(0) 推荐(0)
摘要:本文摘自JavaEye 论坛的Robbin的一份帖子 做设计的步骤如下: 分析软件需求,以用户的角度来使用软件,找出发生的scenario(场景),抽象成为一个一个Use Case,分析出Use Case之间的关系,这一步是非常重要的,这一步做好了,设计就成功了一半。Use Case的抽象有一些可以遵循的原则,这里不详细谈。 然后用语言描述每一个Use Case,描述用户使用一个Use Case发... 阅读全文
posted @ 2009-09-10 00:28 深圳大漠 阅读(206) 评论(0) 推荐(0)