当你面临一个不合理的项目要求的时候该怎么办呢?你可以只是集中于项目技术方面的挑战而后不管那不合理的时间估算,但是那对你的职业生涯不会有任何好处。
幸运的是,有这种方法的替代品。下面是几个建议,给那些希望不论遇到了什么样不可能完成的要求也希望达到他(或者她)的企业的目标的开发者--这些开发者还会希望避免由于这种不现实的时间表而造成的大量延时。
功能选择
非常有可能的是,你要在很短的时间内开发一个或者多个功能。市场部分告诉你所有这些功能对于产品的成功都是关键性的。在市场部严密的分析下,它认为每一个功能都是“不可或缺。”(如果这总是对的话,那么为什么在临近时间期限的时候,有那么多的功能因为赶工期而被删除了呢?)不是所有的功能都一样重要。从技术的角度讲,精密的评估哪些功能是容易实现的,哪些是比较难以开发或者哪些功能在稍微修改一下需求以后会变得更容易开发的这个过程是非常重要的。
与那些项目的使用者以及那些对商业问题有一定见解的人一起工作,你就会明白哪些功能具有更高的优先级。在你的技术评估和他们的商业需要之间,你应该要能够分辩出哪些功能是最划算的。
在项目中早早的将那些垃圾功能转包给别人是不可能的,但是一旦你预先知道了什么是关键的什么又不是关键的,你就能以更聪明的方式完成这个项目。只要你作了这种功能选择,你就能够开发一个原形计划。
准备好一个发布版本
在面临一个不合理的项目截止时间的时候,你必须总是为你的应用程序保持一个工作版本。然后快速的工作!你可以开发一个包含了最容易的功能的初始原型。第一个原型的目标是建立快速的成功并获得项目向前发展的正面的推动力。一旦第一个原型以经完成而且工作正常,那么你就可以开始在原型中加入更复杂的功能了。原型下一个循环的目标是更好的理解更复杂的功能。把阻止你开发这些功能的东西列在表上然后在你开发未来的原型的时候尽量为它们找到答案。
使用这种方法,你将总是有一个可以发布的程序。如果在你全部完工以前规定的时间到来了或者有人提前了时间,那么在这个时候你还是有一些可以摆出来的东西。如果你不用这种方法,那么你有可能完成了百分之八十的任务但是没有什么可以实际使用的东西来展示你的成果。另外一方面,如果你的屏幕上只是缺少几个菜单选项,PF键,或者控件,那么也比不得不到处游说来延长工期要强得多。