2003年的某个寒冬的夜晚,我决定放弃继续阅读那本英文原著《Software Engineering: A Practitioner's Approach》。第二天就要考试软件工程了,可是我还有最后三章没有看完,管不了那么多了,再看下去真的要吐了。所幸只是开卷考试,即使有些题目没答出来,还是考了85分。十二年之后我还能清晰的记起那天夜晚时我的感受。我很少半途而废,尤其是在看书或者学习上,但那是其中的一次。
在那之后,因为职业的原因,依旧对软件工程领域保持着关注。期间看过比较好的著作有《人月神话》,还有《走出软件作坊》(有趣的是和本书是同一策划)。但这两本都不太适合作为大学生的教材使用。直到春节前,因为研究创新的话题而买了这本《构建之法》。看了之后就被其中的一些内容吸引住了,特别是作者邹欣的诙谐的语言,简直可以当段子看。因为不用为了考试而赶工,这本书是断断续续的读,一般是在遇到某方面的问题时,把对应的章节阅读一下,所以直到最近才把整本书看完。要考虑到我是一个工作了八年的工程师加项目经理,评价的视角会与在校学生不同。
本书的第16章是讲IT行业的创新的,是我最喜欢的一章。正是因为这一章,解开了我多年对创新的困惑,即“伟大的创新怎么就灵感一现的来了?“。这一章是邹欣的博客文章《IT 行业的创新》的扩展版,内容要更系统一些。至于一本讲软件工程的著作为什么要讲创新?我专门咨询了邹欣老师,并得到了解答:Build To Win - 构建之法 - 知乎专栏。当最初看到这章内容的博客版时,真的有种相见恨晚的感觉,要知道我已经被创新这个概念问题困扰了至少十年了,如果在2011年这篇博客发出时就能看到,要少死掉不少脑细胞。我还通过周筠老师(本书策划编辑)拿到了这章内容的PPT,先后给两个团队(离职前在百度带的团队,以及现在的创业团队)做了分享,许多同学听了表示很受启发。有位同学说之前都觉得创新是一件很遥远的事(都是些传奇故事),听了之后自己都有信心做出些创新的东西来。
因为创业的缘故,对团队的人的因素比较关注。本书的最后一章讲到了猪、鸡和鹦鹉的故事。它们三类动物凑在一起开餐馆,猪割了自己的肉做红烧肉,鸡下了蛋卖煎蛋,鹦鹉扯扯嘴皮子吆喝顾客。它们三者的投入和风险是不同的,得到的回报也是不同。在从考虑创业到真正创业三个月,这个过程中对这个分类深有感触,自己心中的这杆秤可以分的很清楚。经常有些朋友拿着自己的想法和团队和我聊创业,我都会把这个段子讲给他们听。
前面说到这本书的一个特点是语言诙谐,还有一个特点就是讲的透。我从2008年开始带团队,到现在也有了7年的经验了。但看到书中讲团队合作划分为萌芽阶段、磨合阶段、规范阶段、创造阶段时,才恍然大悟,为啥有的阶段的产出不靠谱,而有些时候又非常好,原来有阶段的因素在里面。对于什么是团队,什么不是团队?书的第5章举了个形象的例子,一堆路边打零工的,你给点钱就去干,干多少拿多少的钱,各做各的事,这只能叫乌合之众。而真正的团队应该像接力赛跑、足球队那样,有共同的目标,并且有各自的分工,相互协作共同完成任务。
书的第三个特点是与时俱进,不管是创新,还是用户体验,还是敏捷开发。都是一些在当下IT领域最为关心的问题,而非和现实脱节。
至于需求分析、软件设计、开发、测试、发布等经典环节,本书都有系统的论述。当然,我已经过了学习这些基础知识的阶段,相信对初学者更为有用。
在阅读本书的过程中,我有幸也加入在了构建之法微信群中。目睹了几个学校使用本书作为教材的实践过程,以及遇到的一些问题,相信那些认真学习的本书的学生,会有更大的收获。