在软件开发中如何驯服时间

这是一篇视角较为独特,又比较有意思的文章,来自代码麻雀,原文标题为《如何在软件开发中与时间限制和平相处》,来看一下有没有产生共鸣的地方。

作为开发人员,这是您可能遇到的最大噩梦之一。也许是你的敌人?由您决定如何称呼它。每个人对恐惧都有自己的定义。当你读到最后期限时,你的头发站着意味着什么?我们怎么知道呢?我们以前也有同样的感觉,并且已经与时间限制和平相处。这只会帮助你;拥抱他们,与他们和平相处。

设定最后期限很难,因为有些事实我们往往会忽略。我们的目标是向您展示事实,以便您可以看到在处理项目时,截止日期不必是可怕和有趣的。

在轻松的环境中工作

不要着急。不要施加任何压力。

您需要了解的第一件事是,创建任意的最后期限并迫使您的员工快速工作并不能帮助您实现安宁。一些企业使用高尚的言辞和非理性的展示来激励员工采取行动。即使团队在某些事实上达成了一致,如果你所说的与事实相去甚远,你怎么能指望他们接受你呢?

如果没有设定的,最重要的是,合理的最后期限,你就无法安静地工作。在这种情况下,关键是要保持冷静。当你不信任截止日期时,当你被告知要快速完成所有事情时,当额外的工作被添加到项目中而没有为你提供更多时间时,或者当发生任何这些情况时,你就会开始疯狂地工作。这不再有效。地狱就是这样。

压力和压力会阻止你提高工作效率,冷静和有意识可以让你更有意识,这让你做出更好的判断。

我们的估计很糟糕

Windows的用户会回想起该窗口对话框。对话框中的估计值是否与我们的估计值完全匹配?

说实话。我们做出了糟糕的估计。我们相信我们可以预测某些事情需要多长时间。我们倾向于认为我们的预测会成真。

然而,大多数时候,当我们做出假设时,我们没有考虑到某些关键因素。为什么?由于我们的过度自信。

我们认为,承认我们是可怜的估算者是接受最后期限和提高我们确定最后期限的能力的第一步。当你接受这个现实时,你会意识到它的未来,并且不会低估需求。以下是提高估算技能的方法:

将大型项目分解为较小的组件。

估计较小的东西更简单。

因此,您做出更准确预测的机会将会增加。

够好就好了

完美是好的敌人。

大困难吸引着人们。我们擅长为一个简单的问题提出复杂的解决方案。不过,这是一个事实:

每个问题都有一个你可能忽略的简单答案。

不要试图找到理想的答案。您的初始草稿不必完美无缺。构建功能性半成品。如果你等待太久,你会浪费你宝贵的时间和稀缺的资源,错过最后期限,或者在最坏的情况下,因为你追求完美而什么都不做。答案是:

找到一个将使您受益匪浅的解决方案,只需要少量的工作。

请记住,优秀可能会在未来变得伟大。

不要太乐观,要合乎逻辑

我们经常遇到过于乐观的经理,他们使用不切实际的时间表来激励他们的团队。这是不正确的。我们并不是在提倡你对未来有负面的看法。相反,我们建议您需要能够识别任何潜在的瓶颈。一旦你能看到它们,你就可以把它们考虑在内,并得出更精确的评估。

该组织分为许多团队。工程、商业化、市场营销等您不应该受到业务开发团队要求在不久的将来为他们提供最后期限的影响。他们急于尽快完成工作。

考虑这样一个事实,即每个团队都考虑自己的一方。

区分“可以做”、“想做”和“必须做”

重要的是要理解。推出产品的基本条件是什么?产品团队通常会发现区分它们具有挑战性。

其中一位团队成员会在会议上说,“我们可以实现它,它会给我们带来那么多的价值”,或者“我们应该把它放到发布中”。他们正在从自己的有利位置观察。好吧,我们可以使用它,它将使我们受益,但关键问题是:“我们现在可以使用它吗?在初始迭代中?

在大多数情况下,响应为“否”。

你应该集中精力的是手头的任务,消除您希望执行的选项和活动。

大多数时候,它们甚至无法谈判。

默认说不

当我们对任何事情说“是”时,我们经常会忽略一个关键方面,我们正在拒绝我们已经必须完成的任务。

当你对任何事情说“是”时,你不会考虑接受任何新事物会如何影响你已经存在的待办事项列表

“确定结束日期后,让我们向项目添加更多任务。(随着时间的推移,你的项目应该减少而不是增加)”。不。

“好吧,所以我们专注于重要的事情。但是,具体细节呢?让我们想想我们所拥有的细节,这些细节可能会在以后引起问题。

对于初稿,请忽略每一个具体细节。永远不要试图预见未来。

这里的问题是没有为事情找到额外的时间。要完成的工作实在是太多了。分别定义“必备”和“可有可无”。

少做是完成更多工作的唯一方法。

从不重新安排最后期限

我们观察到开发团队有一个可怕的习惯,可能会对其产品开发产生负面影响:推迟最后期限。

他们在错过原版后建立了一个新的截止日期。如果他们无法达到当前目标,他们会建立一个新的目标。他们一直这样做,直到它成为习惯。有害的做法最终成为他们文化的一部分。因此,开发人员的工作受到组织内部其他团队的质疑。更糟糕的是,开发团队可能会停止对彼此的信心。本身也是如此。

这实际上是承认未能改变最后期限。诸如“我们没有计划需求,我们没有说不够,我们没有专注于什么重要,我们推动我们的团队在不合理的时期内完成不合理的任务”之类的陈述。

认识到肯定会有一些问题

当你过于乐观时,你没有认识到可能存在问题。注意。有些事情可能会出错。因此,您将不得不花费更少的时间来纠正问题。因此,最好为负面结果做好准备。我们并不是提倡你试图预测未来,保持悲观,或者用对未来的了解来武装你的团队。只需在希望和悲观主义之间取得平衡。要理智。

我们自己的经验告诉我,在软件开发过程中,错误是不可避免的。我对你的建议是:

在确定截止日期之前,请提供额外的时间来说明任何问题。

不要向项目添加更多人员

许多人认为,通过引入更多的工人,这个过程可能会加快。然而,他们忽略了一个关键因素。让我们记住布鲁克斯的规则:

当添加人力资源时,后期软件项目会进一步延迟。–弗里德·布鲁克斯

根据维基百科上的Brooks的说法,有一个增量个体,当被添加到一个项目中时,会导致它花费更多的时间而不是更少的时间

  • 新项目参与者开始产生结果所需的时间。你需要首先教育他们。您已经拥有有限数量的人力资源,因此您需要使用它们来培训新成员。此外,由于它们是新鲜的,因此它们将呈现新的错误,从而延迟项目的完成。
  • 随着人口的增长,通信成本也在增加。
  • 高度分散的工作,如清洁酒店房间,当更多的员工被添加到其中时,总体上需要更少的时间。其他任务,例如软件项目中的众多专业,则不太容易划分。布鲁克斯对此的另一个很好的例子是,“九个女人不能在一个月内生一个孩子”,即使一个女人需要九个月才能生下一个孩子。
  • 理查德·道尔顿(Richard Dalton)提供了以下进一步的证据,为什么不应该添加更多个人:

    团队是不可变的, 每当有人加入或退出时,你的团队就会更新,而不是从头开始创建。

    不要拖延

    请允许我们解释我们对您的意义。我们上周举行了一次会议,讨论为我们产品的全新功能设定时间表。我们正在讨论哪些活动应该首先完成,以及如何有效地完成这些活动。

    我们在一项特定的活动上花费了大量的时间和精力。有三种方法可以完成工作,但我们无法弄清楚。由于开发人员试图预见未来,我们无法做出决定。

    你无法预测你的未来包含什么,尽量不要为不可预见的事情做好过度准备。

    这里讨论的不是很多重要的技术选择。当然,如果你必须选择你的主要技术,你应该在一夜之间思考它,以得出最好的答案。但不要把注意力浪费在小事上。由于后端流程的持续性,不确定的问题会增加会议并阻碍开发。

    不要拖延,做出决定并执行它。

    与其考虑它,不如采用“让我们立即决定”的方法。做出选择会加速你的成功。团队中的每个人都会理解所选择的任何内容。每个人都会确切地知道该怎么做。

    沟通:看看瓶颈在哪里

    你已经准备好了一切。要关注的内容和要执行的操作由您指定。您知道所需的持续时间(可能您错了)。因此,最后期限已经确定。这就足够了吗?

    不。

    正如我们刚才所说,任何事情都有可能出错。可能存在阻止团队成员完成工作的障碍。有些事情可能会阻止他们按时完成工作。您必须确定瓶颈的位置和性质。

    在这里,沟通至关重要。团队需要协调。对于团队成员来说,当他们有时进入一个盒子时,要看到他们盒子外面发生了什么,这可能是非常具有挑战性的。此时应输入方案。找到瓶颈后将其删除,以便您的团队成员可以从停止的位置继续前进

    我们希望您成功地到达每个截止日期。

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2022年8月2日
    下一篇 2022年8月2日

    相关推荐