敏捷实践

通过多年在软件服务外包领域的探索和实践,盛安德于2006年发现敏捷开发更有助于离岸协作的成功并将其应用于其离岸开发中心业务。

敏捷不仅仅是软件开发方法,更代表了和客户成为一个团队的协作意识和精神;它消除了异地办公和中西文化差异给软件开发带来的障碍。只有具备了敏捷意识和精神,开发人员才能提供令客户满意的服务。

盛安德提供经验丰富的敏捷开发工程师,他们对客户诚实,透明,响应迅速。我们了解敏捷,热爱敏捷,乐于和每一个人分享敏捷。敏捷在盛安德随处可见,项目开发、员工面试、日常生活等。

以下是我们在项目中的一些敏捷实践:

和客户如同在一个办公室工作

在盛安德,开发团队和客户通常地处两地,隔海相望;但是恰当的敏捷实践使我们如同在一个办公室里工作。

每日即时沟通

  • 每天早上通过电话或视频与客户进行简短会议,通常持续二十分钟
  • 使用GoToMeeting, TeamViewer或其他远程工具为客户展示软件效果
  • 在项目初期,盛安德的软件工程师到客户公司工作一到两个月,充分了解需求和相关情况,以便顺利开展合作

持续集成和持续提交

盛安德现有的大部分离岸开发中心都有一台服务器用作持续集成。通过访问这台服务器,客户每天都很容易看到最新的项目进展。有的开发团队也应用持续提交的实践,这种情况下,软件系统被划分成若干功能模块,不同的功能和模块按照优先级被安排到不同迭代,每个迭代周期提交一次可以使用的软件。

PMS项目管理跟踪系统

PMS是盛安德自主研发的一套远程项目管理跟踪系统。根据客户的项目需求,PMS也可以轻松实现不同的定制开发,以便双方能够实现更好的合作。

标准PMS具有以下功能:

  • 迭代的计划
  • 项目状态跟踪
  • 项目任务管理
  • 测试管理
  • 团队成员管理
  • 文档管理
  • Bug 跟踪

除了PMS,我们对目前应用广泛的其他项目管理软件也有丰富的经验,例如Targetprocess, Jira, Tfs, Excel Scrum Template 等等。

规则有助于组建自我管理的团队

我们没有一成不变的开发方法和流程。对不同的项目,开发团队根据碰到的问题,自行定义不同的规则,以便持续改进流程,使项目顺利进行。下面是我们已经在使用的一些规则:

  • 良好的代码规范和团队协作

开发团队的每个技术人员都有着良好的代码规范和设计方式,系统架构不是由某一个人决定,而是整个团队商量讨论的成果。
我们曾经有一个高级架构师为客户做MDI系统开发,开始使用了Smart Client Software Factory框架,两个月后,团队的其他成员发现SCSF和WPF模块在这一框架中运行会出现问题,之后经过团队集体讨论决定,弃用SCSF,转而使用MEF。正是团体协作的规则,让框架问题在项目前期得以解决,整个系统至今仍运作良好。

  • 七小时+半小时+半小时

许多客户在抱怨,当发现提交的软件有问题时,因为时差原因,开发人员已经下班了,问题很难得到及时解决。在盛安德,我们在某些项目里制定了这样的规则:开发中心的成员每天白天工作七小时,然后早晚各半小时专门用来和客户沟通解决问题。

  • 一个sprint,两次评估

团队在一个sprint(冲刺)开始前评估一次所有user stories(用户故事),在中期会重新评估一次,预测并预先解决可能出现的问题,同时确保优先级高的stories评估准确,能够按时完成和提交。

  • 删除无用的代码和统一注释代码

我们其中一个团队建立了以上规则,因为无用的代码和不规范的注释代码不利于了解团队其他成员和整个项目情况。于是有一天他们特意加班删除了无用代码和旧的注释代码。

  • 任何一项任务不高于六小时
在有限的时间内完成一项任务,注意力会更集中,开发任务也更容易评估和检验。