软件工程之美
大约 3 分钟
软件工程之美
目标:
- 一句话概括软件工程
- 出现的背景
- 如何应用
什么是软件工程
工程:有人参与、有计划、有步骤地组织做事
用工程化方法规范软件开发,让项目可以按时完成、成本可控、质量有保证
工程思维
站在整体而非局部的角度看待问题
工程方法
- 想法
- 概念
- 计划
- 设计
- 开发
- 发布
瀑布模型
- 问题定义及规划
- 需求分析
- 软件设计
- 开发编码
- 软件测试
- 运行维护
优点
- 简单易行
- 明确分工
- 质量有保证
缺点
- 分工任务不均衡,前期产品工作量大,后期开发测试工作量大
- 不能很好响应需求变更,越到后期修改成本越大
- 到最后才能看到效果
其他模型
- 快速原型模型
- 增量模型
- 迭代模型
- 螺旋模型(风险驱动)
平衡质量和成本时间范围的关系
管理金三角原则,只能拥有其二,不可能三者兼得 质量——成本——时间
固定其中一边或者两边,调整剩下的边,达到平衡
开会的价值
没必要的会,不要开,开会要明确要解决的问题,开完就算没有有效结论,也要有阶段推进,为下一次高效开会打下基础
可行性研究
做事前先做可行性研究
- 经济可行性
- 技术可行性
- 社会可行性
风险管理
凡是都要有 Plan B
风险防范意思,提前考虑风险,不至于风险出现是那么被动。
不愿意思考风险大多处于人类的乐观心理和懒惰思考
项目计划
凡事预则立,不预则废 没有计划就没有章法,没有章法的结果基本不怎么入流。
做计划可以有效推进项目进程,把控进度,把控质量。
不愿意做计划,深层原因也往往是人的惰性
,大脑不愿意思考那么多,走一步看一步
流程和规范
最终目的是提高效率和团队
- 约束团队,保真质量
- 按照统一标准规范,节省人力成本
- 规范能工具自动化就不要人工化
管理工具
- Windows: MS Project
- MacOS: Omin Plan
- 在线工具
写文档
写文档不仅可以提高沟通协作,还可以脱离代码思考功能本身
人人喜欢文档,多数有不愿意写文档,为什么?
- 对文档重要性意识不够
- 文档是很详细的错误观念,文档可以写关键的核心内容,迭代优化
提高效率
时间管理四象限法则
技术债务
技术跟不上业务发展
付出与收益比决定采用何种还债策略
- 重写,一次还清
- 维持,一直付利息,可能会越到后面越付越多
- 重构,分期付款(推荐此方式)
软件工程师的核心竞争力
- 学习力
- 解决问题力
- 影响力