又一次情绪激动、气氛高度紧张的会议,这一次是商议如何让目前这个重要项目“重回正轨”——计划的完工日期早已超了几个星期。所有的这些场景听起来都很耳熟吗?我想说的是,项目超期在任何行业里都是常见的事情。然而,软件行业里看起来更容易出现这种情况。
我们怎么会走到这种地步的?这还要从我们梦开始的地方说起。所有的开始都是精神抖擞、干劲十足。一个漂亮的创意,这次我们发誓绝不会重蹈上次的覆辙,不会犯上次的错误。这次我们告诉自己,这次的计划将会“正确”的执行,不会图省事,也不会中途变更。经常有时候我们会感觉梦想正朝正确的方向前进,设计很成功,每个人都很乐观,外界评论也很好。然后,噩梦开始降临,因为各种打击开始出现。
系统中最容易的部分却耗用了大家全部的时间。一个微小的疏忽就可能意味着当初一系列简单的假设都不再成立。错误的假设产生连锁效应,导致系统设计陷入死局。需要对设计进行修改来纠正这些问题。希望仍然存在,只要付出足够不眠之夜和周末加班,我们仍然能让项目“重回正轨”。
具有里程碑意义的原型终于诞生了,所有人都充满信心,因为原型表现的非常好。外人不知道这是多少个通宵达旦的努力换来的。很快,“小需求”开始出现。通常的说辞都是从“这有什么难的?”或“这真的很简单!”开始,更经典的话是“如果我们能够…那将会太神奇了”。通过交换意见发现,这些新增的小的功能特征不仅看起来“简单”,而且实际可做。当然,你是不会说不的,然而,历史的悲剧即将重演。
现在,你和你的团队终于回到了现实世界,再次查看这些新增需求。在经过了近距离的观察这些看起来“非常简单的功能特征”后,突然意识到它们并不像起初听起来的那样简单。但为时已晚,你已经答应了这些新修改。
“呯!”你的邮箱通知你有了一封新邮件,真是火上浇油,销售已经向客户许诺。销售向客户谈到了这些“简单”的新功能,而客户提出来更多他们想要的“更简单”的新功能。销售照单全收,因为这些新需求听起来比起初那些更简单。
程序员们,请勇于说不
停,不能这么干
在80年代和90年代期间有一个非常流行的运动口号: “Just Say No”,是用来宣传让孩子们远离毒~品。不管你是否还记得这场运动,它表达的信息是非常有力的。相似的,我们应该使用同样的语气来面对我们遇到的问题。
当然,我并不是在怂恿抵制任何的需求变更。从我的角度,任何需要编码开发的新增内容我都会用红线划分开。但诸如界面或前端内容的修改不包括在内。
任何新增需求在接受前一定要确定相应的充裕的追加时间。内心里对新需求的缺省反应应该是“just say no”。当然,并不需要从表面上暴露这种反应,可以用适当的外交手段达到这种效果。在项目开始之日,任何一个最初没有规划的“需求变更”都要谨慎斟酌。任何后来新增的功能特征都要坚持这个原则。有了这个原则你很容易说出“不”。因为这是一个标尺,所有人都明白,后加的新功能会耗费额外的时间。把这种压力放在客户和老板的身上,要么延缓完工日期,要么放弃另外一个功能做替换。
结论
有各种各样的原因会导致一个软件项目不能按时完工。项目进展缓慢,程序员持续在高强度压力下工作,这使项目开发时间的预估变得更加困难。程序员应该有心理准备,新增需求的情况肯定会出现。把“just say no”记在心里,多少能预防你张嘴就说“行”的习惯。玩枪很危险,给枪加上保险装置,至少能防止伤了自己的脚。
相关推荐
多色主题-程序员简历模板 各不相同10份 多色主题-程序员简历模板 各不相同10份 多色主题-程序员简历模板 各不相同10份 多色主题-程序员简历模板 各不相同10份 多色主题-程序员简历模板 各不相同10份 多色主题-程序员...
介绍了程序员如何进一步进阶提升自己能力的转载文档!真是有效,字字珠玑,大家快来下载啊!
标题“程序员的必备工具”暗示了我们将会探讨一些程序员日常工作中不可或缺的资源和应用程序。描述中提到这只是程序员众多工具的一小部分,这强调了编程领域的广泛性和多样性。标签“程序员必备”进一步明确了我们将...
这种坚持不懈的精神是程序员不可或缺的品质。 再者,程序员必须严谨细心。编程语言有着严格的语法规则,任何细微的错误都可能导致程序出错,甚至引发严重后果。因此,程序员在编写代码时必须保持高度警惕,对每一个...
云同步功能让程序员不受地点限制,无论在家、办公室还是途中,都能够随时随地访问和更新代码笔记。 个性化设置则体现了程序员记事本对用户体验的关注。不同的主题和字体可以满足不同程序员的审美和阅读习惯,提升...
1、有人曾说,做程序员的人,都是疯子,做长了往往入戏太深,成天与代码打交道,话都很少说,所以评论程序员们都是以后连妞都泡不到的人,我听后,我可以这样说,泡妞好比一个方法,他人是学习方法,而程序员呢,是...
总的来说,程序员专用的输入法如精灵输入法,是通过提供高效便捷的编码环境,帮助程序员提升工作效率,减少错误,从而更好地投入到软件开发工作中。这样的工具对于经常进行编程工作的人员来说是非常有价值的。
程序员项目交接文档概要 IT 项目交接文档概要是程序员在项目交接过程中的重要文件,它对项目的开发、测试和维护起着至关重要的作用。本文档概要将对程序员项目交接文档的主要内容进行概要介绍。 人事模块是程序员...
工作日志是程序员日常工作中不可或缺的一部分,它可以帮助程序员更好地管理自己的时间、提高工作效率、记录工作进度、总结工作经验等。本文档是一个程序员工作日志示例,旨在帮助程序员更好地管理自己的工作,提高...
java程序员面试交流项目经验java程序员面试交流项目经验java程序员面试交流项目经验java程序员面试交流项目经验java程序员面试交流项目经验java程序员面试交流项目经验java程序员面试交流项目经验java程序员面试交流...
程序员简历程序员简历.pdf
具体来说,被打扰后,程序员需要重新激活大脑中处理当前任务的认知资源,这包括回忆之前的工作思路、重新理解上下文以及恢复在心流状态下的直觉和节奏。这个过程可能需要10到15分钟,有时甚至更长。而中断的频繁发生...
本书对于即将从事Java职业或初步从业的程序员来说是一本难得的好书。从生存、制胜、发展三个方面入手,为大家展示出程序员求职与工作的一幅3D全景图像。本书中既有在公司中的生存技巧,又有高手达人的进阶策略,既有...
在这个过程中,程序员不仅要掌握扎实的技术知识,还需要了解所服务行业的业务流程和管理知识,从而在技术实现与业务管理两方面都能够得心应手。成为行业专家需要一个长期的、艰苦的过程,期间,程序员必须戒骄戒躁,...
沟通与协作能力也是现代程序员不可或缺的部分。编码不再是单兵作战,团队合作和跨部门协调成为常态。学会清晰表达自己的观点,理解他人的需求,以及使用版本控制工具(如Git)进行协同开发,都是提升团队效率的关键...
2000-2010历年程序员考试真题,对软考程序员的一些试题总结,包含答案;程序员考试上午科目和下午科目的考试形式与考核内容已经趋于稳定,考生应紧扣考试大纲和指南,有针对性地进行学习。
最后,《程序员的呐喊》还收录了他写的Google面试攻略,这篇文章可以说为无数应试者点亮了明灯。 《程序员的呐喊》讨论的都是程序员非常关注的热点话题,内容广泛,观点独到,非常适合广大程序员阅读参考。
文件系统和操作系统知识也是程序员不可或缺的部分。教材会讲解文件操作、进程与线程、内存管理以及I/O模型。了解这些知识能帮助你在实际开发中更好地与操作系统交互,优化程序性能。 数据库是很多应用的基础,因此...