Joel On Software Joel谈软件 / 软件沉思录;
我想, 只有真正经历软件规模并在那些痛苦中挣扎过的人才能体会到这些软件方法论的精妙之处吧。 如果是刚开始学习编程的我,大抵会对这种文邹邹的东西嗤之以鼻:“软件需要什么方法论?” “这些东西肯定又是文科生弄出来的吧”。 不过零零散散的参与了一些软件项目之后, 也开始反思项目苦楚的源泉究竟源自何方。 所有谈软件工程的人或多或少对这些问题有独到的见解, 唯独Joel的文章读起来几乎每一篇都有相见恨晚的感觉, 于是一个被神化的Joel在我心中树立起来, 开始一篇篇阅读他的博客。
我知道:光光读一遍是不能加深我对这些问题的认识的;光光像读小说一样读一遍是不够的。 后来刚好看到ruanyifeng的博客上贴出某家出版商要集结出版软件沉思录的第二版翻译,觉得这是个不错的机会。 一来,可以加深我对这些问题的认识。二来,能参与翻译一本喜欢的书确实是一件荣幸的事。 于是不假思索的就给ruanyifeng发了电子邮件,ruanyifeng很快帮我联系上了出版社。 试译还算顺利,然后开始正式翻译,没曾料第一遍交稿的时候一下子被出版社拒绝了。 事情发生的就是这么突然, 原因因为译稿质量达不到他们要求。 我的翻译水平确实有待提高,不过这跟双方的期望也有关系, 我原来设想的模式大概就跟写代码一样,初稿,然后一遍一遍改。 现在的出版社哪儿经得起这样的折腾, 一看初稿质量比较低,然后就直接结束了这件事情。 当时心有埋怨,现在想想还是我的想法太幼稚了。
不过我始终觉得我的想法没有错,甚至觉得未来的翻译必然会走这样的路线,工作流就是像github上面合作项目一样,一遍一遍的改,每一遍都要留下痕迹。 我调侃自己说对比第一版和最后一版肯定是自己都不认识的感觉。 虽然出版是无望了,我还是按照原来的思路来翻译这些文章。 这本来就是件有意义的事情嘛。 到2013年底我终于粗粗粗翻译完了所有文章。 始终没有理想的工具来完成我设想的那种工作流,直到gitbook进入我的视线, 我更加坚信原来的观点是对的, 图书/翻译会越来越像一个软件工程。
这些是翻译这些文章集合时发生的小插曲。回到Joel谈软件。 虽然Joel现在已经不怎么谈软件了,不过10年前他对软件开发的那一系列博文引起了无数开发者的共鸣, 其中很多直到今天仍富有借鉴意义。 日常构建/代码评审/缺陷追踪 依然是当下的热门话题;为什么要写需求文档/如何写需求文档 让你重新审视文档这个问题;大公司是如何制定软件策略的;Joel用他风趣的语言把所有枯燥无味的问题解释的活灵活现。 再往下看你发现对.NET架构的前后不一致评论无疑也体现了Joel对某些观点的妥协。 走上我心中神坛的Joel也慢慢走下神坛, 毕竟软件工程这样复杂的怪兽是没有所谓的银弹能对付的,但是那些经典的观念却时不时在心中浮现。 于是,当初翻译这本书的目的也就达到了。
不过这本用gitbook构成的电子书绝对就是所有稿件的初稿, 我的打算就是一遍遍重读的时候来一遍遍修正那些翻译。 希望这些文章能引起更多人的共鸣,帮他们找到对付软件怪兽
的方法。