“本书是讲一事,也是讲百千事;是写一软件,也是写百千软件;是写一群人,也是写百千人。任何一个在软件领域稍有经验的技术人员看完本书,必掩卷长叹:做软件真难。”卷首的这段话着实把握给唬住了,这本书一定和我以前看的专业类的书籍不一样(ps:特别讨厌《20天XXX从菜鸟到大师》、《15零基础学会XXX》)。翻到目录果然是和我以前看的专业类的书有着天壤之别,光看目录就有立刻阅读的冲动。像第一章的“死定了”,第四章的”乐高王国“,第五章的”管束奇客和狗“,这样的题目很难想像会出在与软件工程有关的书上面。更加让我好奇的是居然出现了”第0章“,我已经迫不及待的等着阅读这本“另类”的专业书籍。
第0章 软件时间
本章开始介绍半个世纪前,当作者还是一个沉迷于游戏的十五岁少年的时候与计算机和编程结下的不解之缘。从开始玩游戏中的已有关卡,到学习简单的basic语言设计自己想像的关卡,并且乐在其中,至此作者开始了他的开发软件的生涯。半个世纪后,作者已经是在线杂志Salon的创始人和总编,并且负责一个软件开发项目。此次的软件项目没有想象的那么顺利,团队废寝忘食的加班加点才最后将软件开发勉强完成。“科技行业的兴盛,带来了”互联网时间“,多指快速之意。数字时代的时间机制下,一切皆有可能——技术产生、公司创立、创造财富——而且速度惊人。这意味着你没有时间做到尽善尽美——无需担心,因为别人也一样。”我对这句话有点疑义,如果软件一个软件可以方便人们的生活,甚至可以利用某软件做成自己的事业的时候,我们就必须要做到尽善尽美。对于“第0章”作者有自己的一番解释,很是新颖:计算机是从0开始计数的,程序员也训练自己这样计数,以免让他们要指示操作的计算机产生误解。而后又由各种实体的建筑,摩天大楼、水坝进行发问:为什么不能像造桥那样造软件呢?因为现代文明,人类生活之所需都系于计算机,软件这根细线之上。但是软件错误、软件项目的延误和超出预算让很多的项目无极而终。对此很多从事软件行业的人对此很是沮丧,甚至于想要摧毁整个软件大厦。但是明显软件对于我们来说,需要远甚于仇恨。梦之所寄,行之所为——软件带给我们挫败和束缚,必将在开发出完美软件之后云销雨霁。
第二章 死定了
本章开篇就讲到一个团队在软件开发的过程中遇到的常见的也是很棘手的问题:程序员的开发进度问题。很普遍的解决办法就是,项目团队每天进行例会公布每天的进度,并且填写软件缺陷表,但是还是无法完全解决此类问题。究其原因,软件设计之前没有蓝图,所以会碰到无法预料的问题;因为是同一个项目的不同部分,你需要的时间取决于其他人所花的时间;对于从没遇见的问题我们有害怕的心理。害怕的并不是问题本身,而是我们不清楚问题是什么,以及要花费的时间。
接着作者又讲到开源的问题。作者认为源代码是一笔全人类的财富,开源有利于彻底改变软件开发的具体过程。开源本身是让程序员学习和拓展源代码,“乐享及高效”嘛。
第二章 Agenda之魂
angenda项目是为了解决提醒、要做的事、好主意、建议等一些很难分类的信息,让计算机进行分拣,并能快速找到。虽然是一个简单的列表管理软件,但是几个突出的特性让其成为传奇: 引入了一种管理数据的新手段;突破了计算机的严密逻辑和人类语言不详之间的阻隔。用户不关心软件的存储结构,只管输入数据;用户能够轻易修改和拓展数据结构、添加新的分类;用户能够用自己的方式产看数据。很难想到这是二十多年前的成果,它完全达到了现在很多软件的都达不到的水平。而对于软件灾难,我们不应该太过于在意,不然很难将代码写下去,所以“程序员都是乐天派”。
未完待续。。。。