PM技术分享——《构建之法》初步实践
软件理论
- 软件=程序+软件工程:软件开发活动(构建管理、源代码管理、软件设计、软件测试、项目管理)相关的内容的完成,才能完成把整个程序转化成为一个可用的软件的过程。
- 软件企业=软件+商业模式
- 软件开发的不同阶段:玩具阶段→业余爱好阶段→探索阶段→成熟的产业阶段
- 软件开发具有的特殊性:复杂性、不可见性、易变性、服从性、非连续性
- 软件团队管理:需要对不同的角色进行分析,管理不同角色的分工
技术和流程控制
- 单元测试:单元测试是尤为重要的开发环节
- 目的: 有效解决程序员对模块功能的误解、疏忽或不了解模块的变化之类的问题,使自己负责的模块功能定义尽量明确,模块的质量得到稳定的、量化的保证。
- 测试标准
- 正确性:在最基本的功能/参数上验证程序的正确性
- 同一性:单元测试必须由最熟悉代码的人
- 不变性:机器的状态保持不变
- 快速性:一个测试的运行时间是几秒钟,而不是几分钟
- 独立性:单元测试的运行/通过/失败不依赖于别的测试,可以人为构造数据,以保持单元测试的独立性
- 覆盖性:覆盖所有代码路径
- 自动集成:应该配置相应的CI和CD
- 同时保护:单元测试必须和产品代码一起保存和维护
- 回归测试:验证新的代码的确改正了缺陷
团队模式
我们现在的团队模式是采用了MSF(微软解决方案框架 Microsoft Solution Framework)
基本原则
- 推动信息共享与沟通
- 团队成员之间不同的信息应该充分共享
- 为共同的远景而工作
- 目标是明确没有二义性的
- 目标必须通过努力才能达到
- 充分授权和信任
- 每个成员应该有充分的授权
- 平等的