人月神话很多年前看过一遍,一直觉得只是神神叨叨炫耀新词的凑字书籍。实际上也确实中文翻译不咋滴,非科班专业的还是弃了吧。最近翻出来又看了一遍,书中还是有很多前瞻性部分。
首先个人觉得这并不是一本项目管理书籍,而且前60%的内容早已经过时。而后面的“再论银弹”和“20年后”的反思内容更有阅读价值。
书中提到的很多研发过程:合理的进度安排、精干的外科手术队伍、概念设计和实现分离、组织架构、角色的划分、项目文档、有效沟通等等,这些内容并没有特别的新意,很多项目管理的书籍都有介绍。然后20年后软件工程后期也确实没有发明能够量产代码的途径(即所谓的银弹),也许未来能够通过AI自动编写代码。引用书中的一句话:
不变只是愿望,变化才是永恒。There is nothing in this world constant but inconstancy.
虽然没有银弹,还是需要吃饭。后期软件行业也确实出现了很多提高生产效率的手段。
工程类:无法解耦事务之间强关联,导致项目无法分解为不需要沟通的子任务(比如人机博弈,a和b不可以同时下子。又比如装修房子,刷瓷砖、铺地板、油漆进家具的顺序并不能颠倒)。复杂的项目无法通过增加人力进行缩短时间。敏捷项目管理的出现实际上也是任务分解的一种并行,将系统分解为多个敏捷项目。敏捷项目分解为多个不需要沟通的子任务,达到多次交付、缩短上线时间、及时验证修改的目的。持续构建中自动化测试和每日构建也是同样的方法,在不是所有事务都可以分解的情况下。可以对能分解的任务多次重复执行达到提高整体效率结果。
编程方法:XP变成的结对编程后,编程方法没有特别好的办法。恩,最鼓励师非常流行:)。目前很多研发人员都要求性别比例协调,没有具体统计过是否确实有提高。
编程语言:面向对象成为趋势,而且分化比较严重,各自的地盘都有各自的老大。服务器server端java一统江湖,前端node异军突起。Android使用java,开发ios使用Swift也发展到了3.0。
交付模式:一次性做到位上线这种开发模式几乎销声匿迹,迭代开发成为趋势。
人机交互:图形界面(WIN10, MAC OS)达到巅峰后,返璞归真的windows开始融合linux shell。
至今很多程序员依赖习惯于VIM/EMACS键盘流。APP的出现,人机交互的重点转移到移动端。后面人工智能的出现,也许会切换到智能端。
生产效率:专注质量,就可以提高效率以及成为业界共识。
环境:虚拟化技术成为常态,程序员没有了束缚。集群、大数据、大流量、大带宽、运算能力、内存空间一切制约生产力的资源充分释放。云可以让五分钟内启用近百台的集群成为现实、各种复杂的操作系统、数据库、硬件昂贵的集群、各个地域的数据中心。只要预算充足分分钟搞定。
协作模式:再没有小黑屋存在的必要,无国界的协作。一份代码任务分包给世界各地的开发人员,只要语言相同每天都可以一起晨会。就像书中所说的“没有‘交流’就没有交流的结果‘组织’”。互联网的存在让交流无处不在,无国界的代码组织出现。
处理冲突:C/S架构的单点配置管理,转变为分布式的配置管理。多对一的处理方式转变为多对多的处理。
公开透明度:WIKI和社区github的出现,程序员可以自由的交流和分享问题解决的结果、分享代码。
编译/链接:编译器、解释器,编译器没能替换掉解释器,移动互联网让解释器更加流行。各大浏览器分分比拼js执行效率。
框架/跨平台:框架变的越来越丰富,选择更多。跨平台追求的不再是解决方案而是快速实现。