$$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Self-defined math definitions %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Math symbol commands \newcommand{\intd}{\,{\rm d}} % Symbol 'd' used in integration, such as 'dx' \newcommand{\diff}{{\rm d}} % Symbol 'd' used in differentiation ... $$

PM技术分享——《构建之法》初步实践

软件理论

  1. 软件=程序+软件工程:软件开发活动(构建管理、源代码管理、软件设计、软件测试、项目管理)相关的内容的完成,才能完成把整个程序转化成为一个可用的软件的过程。
  2. 软件企业=软件+商业模式
    • 软件开发的不同阶段:玩具阶段→业余爱好阶段→探索阶段→成熟的产业阶段
    • 软件开发具有的特殊性:复杂性、不可见性、易变性、服从性、非连续性
    • 软件团队管理:需要对不同的角色进行分析,管理不同角色的分工

技术和流程控制

  1. 单元测试:单元测试是尤为重要的开发环节
    • 目的: 有效解决程序员对模块功能的误解、疏忽或不了解模块的变化之类的问题,使自己负责的模块功能定义尽量明确,模块的质量得到稳定的、量化的保证。
    • 测试标准
      • 正确性:在最基本的功能/参数上验证程序的正确性
      • 同一性:单元测试必须由最熟悉代码的人
      • 不变性:机器的状态保持不变
      • 快速性:一个测试的运行时间是几秒钟,而不是几分钟
      • 独立性:单元测试的运行/通过/失败不依赖于别的测试,可以人为构造数据,以保持单元测试的独立性
      • 覆盖性:覆盖所有代码路径
      • 自动集成:应该配置相应的CI和CD
      • 同时保护:单元测试必须和产品代码一起保存和维护
      • 回归测试:验证新的代码的确改正了缺陷

团队模式

我们现在的团队模式是采用了MSF(微软解决方案框架 Microsoft Solution Framework)

基本原则

  1. 推动信息共享与沟通
    • 团队成员之间不同的信息应该充分共享
  2. 为共同的远景而工作
    • 目标是明确没有二义性的
    • 目标必须通过努力才能达到
  3. 充分授权和信任
    • 每个成员应该有充分的授权
    • 平等的
posted @ 2020-05-22 16:44  I_love_SE_forever  阅读(131)  评论(0编辑  收藏  举报