软件开发与人类做过的任何其他工作都 不一样。其他的工作都是思维为工具,以客观世界为目标,而软件却要求人类以计算机为工具来探究我们自己的思维。一方面,人们对这样的事情还很缺乏经验,另 一方面,软件的规模越来越大,应用越来越广,在现代社会中扮演的角色越来越重要,因此,我们就必须不断地加深对软件的认识,并革新软件开发的思想和实践。 近五十年来,软件技术的革新每天都在进行,然而,目前的技术发展却呈现出前所未有的局面。 自2002年至今,软件技术各个领域中的演化、进步和革新越来越频繁,越来越激烈。这些新技术、新方法每一项单独去看都意义重大,都是对过去50年软件开 发传统的变革甚至革命。例如,在软件设计 ...
三次法则    第一次做某件事时只管去做;第二次做类似的事会产生反感,但无法如何还是做了;第三次再做类似的事,你就应该重构。添加功能时一并重构修补错误时一并重构复审代码时一并重构
改进软件设计   一项主要的工作就是删除重复的代码使软件更易被理解   为了给将来的自己看,给另一个guy看。然后,你会看到更深远的东西。“擦掉窗户上的污垢,使你看得更远”。助你找到bugs    Kent Beck:我不是个伟大的程序员;我只是个有着一些优秀习惯的好程序员而已。重构能够帮助我更有效的写出强固稳健(robust)的代码。助你提高编程速度    良好设计是快速软件开发的根本。事实上拥有良好设计和可能达成快速的开发。如果没有良好设计,或许某一段时间内你的进展迅速,但恶劣的设计很快就让你的速度慢下来。你会把时间花在调度上面,无法添加新功能。修改时间愈来愈长,因为你必须花愈来愈多的时间 ...
 IT人员,特别是作项目管理的,难免会提出一个问题:客户为什么总是反反复复。有感于自己的多年电信行业项目管理实践,也谈谈工程性项目的变更需求管理。  我从2001年开始,一直从事电信行业项目管理。在自己的软件项目管理职业过程中,几乎天天面对用户的需求变更,切身感受到,如果不能有效处理这些需求变更,项目计划会一再调整,软件交付日期一再拖延,用户的耐性渐渐消逝,研发人员的士气也越来越低落,最后所有的人都在等待一个结果:项目最好马上结束。  在讨论问题解决之前,我们先了解一下目前在电信行业的需求变更。大家一向认为需求变更对开发商或集成商来说是个非常负面的因素,对项目来说是个巨大的风险。但现在很多一级 ...