我的java历程

敏捷软件开发有感

敏捷软件开发有感

1.个体和交互胜过过程和工具
  一个优秀的团队成员未必是一个技术一流的程序员,可能是技术一般的程序员,但他能很好的与他人合作,沟通,合作,良好的沟通以及交互能力比单纯的编程更重要。
2.可以工作的软件胜过面面俱到的文档
  一个可以工作的软件需要具有文档,用文档可以传达系统的原理及结构,以及对系统及设计决策进行描述。但过多的文档也并不是一件好事,首先编制需要花大量的时间,保持各文档同步,文档与代码之间的同步更是一件难事,如果没有做到同步,那么会形成误导,后果将更严重。
  对于团队来说,需要编写和维护一份描述系统原理及结构的文档,描述系统原理,结构和设计原理。关于培训新员工,则将其与业务及软件均熟悉的老员工坐在一起,实时指导,并结合代码。
3.客户合作胜过合同谈判
  与客户紧密的结合在一起,短周期的向客户演示软件的运行情况。得到客户的反馈并及时跟进进行更改。
4.响应变化胜过遵循计划
  做短时间的详细计划,长时间的粗略计划,时间越长计划越粗略

 短周期,持续的交付能工作软件给客户,得到客户的反馈。
 以人为本,给成员自信,激励成员来沟建项目,信任每个人都成完成。
 以能够满足客户需求的数量来度量软件的进度。
 使团队成员保持高度集中的精力,饱满的精神,不要为了多做一点工作而借用明于的精力。
 最好的架构,需求,设计出自于团队。
 每隔一段时间,团队对更有效的工作进行反省,对组织方式,规则,关系等进行调整,达到更有效的工作方式



极限编程

1.客户做为团队开发人员,客户可以是和开发团队同一家公司的一组业务分析师或市场专家,可以是用户团体委派的用户代表。
2.每两周交付一次可以工作的软件,迭代计划(两周做一次,重复周期),发布计划,一次做大概三个月的发布计划,做一次长周期的交付。
3.验收测试
4.结对编程,两个人使用一台电脑,一个控制键盘,一个检查代码的错误及可以改进的地方,结对的关系每天改变一次,每个团队成员应该和其他所有团队成在一起工作过,这样能够促进业务知识及技术知识在团队中的快速传播,且能大大减少缺陷率。
5.测试驱动的开发,编写所有产品代码的目的都是为了使测试通过,测试用例和代码一起演化,基本是几分钟一次。结果,一个非常完整的测试用例集就和代码一起生成起来。
6.每个结对都有对任何一个模块的检出(check out)权,及修改权力,没有程序员对某一个特定的模块单独负责。
7.团队人员保持稳定适中的开发速度,不允许加班。
8.开放的工作空间,积极讨论的工作环境。生产率会成倍的提高。
9.简单的设计开发,考虑能够工作的最简单的方式,如能够能页面完成的就不能EJB,不用数据库。不能出现重复的代码,一次就够。
10.团队经常性地对代码进行重构。 


 

posted on 2007-05-18 12:27 landril 阅读(396) 评论(0)  编辑  收藏 所属分类: 其它


只有注册用户登录后才能发表评论。


网站导航: