程序员要不要有计划,我的回答是要。
前段时间了解了软件开发模型,其中有一种模型叫Build-and-Fix Model。(百度百科上翻译过来叫“边做边改型”,个人觉得不够贴切,应译为“即做即改模型”)这种开发模型与大多数实际项目的开发情况是一致的,每次都是需求一来就开始做,看看效果是怎么样,做完之后觉得效果不够好,又改需求,不停修修改改,直到期限将近就匆匆忙忙的把项目发布出去,结果一上线就漏洞百出,又要加班修改......(此处省略N字)这种做法对于一些小项目(十个页面以下)倒没什么问题,可是实际做的都不是小项目啊(企业会做小项目吗?),都是中大型项目(二十个页面以上),这种开发模型不适合中大型项目(牵一发而动全身),没办法,所以只能加班工作了。
好吧,现在大家应该知道为什么程序员加班的主要原因了吧。那么应该如何避免加班呢?要解决这个问题,首先就要制定计划,制定计划的前提就是准备写好软件文档(千万不要忽略软件文档的重要性),开发团队应该共同撰写好项目策划书与需求文档,为什么?要把所有的需求整理好才开始做,宁可多花点时间在需求文档上去理解,去构思,也不要急着做开发(最好让团队每一个人都把需求文档重新复述给团队的人听)。第一步做好的话,加班的机率就减少50%。第二步呢?那就是项目模块划分,把项目划分成各个小项目,然后根据队员里面的各自优势分配不同开发任务,比如后端开发,A队员擅长数据结构,就安排数据存储开发任务,B队员擅长逻辑运算,就安排项目的逻辑处理开发任务,让团队里面的人都能各得其所,各司其职。第二步做好的话,加班的机率就减少30%。第三步,注意代码可拓展性,正如eclipse IDE那样,以插件形式进行功能性拓展,从而变成新的IDE。所以尽可能以面向对象的思想进行编写代码,减少项目之间模块依赖,达到软件解耦的目的,这种做法有效应对那些需求变更频繁的项目,利于后期维护。第三部做好的话,加班的机率就减少10%。奇怪了,另外10%加班的机率呢?来,马上告诉你,10%就不确定的因素,比如说A队员有事请假,为了避免拖延项目进度,就要B队员顶上工作,或者出现一些技术上的难题需要花更多的时间研究解决等不确定因素。俗话说得好,“计划赶不上变化”。确是,每天都在变化,永远不会有今天的太阳了。所以,程序员每天都会有10%加班的机率需要留下来加班。
可能有人会说:“定不定计划,还是有可能要加班。那还不如不定计划。” 桥豆麻袋,你觉得每天都要加班好,还是偶尔加班好呢?我相信你会有正确的答案。