这当然不是一个简单的答案。以下是我权衡的一些事情以及我做/鼓励的事情,以确保事情按时完成。
1.) 正确设置优先级。项目总是会有不同程度的完成。这不是二进制“完成”/“未完成”开关。如果优先级最高的事情先完成,就更容易下咽。理想情况下,您应该快速达到它可以工作的程度,但它并不能完成我们需要它做的所有事情,而且看起来也不漂亮。在那里,如果绝对需要,它可以被释放。
2.) 我发现处理它的最佳方法是使版本尽可能小。这使得估计更准确。如果你的老板或“市场”认为你的估计是不可接受的,如果可能的话,考虑分配更多的开发人员来完成这项任务。有时一项任务并不能很容易地划分,或者只有一个熟悉代码的人。如果这不是一个高优先级,只需告诉当权者这将需要更长的时间。设定合理的目标和管理期望是关键。
3.) 至于动机、奖励和惩罚……有很多医生就这些主题写了整本书。以我的经验,给程序员一些具有挑战性的东西并让他们有一些自由按照自己的方式去做是一个好的开始。倾听是管理者为了成功而需要做好的事情。如果开发人员经验丰富,您应该能够只解释问题并让开发人员提出解决方案。如果他们的解决方案不如您想象的那么好,您可以提出建议并从那里开始。仅仅指示如何做某事,即使对于新程序员,也很少有效。让开发人员思考问题将有助于他们自己解决问题。这与委派有关,因为只有开发人员可以自己完成工作时才有效。
4.) 如果员工做得好,就给他们高薪,从而减少营业额。找到好人通常要花更多的钱。熟悉庞大的代码库需要时间,招聘过程还可以帮助避免花时间在无法切入芥末的人身上。
5.) 询问(不要要求)开发人员是否可以在周末加班/加班。仅在非常关键的情况下才这样做(例如,安全漏洞使用户可以访问他们不应该访问的数据;您必须遵守的新法律/法规通过;等等)。如果他们说不,不要反对他们。事情没有完成可能不是他们的错。即使是这样,他们也可以合理地安排他们不应该上班的时间。如果他们愿意进来,请确保他们知道您的真诚感谢。在他们没有义务帮忙的时候给予他们很好的补偿,买午餐不会花很多钱,这是一个非常好的姿态。不要养成期望人们工作到很晚/周末的习惯,除非它'
6.) 了解为什么事情落后于计划。您是否承诺了一些不可能的事情(考虑到可用的人员、预期的质量和分配的时间)?有没有其他项目上来占用资源,截止日期没有调整?代码是否比预期的更难?给出时间估计是困难的。您需要计划好一切,拥有经验并知道每个开发人员将花费多长时间来完成任务。补偿可能出现的意外问题,并给程序员比你的老板或客户更早的截止日期。早点做总是好的。而且,如果您几乎总是提前或按时完成,那么如果您有某种解释,那么您错过最后期限的那一次会更容易理解。
7.) 请记住,它通常归结为时间、质量和金钱。您通常可以选择任何两个,但第三个需要平衡等式。因此,如果需要快速完成且预算有限,您可以预期质量会受到影响。如果您需要快速且高质量地完成它,预计会付出很多钱,等等。
8.) 我想说对我有用的第一件事就是倾听。如果您忙于吠叫订单,那么您甚至可能不知道公司的问题。现在仅仅因为开发人员说“代码很烂,设计很糟糕,如果我们想及时完成任何事情,我们需要重新编写所有内容”并不意味着它会发生。但是,如果您听到这样的评论并解释说我们负担不起这样做,否则我们会在市场上被杀,那太贵了。并询问可以做些什么来确保事情不会变得太多/更糟。询问我们是否有办法随着时间的推移对其进行清理。我们可以只(重新)编写一个类并基于它构建新的东西吗?我们可以一次慢慢地迁移到一个新的设计特性/细分/模块吗?您了解它们的来源,反之亦然,您可能至少可以解决一些问题。请记住,妥协是双向的。
9.) 消极的强化似乎会导致更高的营业额,这是代价高昂的。拥有一群不熟悉您的代码的人也无助于截止日期。金钱是一种动力,但我已经辞掉了一份薪水更高的工作,去了一个我以前更快乐的工作,而且我知道我并不孤单。当团队做得很好时,免费的食物并不是那么贵。我不太热衷于团体活动,因为它们要么会缩短员工的时间,要么会占用工作时间。它有时会奏效,但减少员工的私人时间以便他们可以与同事闲逛而不是与他们的朋友在一起并不是那么好的奖励。让每个人都停止工作也很昂贵……所以这取决于公司的规模、文化等。
希望这有助于回答您的问题。该线程中的其他答案也是很好的建议...设计在编写代码的速度方面起着重要作用。