前几个月看了些软件开发相关的书,读的时候有时有感悟就发条tweet,在这里备份一下。
梦断代码
开始阅读《梦断代码》,一个历时多年的软件项目惨败的故事。其实类似的案例很多很多,不过大家都不愿意承认失败,或者将失败轻描淡写而已。
可复用软件之梦有一悖论:几乎总能找到一段满足大部分需要的代码,但这些拿来的代码所不能做到的部分,恰是本项目与众不同的创新之处。
软件开发的时间估算始终是恒久难题,敏捷方法能做到的只是对于短期估算有改善:通过任务切分和开发团队亲自估算让数值看起来可靠些,通过计算迭代速率等手段让估算值反映团队近期状态;但对于长期估算,答案依然是:你丫别问了,到时自然就知道。
《梦断代码》讲了一帮聪明人是怎么把事情搞砸的。因此我非常感兴趣Linux项目是怎么运作的,Linus怎么把这么多聪明人弄到一起合作,而且似乎成效相当不错。
在周五下班的地铁上看完了《梦断代码》,没有做计划也没有刻意定目标,但已经是在周五读完的第三本书,每周一本。就像连续三个叠代都准时交付。
设计原本
一个设计,一个人能完成就不要让其他人参与,增加的人手会削弱设计的一致性,概念的完整性。一个职责,一个部门负责就好,多部门合作带来各自的利益考虑和冲突。