Project management 如何扭转代码退化?

Project management 如何扭转代码退化?,project-management,Project Management,想象一下下面的场景:要求您自己从Scrath开发一个工具。你提出了一个原型,他们很喜欢。 尽管有种种困难,您的原型仍然存在并成熟。有一个代码审查,一切看起来都很好。你的经理 拍拍你的背。不幸的是,当被问及测试版发布日期时,你低估了完成看起来只是一点点额外工作所需的时间 你会意识到,如果你不把这些特性加入其中,你就会错过最后期限。不管怎样,你都要违背自己的最佳判断。 Beta版发布了,看起来还不错,没有人怀疑它背后的丑陋。您在测试工具时修复它的计划失败了,因为 您正忙于修复小问题和添加测试人员建议

想象一下下面的场景:要求您自己从Scrath开发一个工具。你提出了一个原型,他们很喜欢。 尽管有种种困难,您的原型仍然存在并成熟。有一个代码审查,一切看起来都很好。你的经理 拍拍你的背。不幸的是,当被问及测试版发布日期时,你低估了完成看起来只是一点点额外工作所需的时间

你会意识到,如果你不把这些特性加入其中,你就会错过最后期限。不管怎样,你都要违背自己的最佳判断。 Beta版发布了,看起来还不错,没有人怀疑它背后的丑陋。您在测试工具时修复它的计划失败了,因为 您正忙于修复小问题和添加测试人员建议的功能


在这一点上,您意识到您的代码正在变成一个幻想。您担心代码的可管理性和可伸缩性。您确实想要重构它,但这会使它看起来好像您没有添加任何新内容,因此没有做任何工作。你是怎么做的?

检查一下

如果这个项目是要发展的,也就是说这不是它的最后一个版本,而且可能会增加新的功能,我建议你准备好与你的老板谈谈项目的当前状态


引起他们的注意,并与他们分享项目是如何形成的,并向他们解释(使用你最好的沟通技巧),这是项目起源的固有特征。有时会发生这种情况,代码重构就是针对这些情况的。

下次不要低估功能所需的时间。估算有点像一门黑色艺术,你有99.9%的机会出错,诀窍是以积极的方式出错

如果你估计有2周的时间来做一个改变,然后你的老板会因此而爱你,即使你几乎要自杀,每天工作18小时才能实现。如果你只估计了4周,三周就完成了,你的老板也会同样爱你,即使你比第一个例子花了50%的时间


编码时需要多种技能,能够用指定的语言写作只是其中之一,另一个是能够管理期望。你永远也无法准确地理解它,但掌握好它会让你的生活更轻松,工作更愉快。

我建议让你的老板知道代码是为原型编写的。 不幸的是,您没有预见到程序现在所经历的成熟率,因此,您需要重新审视应用程序的核心并优化/改造其基础,以使程序具有更大的可扩展性。清楚地表明,在设计基本系统时,您所填写的新功能请求并不是计划的一部分。因此,重组是必要的,以确保这些更改和未来的修改不会因为用户会发现您可能无法在开发环境中重现的随机错误而导致应用程序无法使用。强调当前系统“可以”这一点(不要暗示您没有正确地完成工作),但是您建议进行的更改将提高其可扩展性和可靠性,以便添加新功能和解决未来问题


:)

在处理大型项目时,始终尝试随着时间的推移分散您的可交付成果:

  • 在第1阶段发布功能1、2和3
  • 保留第2阶段的功能4和5等
确保只在第1阶段完成后才开始规划第2阶段,在第2阶段工作时,确保有时间完成第1阶段剩余的松散部分

而且,正如zcourts所暗示的,原型和生产系统之间有一个根本的区别:原型用于验证推理或规则,生产系统使用已验证的规则。切勿跳过验证和应用之间的步骤

这有意义吗?

可能是@Borealid的复制品:这是一个“怪物”,比波斯特描述的要少得多。第1课:在管理者的心目中,没有原型这样的东西。