最近负责在上海设立研发中心,准备打造一支适用于敏捷开发的团队,对于团队建设中有几点想法,写出来和大家讨论。
(1) 关于开发手法
敏捷开发讨论中,很多都会去讨论采用XP,还是Scrum,或是其他的开发手法。我们的观点是适合整个开发团队的才是最好的,毕竟开发技术人员是整个敏捷开发的灵魂,开发团队在学习,了解了各种敏捷开发手法之后,实践之后形成稳定的开发速度和质量。
(2) 敏捷开发的核心价值
团队采用敏捷开发,是为了尽快将核心的功能交付市场,加快对市场反馈的对应速度,进一步提高系统的核心竞争力。其实这是从市场的角度来阐述敏捷开发的价值,从技术开发人员角度来讲,如果变化是不可避免的话,如何避免开发进入无休无止的系统式样修改,出现bug,修改的恶性循环之中,这样的过程对于每个开发人员来说都是一个噩梦,整个过程都处于改了一个地方不知道什么地方会受影响而出现不可预测的问题的恐惧之中,直至最后进度的延期和低劣的质量只是客户对我们丧失信心,使得开发人员感到沮丧。
敏捷开发原则,很好的帮助技术人员去回避这样的恶性循环,让技术人员能更好的专注于开发。我们来看几条敏捷开发的实践,都能体会到这些实践都是能让技术人员更好的降低团队出现上述恶性循环的风险
- 客户作为团队成员
只要当团队的每个技术人员都能很好的理解问题域的时候,才可能敏锐的洞察哪些应该抽取,隔离的事物。相对于传统团队,需求分析员,设计人员,编程人员,测试人员各司其职,编程几乎是在完全不理解的状态下的填空状态,怎么可能考虑哪个依存需要倒置,哪个需要做借口隔离。
此次公司的开发项目是公司的互联网项目,项目所实现的核心价值很容易由开发团队制定,这符合了敏捷开发的基本条件。
- 测试优先
不用说也明白,有了测试的系统,才是可能拥抱变化的基础。写测试逻辑的过程,其实是对设计的一次检验,能否简洁的测试,反应了系统对于变化的对应能力的一个指标。
- 重构
其实重构的标准很简单,第一是出现重复的代码,第二是代码的可读性。系统在不断微小的重构之中,防止系统的腐化,而测试优先保证了重构的可能性。
(3)工具的使用
在开发中能很好的运用工具,也是敏捷开发是否能成功的很关键的部分。现在我们主要使用以下工具(服务)
- Yammer
是一款企业内SNS软件。主要用来做用户素材分析。在没有用户需求不明确的时候,在Yammer上和开发人员,管理人员,业务人员一起深度讨论,直到用户素材变得明了清晰。
- Pivotal Tracker
一款很好的Ticket驱动的敏捷开发管理服务,在用户素材明确之后,登入到Pivotal Tracker,然后由开发人员做任务计划。
- github
源文件管理,可很好的和Pivotal Tracker联动,关联Pivotal Tracker的用户素材,便于code review.
先写这些,余下留待一起讨论。
最新内容请见作者的GitHub页:http://qaseven.github.io/