前言
在我 10年+ 的职业生涯中,我有幸服务过许多企业,其中,我在世界500强软件公司 FLEXERA 工作了7年,这是很难忘的一段时光,在 FLEXERA 里,我深入参与了公司的多个项目,见证了团队如何高效协作,推动项目从概念到交付的每一个环节。
今天,我将我在 FLEXERA 的开发流程经验整理出来,与大家分享。
技术团队人员构成
- Team Leader
团队领导,负责产品的一切事宜 - PM
产品经理,和团队领导一起负责产品的规划 - Support
类似于国内的运维,主要对接客户,解决客户在使用过程的问题 - Development
程序员团队,实现产品功能,解决产品 BUG,在 Support 需要帮助时协助他们一起解决客户的问题 - QA
质量人员,负责测试产品功能,作好产品质量把关 - Document
帮助文档编写人员,和 QA 一起协助完成文档编写
功能开发流程
- 功能需求产生
- 新功能或功能变更需求主要来自 Team Leader 和 PM
- 功能 BUG 修复需求主要来自客户和 Support
- 每个月的 1 ~ 10 号 Team Leader、PM 和 Support 根据功能 / BUG 的轻重缓急程度讨论决定是否将新功能 / BUG 放入下个月的 Release
- 功能需求决定后,程序员团队组织会议对每个功能进行讨论,看看这些功能将会影响到哪些部分的代码
- 会议后,程序员团队组长分解子任务并分配到每个程序员
- 程序员们接到任务邮件后,对各自的任务进行时间评估
- 如果评估时间过长,组长会询问了解情况,帮助重新评定,如果是经验不足,则指派有经验的组员协助完成任务
- 时间评估通过之后,程序员们开始对任务进行调研和设计
- 这个环节主要是一个 Hight Level 层级的设计
- 程序员团队组织会议 Review 每个程序员的设计
- 参与者:程序员 + QA
- 会议主要目的:确认设计的可行性和影响性
- 设计通过之后,程序员们开始编码实现功能,同时,QA 准备测试用例
- 程序员们对自己名下的每个任务创建自己的分支进行开发
- 要求在每月 10 号之前完成开发工作
- 程序员完成编码和单元测试,签入代码到测试分支
- 签入代码时,需要指定人员进行 Code Review
- Code Review 之后,由指定人员将代码提交到测试分支
- 代码提交后,Jenkins 自动进行初次编译
- 如果编译失败则会通知程序员重新编码,重复以上步骤
- 如果 Jenkins 初次编译通过,则 JIRA 自动通知 QA
- QA 手动进行编译,并根据测试用例进行测试
- 首先是针对程序员们名下的任务的每个分支进行单项测试
- 最后则是集成所有修改之后进行回归测试
- 测试是最耗时最受重视的一个环节,从每月的 11 号到月底。
- 测试完成后,将最新的产品交付给 Support,Support 则通知客户有新的更新,有哪些更新内容等等。
团队管理
- 每周程序员和他的组长有一次 One On One 的单独交流机会,程序员可以提出自己生活或者工作上碰到的问题,也可以提出自己的建议。
- 程序员团队每个月一次票选最佳程序员,奖金算是比较可观。
- 每个里程碑结束之后,程序员团队可以申请一笔经费用于团队活动,比如吃饭喝 K 等等。
- 如果程序员们任务完成得不好,任务被 QA 们 ReOpen,则要扣其 KPI。
最后
以上就是我在世界500强软件公司 FLEXERA 的整个开发流程和团队管理,您觉得跟国内的软件企业相比,有哪些优势呢?国内的软件企业能否参考使用呢?欢迎留言讨论!
我是老杨,一个奋斗在一线的资深研发老鸟,让我们一起聊聊技术,聊聊程序人生,共同学习,共同进步