Software Engineering & Mythical Man-Month

Innovative Practice

By krismile Github

Warning:预防针 声明!!!
技术X杂谈O 书 课程 主观感受
## 目录
- 关于Mythical Man-Month
    1. 人月
    2. Brust理论
    3. 没有银弹
- 理解与认可MMM
- 补充:理念与设计
    1.2. KISS
    3. DE or WM
- 对比SE--从技术角度出发与写文档
- 提问:SE到底学什么
- The End

Mythical Man-Month

- 关于为什么会看 Mythical Man-Month

From https:://www.bilibili.com/video/BV1zh4y1U7uX

人月 航天

人月 人天 人时

人月(英语:man-month)是软件开发的单位 评估一件软件项目的大小

一个标准工作月份(通常工作日为20天/按工作小时计算)内一个人的工作量

工作量 != 项目进度

人月是一个误解的概念,因为它假设人力和工时可以互换

Brust理论

项目已经延期,如果增加人员,只会火上浇油

除非可以把工作区分,让新进人员在不影响他人工作的状况下有所贡献

但是,把工作切分给更多人做将造成额外的沟通代价

增加人员代价可分为三方面:

  • 切分工作所造成的混乱与额外工作量
  • 新人员的训练
  • 新增加的交流

没有银弹

在民俗传说所有怪物中,没有比狼人更可怕的,因为它们会突然地从一般人变身而成

因此人们尝试着查找能够奇迹似地将狼人一枪毙命的银弹

项目 -> 时程延误 预算超支 产品充满瑕疵

1986+10 本质1附属9 10倍

争议 -> 查找银弹

查找银弹

高级语言的抽象 避免复杂性分时技术集成开发环境 提升生产力

编程语言Ada的理念

模块化抽象资料类型层次结构式结构

面向对象编程

Notion:AI成为银弹的可能性

理解与认可MMM

环境:无力改变与徒增烦恼

“我和领导说人月神话,领导跟我说人多力量大”

灾祸来自白蚁的肆虐,而不是龙卷风的侵袭:

”进度落后了一天,那又怎么样呢?谁会关心一天的滞后?我们最终可以跟上进度。何况和我们项目关联的其他小组已经落后了。“

具有指导意义 === 具有指导意义

补充:理念与设计

质真若渝,大器晚成

世上没有完美的程序

即便是已经成熟运行十几年的项目,也存在错误

The highest sounds are hardest to hear. Going forward is a way to retreat. Great talent shows itself late in life.

Even a perfect program still has bugs.

人们总是最难听见最高处的声音。进是退的一种。大器总是晚成。没有完美的程序,任何程序都有漏洞。

KISS

  • Keep It Simple, Stupid

    Worse is better是由理查·加百烈在他的文章中用来描述电脑软件接受度的成句

    其观点为,软件的品质并不随着功能的增加而提高,从实用性以及易用性来考虑,功能较少的软件反而更受到使用者和市场青睐

DE & WM

Desktop Environment & Window Manager

  • Gnome3的默认WM是Mutter

  • KDE5的默认WM是KWin

  • win默认有dwm.exe进程

剔除多余的功能 Less is More.

Software Engineering

SE != 写文档

图、文档设计 (plan and document 模式)

技术
设计理念
软件工程
  • UCB CS169 SaaS
  • MIT 6.031 目标就是让学生学会如何写出高质量的代码

提问:SE到底学什么

Thanks For Watching