您在一个包含 7 个独立模块的重要项目上工作,但您没有足够的时间及时完成该项目。摆在你面前的是一个选择:完整完成 3 个模块,或者同时开始所有 7 个模块的工作,但没有在计划时间内完成任何一个。你选择哪种策略?
6 回答
向经理说明情况,让他决定。这就是为什么他在那里。
如果您负责,那么您需要考虑所有可能性。我想说的是,首先关注客户的需求,然后完成第二优先级的功能。如果可能,与他们交谈、解释并尝试达成协议。客户可能对他最需要什么有不同的看法,并为您提供集中精力的方向。
哪个对客户/企业更好。如果有可能让所有 7 个“功能”处于半完成状态——那就去做吧。如果他们更喜欢 3 个精致的“功能”,请走这条路。
这取决于您的客户重视什么。
模块真的独立吗?它们是否真的完全需要,或者即使部分实施它们也能提供价值?
一个有用的策略是在整个系统甚至一个模块上实现垂直切片,而不是模块的水平层。一次实施一个端到端功能/用例/用户故事。为您的客户带来价值的是这些功能,而不是模块(除非客户是奇怪的一个重视模块而不是功能的客户)。这样,您就可以为测试和发布准备好有用的东西,而您的时间不会花在编写任何人都不使用的代码上。但是,在添加新功能时,您需要继续重构代码库,以避免烟囱式系统反模式。
无论如何,仅将 7 个模块实施到一半是没有答案的。无论你做什么,第一次就做对。(“正确”当然取决于上下文:不同的标准适用于一次性原型、生命关键的生产代码以及介于两者之间的所有内容。)
完成3。
然后可以将它们发布给客户进行测试,然后您可以开始处理其他 4 个。
这在很大程度上取决于您的开发模型和客户要求。在敏捷环境中,我宁愿展示完整的产品(即使是未完成/模拟的部分),以便客户对它有一个完整的印象,并可以就未完成的模块给你早期的反馈。
但是,如果有明确、精确的规格,那么交付 3 个成品模块可能是一个更好的主意。
客户清楚地知道他想要什么,我的工作是向他展示一些能吸引他注意力的东西,并给我额外的时间来完成项目。每个模块需要一个月的工作,但三个月后客户决定是否继续合作。用户界面是他唯一感兴趣的东西。如果他没有在屏幕上看到它,我无法向他解释我花了两个月时间制作引擎。