《Jole On Software》--Jole Spolsky


《JOEL说软件》-- Jole Spolsky.
 
  太久了,没有一本书让我停下两天的工作去读完她,以至于我得告诫自己:停,今天到此结束,再看就消化不良了。
  没错,就是这么棒,获得15届JOLT大奖当之无愧。虽然早就收藏过
www.joelonsoftware.com,惊讶于一个老兵的文章会被转译成那么多语种,完整的读过之后才能理解。
  24开300页,计算机书籍里面的小矮人,诙谐的故事,明快的章节,很简单的释明了项目成功的含义。参照了一下JOEL测试,发现我们单位也在2-3分之列,很羞愧,虽然在这一年中我一直在尝试,因为不够努力与决断吧,庆幸,Joel后面给出了纠正办法。无可否认,项目开发的混乱领导应该负完全责任,看来我得以合适的方式建议我的领导和所有项目负责人都去买一本。存在的问题多的无法想像,以致我不能马上给出改进意见。还是先把目录列一下,以此存照,逐个改进吧。

第一部分 位与字节:编程实践点滴
一、语言的选择
  确实,简单的合适的才是正确的。
二、深入底层
  很多程序员总以为会用Java,C#就会写程序了,还打着Web开发不需要那么多知识的幌子。很好的例子:Shlemiel喷涂算法。
三、JOEL测试:改进代码的12个步骤
  很惭愧,我们也差不多在2-3分的行列,虽然这12条是如此耳熟能详。
  1、使用源控制机制吗?-------------√,SVN
  2、能一步完成连编吗?-------------×,有,但是对开发人员还需要培训
  3、每天都做连编吗?--------------×,没能做到
  4、有故障信息数据库吗?------------√,TrackerSystem,但是用的还不是很好
  5、在编写新代码之前修复故障吗?--------×,代码质量已经接近冰点
  6、有最新的进度表吗?-------------×,sorry,最初的进度表就是领导意志
  7、有规格说明书吗?--------------×,虽然写了,但质量不高无法体现价值
  8、程序员拥有安静的工作环境吗?--------×,我感觉没有
  9、你用到了你资金能力内可买到的最好工具吗?--√,众所周知的原因
  A、有测试人员吗?---------------√,有,但是缺乏经验和效率
  B、新聘人员在试用期写代码吗?---------√,写,但是没有章法可言
  C、进行走廊可用性测试吗?-----------×,车站就是我们的走廊
四、每一位软件开发人员必须、绝对要至少具备Unicode与字符集知识(没有任何例外!)
  嘎嘎,一个月前刚系统的分析了Java平台的编码规则。不过她让我理解更透彻了。
五、轻松写就功能规格说明书 第1节:为什么烦心?
六、轻松写就功能规格说明书 第2节:什么是规格说明书?
七、轻松写就功能规格说明书 第3节:但是……如何?
八、轻松写就功能规格说明书 第4节:技巧
  这几个章节让我对功能规格说明书有了进一步的认识,应该是纠正。指出了功能规格书的用途,谁去写,怎么写,更重要的技巧:
  1、有趣味
  2、写规格说明书就是写出让脑子执行的代码(易理解)
  3、尽可能简单
  4、反复阅读修改(迭代)
  5、模板其实是有害无益的(大道无形)
九、轻松制订软件进度表
  呵呵,这家伙时刻不忘推销他的Excel,不过软件进度表确实可以度量一个项目的可控程度,不可控的项目是无法想像成功的,而且是简单的方法。
十、每日构建是朋友
  朋友,我们一直在努力。
十一、难伺候的故障修复
  程序员都有体会。
十二、软件开发中的5个世界
  1、散用软件
    a.公开源代码(后面会有一章从经济学角度的精彩分析)
    b.Web件
    c.咨询件
  2、内用软件
  3、嵌入式软件
  4、游戏软件
  5、代用软件
  认识自身所在的世界,这很重要!因为不同的质量要求和不同的投入。
十三、稿纸原型开发
  可以理解为让大脑运行的程序(老调子)。
十四、不要被太空架构师所吓倒
  如果不增强团队培训与交流,用不了多久我也会“升格”为太空架构师,这可不是好苗头
十五、开火与运动
  just strategy.对付竞争对手的把戏,只是为了每天向前移动一点点。附录里面有个很好的对话与总结:千万别跟着竞争对手,要去听客户的。
十六、人员技能
  This is same with chapter 34.不同的工匠的成本与产出简直是天壤之别,20节会讲到招聘的重要性。
十七、源于计算机学科的三个错误思想
  1、搜索的难点在于找到足够的结果
  2、抗锯齿文本看起来更好一些
  3、网络软件在网络上处理资源的行为应该就像处理本地资源一样
  呵呵,这些都是不难理解的混蛋逻辑,不能称思想。
十八、二元文化
  Wonderful!原来在文化(文、史、哲)层次上可以如此简单的解释我的疑惑。
  UNIX的文化使其代码产生对其他程序员有用的价值;
  Windows的文化使代码形成对非程序员有益的价值。

十九、自动获取用户故障报表
  每天进步一点点,客户满意多一点。如何提升软件质量和用户满意度。
第二部分 开发人员的管理
二十、面试游击指南
  嗯,把握不定就拒绝他,反正门外还有900个等着应试呢,蹩脚的程序员会起反作用。
二一、重金激励害多利少
  哦,我想说什么?别给我加工资了,天呢,那可不是,我不觉得收入令我满意。
  但是,如果给我辉煌前途的话我会更加满意,我是贪心的,但也是理智的。
  另外,我也真的真的非常讨厌考核机制,官僚而且低效!
二二、不配备测试人员的五个首要(荒唐)原因
  哈哈,现在的老板都知道需要测试人员,但是,但是,他们不知道用来干嘛。
  荒唐的结果!
二三、任务换人有害无益
  我们都是孙悟空,我们都有三头六臂。嘎嘎,可只有一个脑袋。
二四、绝不去做的事情,第一部
  就这一部!
  千万不要推倒从来,那太愚蠢了,除非你重的有自己的万有引力,比如Microsoft!
二五、冰川下的秘密
  呵呵,界面呀界面害惨了程序员。对开发来说,界面只占10%不到,对用户来说,界面却是90%。
二六、漏洞抽象定律
  第一次听说该定律:在某种意义上讲,所有发挥作用的抽象都是有漏洞的。即使TCP/IP也不例外。
  天呢,我刚抽象出一个结算模型,还没经过检验(实践证明是效用不大的)。
二七、程序设计界的Lord Palmerston
  Lord Palmerston是谁?18世纪的英国首相? Yes!“没有永远的朋友,只有永远的利益”
  A country does not have permanent friends, only permanent interests.
  Lord Palmerston说:“什维克-荷尔斯坦因问题是如此复杂,以致整个欧洲到目前为止只有三个人可以理解它。一个人是艾伯特王子,他已经死了。第二个人是一位德国教授,他发了疯。我是第三个人,我把关于它的一切全部都忘记了”
  什么问题这么牛呀,找不到的好,免得我也疯了。

二八、评测
  又是评测,没啥可说!
第三部分 Joel对常态问题的遐想
二九、Rick Chapman解读愚昧
  Rick Chapman是软件市场营销奇才,其列举案例让愚蠢的市场营销伎俩大白于天下。
  《IT大败局》就是这家伙的大作。
三十、在这个国家狗是干什么的?
  吃自己的狗食,烧河豚的厨师得自己先尝!
三一、作为哼哈二将,只管去做事
  这是我目前该做的,只管自己先去做,别管别人不理解,最后必须成为凯撒夫人!否则会很惨!
三二、两个故事
  Joel的两次从业经历:Microsoft和Juno,很遗憾,目前我们这是Juno的风格,我的前途不会按这种路线发展!
三三、巨无霸麦当劳与天才厨师Jamie Oliver
  1、有些事情需要一些天赋才能真正做好。
  2、度量天赋是件很困难的事。
  3、人们视图度量天赋的一种途径是让具有天赋的人制订规则,让没有才干的人去遵照执行。
  4、由此生产出的产品其质量是很低的。

  靠制订规则去让一群没有才干的人是开发出优秀的软件是妄想。我也这么认为,遗憾的是我们或许正走在这样的路上。
三四、没有什么像IT看起来那么简单
  嘎嘎,我也开始考虑线程安全等太空架构师的设计风格了。
  不过,针对不同的软件世界就应该有不同的设计强度!
三五、提防非自主开发综合症
  不重复发明轮子,代码复用是有条件的。
  
如果是一个核心业务功能,那么不管它是什么都要自己去做!
三六、策略Ⅰ:BEN & JERRY公司与AMAZON
  想开公司吗?这会让你认清自己,呵呵,当然并不代表我现在就该去开公司了。
三七、策略Ⅱ:鸡与蛋的问题
  这或许是搭顺风车傍大款的绝妙理论。
三八、策略Ⅲ:让我回去!
  嗯,给她自由,用户是恋人吗?不过得先认清障碍所在。
三九、策略Ⅳ:大件与80/20神话
  80/20,正确的理论被错误的使用。我的观念就是:用不用是你的事,给不给是我的事。
四十、策略Ⅴ:公开源代码的经济因素
  《微观经济学》早买了,不过没怎么看呢。
四一、墨菲法则肆虐的礼拜
  墨菲法则?是不是有错误终归会暴露之类的?老外什么P法则,中国早就有:
  纸是包不住火滴!
四二、微软公司是如何败北API之战的
  Raymond Chen阵营 VS MSDN阵营。
  曾经,微软如此执着的重视向后兼容性(用户体验),而现在开始迷茫了吗?我不如此认为,或许经过这么多年的高速发展,软件行业是该进入调整期了,PC销量下滑是个兆头。
第四部分 对.NET稍多的评说
四三、微软精神失常了
  是的呀,微软现在得到处找对手来平衡自己的战斗欲望。
四四、我们的.NET对策
  嗯,有道理,我们还是得保证向后兼容(虽然不喜欢用户说:我要回去!)。适当的跟进是个好策略。
四五、请问,我可以使用连接程序吗
  太正确了,微软你怎么能这样呢!难道不知道程序员,哦,包括用户都喜欢一次搞定?可憎,22M呀!
第五部分 附录
附录A 很好的问题

posted @ 2006-04-10 16:17  bengxia  阅读(1026)  评论(1编辑  收藏  举报
无觅相关文章插件,快速提升流量