当您的“失败”项目实际上“成功”时该怎么办?


14

如果您正在处理的项目的建造情况很差,将来会失败,并且是维护的噩梦,那么您会怎么做……但是由于客户将其视为管理的“成功”开心?

我应该不在乎吗?客户甚至没有意识到他们可以拥有比这更好的应用程序吗?

在什么时候我不再关心正确构建它,而是顺其自然?

Answers:


37

如果客户满意,那您就做对了。很多人喜欢热狗,却不知道它们是怎么制成的。

如果应用程序是一个很好的解决问题的办法,但你担心基础是错误的,搞清楚如何改进的东西增量和音高来实现这些改进为你更新产品的计划。增量是关键:如果您想重写其中的全部内容,那么您的经理会正确地说那是不合理的。完美可以成为善良的敌人。查找jwz关于Netscape如何让IE领先的故事,因为他们“不得不”重写Navigator。

如果应用程序的UI本身就是一团糟,那么客户可能仍然会很高兴,因为他们正在将其与“艰难的方式”进行比较,即使是有缺陷的程序也可能比这更好。您正在将其与您可以想象的理想进行比较,因为您的背景和技能。再次,考虑如何以渐进的方式改进事物,并将其作为计划的一部分。

不要停止关心:您希望自己的工作做到最好。但也要记住,是客户支付账单,而您是在为他们编写软件,而不是您。


嘿罗伯特,感谢您添加该链接。我在iPhone上打字,不想进行上下文切换来查找它。
benzado 2011年

1
相关内容:乔尔·斯波斯基(Joel Spolsky)的《胶带录音机Zawinski的回应
benzado 2011年

另外:jwz的Groupware Bad。(对不起所有链接,我现在很开心重新阅读它们……)
benzado 2011年

我使用的软件已经有20多年的历史了,已经过了很短的使用期限,而且开始时的书写不佳(即使按20年前的标准)。(“这段代码是狗的早餐-现在是晚餐时间”这是一个令人难忘的报价。)如果要花大量的钱-维持其应有的价格的10倍,但是进入竞争的门槛异常高,因此客户只需付钱即可。替代者是具有类似软件和成本结构的竞争者。这是印钞的许可证,这就是为什么企业编写软件(如果他们追求卓越技术的话)将破产。
mattnz'8

4

对他们来说,这不是一场噩梦。这对您来说将是一场噩梦,他们似乎认为您知道自己在做什么,因此它将得到解决。您希望那些不懂编程的人认为您的应用比实际更糟吗?这也不例外。当你有空的时候好好享用它。您最好希望客户不再使用此应用程序。他们可能会朝着另一个方向发展,以至于这绝对是没有用的。您可能出于完全不同的原因重写它。


3

即使您似乎已经停止了高层管理,我也不认为您应该停止关怀。我认为,从这种经历中获取的重要内容是记住并记录所有您认为出错的事情。最终避免将来犯下这些错误将得到认可,如果不是当前的这组经理,也许是您所工作的下一组经理。


2

我将开始为下一步的开发提出想法,包括进行重构以提高代码质量。远离过于深入的技术细节,但要指出您建议的修复将意味着继续客户满意度。准备将清理与新功能混合在一起,因为管理层将一直在寻找新的东西来出售。

通常,除非出现问题,客户才会关心维护。理想情况下,您的公司会关心它的声誉,并希望通过维护代码来保护它。

但是-如果将该产品视为非常短期的产品,那么正确地实施该产品可能实际上没有任何附加值。在这种情况下-寻找便宜的修补程序-毫不费力的事情对于开发人员的理智具有重大价值。


2

你不知道 您可以利用成功来确保资金/许可/买入,以开始重构技术上正确且易于维护的产品。或者,您可以使用成功从“我要维护旧代码库”部门中晋升。


0

也许您的优先级/观点是错误的。

任何软件项目最重要的是,它满足用户需求。

根据本月的C / S设计方式,这比“正确”重要的亿万倍。

是的,您应该使用正确的设计模式,正确使用技术等。但仅限于以健壮和可维护的方式更轻松地满足用户需求的情况。

真正满足业务需求的真正写得不好的系统总是比没有人想要或有任何理由要使用的写得精美而精美的代码段更好。


0

尝试与当前用户进行沟通,并询问他们认为哪些方面需要改进。然后,您可以改进一些您认为需要改进的方面,也可以改进用户提出的方面。您可以将自己的改进作为“实施用户建议的改进所必需的”

例如:如果用户认为搜索功能很慢。您可以通过创建更好的数据层(显然可以提供更多服务,而不仅仅是搜索)来改善这一点,然后您可以证明花费的时间是合理的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.