当开发人员说:“我们做不到……”

当开发人员说:“我们做不到……”
Stan Hanks撰写的软件工程(不仅仅是编写代码)。 最初发布为“作为非程序员,我如何确定时间估算和注释(如“我们不能那样做”)是正确/准确的? Quora上

对于非程序员而言,很难理解开发软件的复杂程度。 您只是告诉计算机该怎么做,对吧? 那有多难?

嗯,这很难做到,因为计算机完全缺乏理论家所描述的知识框架。 例如,我可以要求您做一些简单的事情,例如“给我火腿三明治”。 您可以快速了解我的意思是“去厨房,做一个火腿三明治,把它拿来给我”或“在街上到熟食店,点一份火腿三明治,把它拿给我”,在我们实际遇到的情况以及在最近几次提出请求之后发生了什么的情况。

在厨房的情况下,您可以进一步了解是否需要去冰箱,找到火腿,白切达干酪(因为您知道我喜欢那个,而不是美国人),Djion芥末酱(因为您知道我就像在我的火腿三明治上而不是在蛋黄酱上一样),找到一条面包,组装整个东西,放回配料,弄清楚盘子在哪里,把盘子放好,然后拿出来。 而且,如果您超级观察,您会注意到我跳过了整整一整步的步骤,例如知道要使用多少芥末酱,从奶酪薄片上取下保鲜膜,将多少火腿放入三明治中。 ,实际上是一个三明治,因此实际上是什么“火腿”……

在编写计算机程序时,您会跳过那微小的微小步骤中的零。 如果您无法完全指定任何看起来微观上对您而言直观可见的小步骤,作为人类,您将生活在一个充满上下文和细微差别的世界中,那么计算机要么做错事,要么失败,或者有时两者兼而有之。

作为非程序员,您可能是在告诉程序员您正在与之合作,例如“可以扩大窗口范围吗?”之类的事情。 或“用用户的名字为用户打招呼”或“让用户在其Facebook页面上发布该信息”或类似含糊的内容,而计算机却对此一无所知。

对您来说,这很直观,而且看起来很简单……那是什么问题?

问题在于,负责此工作的程序员需要处理多个层次的复杂性。 这些天来,他们肯定并不会自己编写所有代码-他们使用了第三方提供的一个库(由他人编写的代码块来解决常见问题,通常是免费的),几乎可以完成所有繁重的工作。 通常,它涉及多个库,因为存在各种依赖性和相互依赖性。

因此,当您说“让他们在Facebook上发帖”时,您必须意识到他们会查看您的请求并认为“哦,当然,这很容易,也许-我已经在此数据库中找到了数据,我“我认为我们已经在数据库中保存了他们的Facebook信息,我认为我们已经为此找到了合适的库,是的,应该很容易”,这导致了对所需时间的乐观估计。

只是发现发现他们进入其中时,一个或多个假设是错误的,或者发现使用他们需要使用的库意味着他们无法使用他们正在使用的其他库的版本。意味着他们需要升级到当前版本,这意味着重写使用该库的代码中的所有其他内容(请注意,这些都与您的请求没有任何关系),然后在还是他们发现他们认为自己可以使用的东西现在已被弃用,现在他们需要去寻找其他库,然后再将它们与他们使用的其他所有东西进行权衡以求兼容性……

一旦发现核心假设是错误的,您就会看到复杂性如何爆炸。 进入时,这些假设似乎是有根据的并且是合理的,但是当您到达那里时,就没有那么多了,而且直到尝试为止,您才知道。

我曾经工作过的最好的程序员会以免责声明来开始他们的时间估算,例如“假设X,然后……”或“缺少某些无法正常工作的文档……”。 或类似的东西。 他们从经验中知道,总是有一些东西躺在水下等待,就像一只北极熊在等着他们,毫无戒心的海豹正在吞噬。 他们为这种必然性做好了“客户”的准备。

经验不足的程序员对自己的能力有信心,既能够执行和完全理解需要完成的所有工作,又不会那么谨慎,他们会说“是的,肯定会花一周的时间”。 有时,他们很困惑,并且预算中有足够的额外时间来应对意外情况; 有时候,他们没有。

因此,“无法完成”值得考虑。 实际上,在软件中几乎可以完成任何事情。 因此,从表面上看,这几乎总是错误的,除非您要寻求解决已知的棘手问题的方法。

因此,需要进行一些翻译。 当程序员说“无法完成”时,它几乎总是意味着“鉴于我凭直觉所理解的实际操作约束,我无法在此工作,因此很难解释所有这些内容。对你来说,我的头会爆炸。 走。 远。”

如果您有很多“无法完成的事情”,那么现在就该重新评估您的期望,以及程序员工作的环境。 他们不够,他们没有合适的资源,您在推动事情上太努力了,以至于他们无法在实际问题上取得核心进展,这是不对的。

与其沮丧和怀疑,不如说是“好,这件事有什么可能呢?”。 您将获得更多的收获,并希望有机会解决正在酝酿中的难题。

Stan Hanks撰写的软件工程(不仅仅是编写代码)。 最初发表Quora上
有关Quora的更多趋势技术答案,请访问HackerNoon.com/quora

From: https://hackernoon.com/when-a-developer-says-we-cant-do-that-d3a272034668