软件工程之美

Mr.Hotsuitor大约 3 分钟软件工程软件工程

软件工程之美

目标:

  • 一句话概括软件工程
  • 出现的背景
  • 如何应用

什么是软件工程

工程:有人参与、有计划、有步骤地组织做事

用工程化方法规范软件开发,让项目可以按时完成、成本可控、质量有保证

工程思维

站在整体而非局部的角度看待问题

工程方法

  • 想法
  • 概念
  • 计划
  • 设计
  • 开发
  • 发布

瀑布模型

  • 问题定义及规划
  • 需求分析
  • 软件设计
  • 开发编码
  • 软件测试
  • 运行维护

优点

  • 简单易行
  • 明确分工
  • 质量有保证

缺点

  • 分工任务不均衡,前期产品工作量大,后期开发测试工作量大
  • 不能很好响应需求变更,越到后期修改成本越大
  • 到最后才能看到效果

其他模型

  • 快速原型模型
  • 增量模型
  • 迭代模型
  • 螺旋模型(风险驱动)

平衡质量和成本时间范围的关系

管理金三角原则,只能拥有其二,不可能三者兼得 质量——成本——时间

固定其中一边或者两边,调整剩下的边,达到平衡

开会的价值

没必要的会,不要开,开会要明确要解决的问题,开完就算没有有效结论,也要有阶段推进,为下一次高效开会打下基础

可行性研究

做事前先做可行性研究

  • 经济可行性
  • 技术可行性
  • 社会可行性

风险管理

凡是都要有 Plan B

风险防范意思,提前考虑风险,不至于风险出现是那么被动。

不愿意思考风险大多处于人类的乐观心理和懒惰思考

项目计划

凡事预则立,不预则废 没有计划就没有章法,没有章法的结果基本不怎么入流。

做计划可以有效推进项目进程,把控进度,把控质量。

不愿意做计划,深层原因也往往是人的惰性,大脑不愿意思考那么多,走一步看一步

流程和规范

最终目的是提高效率和团队

  • 约束团队,保真质量
  • 按照统一标准规范,节省人力成本
  • 规范能工具自动化就不要人工化

管理工具

  • Windows: MS Project
  • MacOS: Omin Plan
  • 在线工具

写文档

写文档不仅可以提高沟通协作,还可以脱离代码思考功能本身

人人喜欢文档,多数有不愿意写文档,为什么?

  • 对文档重要性意识不够
  • 文档是很详细的错误观念,文档可以写关键的核心内容,迭代优化

提高效率

时间管理四象限法则

技术债务

技术跟不上业务发展

付出与收益比决定采用何种还债策略

  • 重写,一次还清
  • 维持,一直付利息,可能会越到后面越付越多
  • 重构,分期付款(推荐此方式)

软件工程师的核心竞争力

  • 学习力
  • 解决问题力
  • 影响力

思维导图笔记open in new window