Joel on software


‘Joel on software’ ,断断续续的将这本书看了差不多了,说实话,这本书的内容还是蛮好的,但还是有点后悔买纸质的书,因为感觉文章有一个个的故事,事件,问题组合而成,有一种”快餐”的感觉.

Joel ,fogcreek公司的创始人,该公司的主要产品是FogBugz这个项目管理,缺陷跟踪系统.
他也是The Stack Overflow Network的创始人之一,http://stackoverflow.com/这个网站是程序员问答的一个社交网站.

至于他的这本书,我想应该是他在自己有所成就之后对自己的经历的一个总结吧,书中很多观点很不错,很多时候很多东西大家都懂,但是大部分没有或者很难用精确的言语表达出来.
下面就谈谈书中的一些东西吧.

文中很多的地方都提及到优秀程序员,优秀的程序员你很难从人才市场找到,对于这点给出了三点建议 走出去,实习生,建立自己的社区,走出去的意思就是多参加一些技术研讨会议,因为那里往往有业界的牛人和对相应技术感兴趣的程序员,话说今年的北京的QCon大会便成为各大公司招聘的好去处.实习生嘛,可以在低成本的情况下发现未来的优秀程序员,何乐而不为.建立社区的目的就是在网络上笼络一堆气味相投的人,从中寻找合适的人. Joel提到,员工推荐是最不靠谱的员工招聘方式之一.

程序员不在乎钱,但是不能比同行的低太多,当程序员对当前的工作不满意的时候,他们可能就会抱怨工资低了,的确,当程序员觉得自己的工作很糟糕的时候,只能退而求其次,寻找物质上的点点寄托,平衡下心理不平衡,当然这也有个度.

文中还有一个地方有谈及对于软件的源码的态度,当我们使用一个买来的软件的时候,当碰到了问题,如果没有源码的话,那是相当的纠结了,如果等官方的答复的话,可能需要等很长时间,但是如果自己改,又没有源码,所以很多公司基于开源软件的思路还是不错的,这样,才能对开发的应用很好的掌控. 很多时候很多软件并没有什么高深的内容或者算法,只要有源码,你就可以一步步的跟进去,知道发生的一切.但是如果没有源码,那它就是一个黑盒,出了问题,无计可施. 当然自己修改源码有时候也有注意的地方,比如一个大的公司,部门间共享相关项目的源码的话,可能自己的部门有特殊的厄一些需求,需要自己修改一些代码,这个时候最好能够将修改的patch提交给对方的团队,让他们来升级,要不然当他们下次升级系统的时候,你自己还需要做一次merge.也不利于代码分支的维护.

文中还讲了一些项目管理中的问题,比如对于项目的日程规划,只有一线的程序才能提出完成日期的估计值,管理层制定的日期计划最终都将注定失败.管理层对程序员施压是一个无比傻逼的错误,如果进度慢于计划,程序员本身就惶惶不可终日,你再强加压力,只会让代码的质量更加恶化,不是程序崩溃就是程序员崩溃.如果进度快于日程表,那么程序员就会欢欣鼓舞,效率很高,根本不需要上面施压.

kejinlu /
Published under (CC) BY-NC-SA in categories SE  tagged with 软件工程