软件开发项目实践随笔

企业的数字化转型大多需要通过建设数字化应用软件来实现数字化转型的业务目标。一个软件项目从一个初步的想法到最终上线运营,并为客户提供价值,需要经历从设想/需求,计划,设计,开发,测试,部署等一系列的步骤。

软件开发活动

一般情况下,一个数字化应用软件项目会涉及到业务团队,技术团队和运营团队。不同团队有不同的诉求:

团队诉求不一致

业务团队:直接面向市场,客户,希望团队、软件尽可能灵活,以快速响应市场的变化,提供客户需要的价值

技术团队:希望需求稳定,希望已完成功能尽快上线

运营团队:希望线上系统稳定运行,希望提升服务水平

为了协调不同的团队,快速,高质量的交付软件产品,业界提出了各种各样的方法,试图有效的管理软件项目。针对业务团队和技术团队之间的合作,目前流行的是敏捷开发方法;针对技术团队和运营团队之间的合作,我们提出了DevOps;针对运营团队和业务团队之间的合作,我们提出了数据分析

软件开发团队合作

关于敏捷开发、DevOps和运营大数据分析,已有大量的书籍、文章介绍,我就不班门弄斧了,这里列几点个人在软件项目开发实际中的几点感想:

1. 任何一个软件功能都应以部署上线运营为完成时间点。团队的每一个成员都应为这个目标负责。

2. 团队必须共同设定合理的长期、短期目标,每隔一个较短的迭代周期就能交付一个可见的价值。

3. 业务、架构、开发、测试、运营团队成员必需紧密合作。面对面的沟通、讨论是最有效的方式

4. 合理利用自动化工具,减少团队成员在重复工作上的时间投入,比如下图中关于DevOps常用的工具

DevOps

5. 设定合理的团队KPI指标,促进团队持续改进。比如迭代目标完成率,每个迭代交付的价值,缺陷率等。

6. 软件开发是团队活动,不要完全依赖于某一个大牛。对跟不上团队发展的个人,要么帮助他成长,要么转岗。

7. 加班不可避免,但要避免无效的加班,特别是在团队的可持续交付能力下降的时候。

8. 对于大型复杂的项目,需要拆分多个团队来合作完成。团队的拆分可以基于功能进行垂直拆分,也可以基于系统架构进行水平拆分,或者两者相结合。目的都是为了解耦开发团队以便协调、保持进度。

发表评论
留言与评论(共有 0 条评论)
   
验证码:

相关文章

推荐文章

'); })();