XP 实战

ThoughtWorks

敏捷的核心:是一种理念、方法论、技巧

项目:确定目标

迭代:核实目标

日常:走向目标

 

团队内一定要有一致的认识,做法(打通关节、人员调整、进行培训),开发环境(房间、硬件、人员布置)

不断观察,定期总结流程的缺点,不断改进完善,使之适合团队

 

关于环境(无挡板、光线明亮、带轮子的椅子、无线鼠或者键盘、大桌子、圈坐)

 

迭代:一个 story 平均 2 天,追踪、总结、分析、对事不对人

项目大的时候需要专门的迭代经理,对内负责 checking 迭代报告),对外交流汇报(功能演示)

 

持续集成: 1 从项目的第一天就开始做起 2 )发散性广播(声音:哦。。。。。。,哦你妈个头),熔岩灯 3 )如果集成失败就必须立即解决 4 )频繁发布,自动测试

 

测试驱动开发: 1 )增加测试范围 2 永远都要先写测试(先定义接口,然后再写单元测试) 3 )提高测试效率 4 )避免缺陷重现 5 )监督开发 6 )不仅仅是单元测试

 

考虑用 wiki 管理文档,方便迭代

 

实施 XP 的项目团队不要超过 10 人, 8 10 人最合适

 

web 测试的工具: salenium jwebunit junit (Fit jwebfit watir)

 

阿里巴巴: web 性能测试 陈日俊(落叶夏日)
包括:阿里巴巴、淘宝、支付宝、雅虎

LoadRunner 是开发人员玩的

 

使用 JProfile 测试性能

优先级考虑的是数据库调优( index ),最后考虑算法调优

Resin 研究使用,性能更好

 

1 )用户行为分析 2 )应用网络分析 3 )数据量分析

 

1、  场景设计源自需求

2、  并发用户数

3、  峰值、平均并发、时间分布

4、  用户空间分布(系统不同模块的用户空间分布)

5、  稳定性要求

6、  数据库数量的大小、增长方式、访问方式

7、  用户行为分析

 

红工厂 JDO 专家组成员 黄海波 一个 Xper 的心路历程

 

上班玩游戏,爽!――培养 TeamWork 的能力

40 岁的程序员,活到老,编到老,知道的多,平等,平和,可以良好的沟通

 

真正的 XP 可以达到:工作节奏平稳、有效率、有节奏

 

只有沟通不够的项目,没有沟通过度的项目

 

主动汇报 上司

 

以人为本:每个开发人员都能充分参与到软件开发中,都以每一行代码为己任,做到我为人人,人人为我。

 

最高境界:以人为本,而不是以流程为本

XP :改变人的思维品质

1 )敢于面对批评 2 )不怕暴露自己的不足 3 )主动承认不足 4 )主动沟通 5 )杜绝懒惰 6 )反省自己的开发流程

XP 中,碰到问题应该是先问谁会,如果没有会的再 google

 

1 )结队一定更加高效、高质 2 )从别人身上学习,看别人的优点,尊重伙伴 3 )一个人的价值不在于知道多少,在于能知道多少 4 )永远测试先行 5 不要吝啬问题 6 )尽可能得让别人知道自己在做什么 7 )不要重复代码

 

XP 挑战人性的阴暗面(惰性-永远都不要自尊-知道什么时候应该放下

 

Xper =合格的程序员

对于 XP 团队,招聘的时候对性格也是有一些要求

说白了: XP 是一种更加剥削的方式

 

但是对个人成长和对公司发展都是有利的,只能说可能对公司的益处更加明显。

如果我是老板我一定会选择 XP

如果碰到实施 XP 的老板,那么就努力跟老板学习,尽快让自己也成为老板。

顺便推荐两篇文章:
极限编程(XP)发布工具
Step by Step CruiseControl入门