《软件随想录 卷一》阅读笔记
2017-10-08 think

总评

这本书是 Joel 的博客中的一些文章的摘录,文章简单按一些要点进行了一些分类,这次看的是卷一,里面主要讲了 Joel 对于软件公司运营以及软件开发的一些看法。

这本书中的很多文章观点鲜明,充满了个人特色,从中可以看出作者是一个忠实的软粉,毕竟也在微软干了几年,哈哈,抛去一些有偏见性的文章以及一些放到现在应该老早算过时的观点(毕竟这本书中文初版发行是在10年前了,最初写文章可能有接近20年了吧?),很多内容还是值得借鉴的。

中心思想:人和时间就是一切,不要做一些大量浪费时间且收效甚微的举动,优化日常开发流程,以节约时间,使收益最大化。

主要内容

  • 合格的软件公司应该具备的特征
  • 如何进行软件设计
  • (大型)软件的错误反馈机制设计(似乎已经都是按书上说的来弄了)
  • 开发者面试和管理知识

一些不错的观点的提炼

  • 先做必要的设计,充分理解设计后,再进行开发,避免后续高成本的弥补设计时的过错
  • (对于小公司而言)招人时一定要一步到位,确定招的人能够胜任工作(聪明、能干),能省却很多后续麻烦
  • (小公司可能无法实现,但是有必要)测试很重要,且有必要请足够的专职测试来分担开发的工作
  • 有必要引入合适的项目进度管理机制
  • 分配任务时尽量避免把多种不同的工作同时分配给一个人,人需要时间去转换思维
  • 不要随意抛弃旧代码并且完全重写,时间成本过大且还得重新考虑不少实际应用场景下的问题
  • (以麦当劳举例)作为一个小的实体,更容易有自己的特色并快速产出产品,大的实体为了向外界输出统一的价值观,总会定制繁杂的规则,而出来的东西却趋于平庸(可以用成语尾大不掉概况?)
  • (以本杰瑞和亚马逊举例)如果一个市场还是蓝海,可以考虑快速引入投资,进行激进发展来占领市场,如果是红海,则需要稳扎稳打,稳步发展
  • 利用扶持配套软件(环境)的发展,来给自身带来盈利
  • 不过分追求新技术,采用整个团队现有能适应的技术栈,避免在研究新技术上浪费大量时间
  • 不要排斥别人的代码,每次都自己造轮子,但是,和自己业务直接相关的部分,不要去用别人的轮子,请务必自己去实现,这是公司的立命之本
  • 每个人都应该带头去主动优化开发流程,然后以自己的实际行动去影响别人,哪怕现在没人这么做
  • 可以接纳客户的意见,去调整一些细枝末节的地方,但是主要结构不能去动
  • 以接纳与开放态度设计产品,解决客户使用产品的障碍,从而逐步从竞争对手手里吸纳用户
  • 自己去使用自己开发的产品,找出不足,并改之

一些不足

一些内容放到现在已经过时,不过毕竟距离作者写这些东西也有接近20年了呢。

作者作为一个曾在微软工作的人,写了很多微软的优秀品质,但不免带上了一些对其他同类产商的不屑的话语,有些过于随意。(不过后面也抱怨微软一些产品的做法)

作者强烈抵触绩效考核制度,弱化制度管理,倾向于招进来的人各个都是天才,各个都有主观自觉,能够发挥主观能动性,但是,现实往往和理想差异甚大。。。

作者在非连续的多处地方对一些只说大话不干实事的行为表示了嘲讽,能够理解作者的想法,但应该精简这部分的篇幅。

不过这些不足也能体现出作者个人的个性 - 语不惊人死不休,立场鲜明啊!

就算有种种不足,这本书仍然值得一看吧!