我在专业软件开发领域已经有5年多了。多年来我遇到的一种强烈的挫折感是,当我正在开发的软件产品变得不稳定、脆弱和受到损害时。当然,这似乎总是发生在我急于开发几个新功能,并满足一个非常积极的,似乎武断的最后期限。
新特性需要仔细的设计、扎实的开发和彻底的测试。然而,遵守最后期限的重要性损害了这些进程中的每一个,导致了极其脆弱的应用。
作为一名开发人员,我对自己的技能和经验很有信心,而且我知道,在适当的环境下,我可以生产出一个很棒的软件产品。但是当这些项目出现的时候,我不可能把我的工作做好,我也不能支持我的工作。
伟大的软件公司如何处理这个问题,从而最终的结果是一个伟大的产品?
发布于 2015-09-21 07:38:39
伟大的软件公司如何处理这个问题,从而最终的结果是一个伟大的产品?
不同的公司对此有不同的处理方式。
但有一点要注意的是,总会有妥协的。你很少有时间去做完美的事情。您几乎总是会包含一些似乎毫无意义的功能。
这些东西不应该使你的软件不稳定或脆弱。这些事情不应该涉及死亡游行到最后期限。这不是妥协。
在解决双方的需要方面,正在达成一些折衷办法。
发布于 2015-09-21 07:58:32
测试。
如果您完全测试您生成的每一段代码,那么您可以对它有信心。
如果测试失败,您可以明确地说,有一个错误,企业可以作出决定,以适应这个错误,但你会把它找出来。
如果您希望有时间编写更多的测试,但业务不会让您有这段时间,您可以合法地说,您不自信,因为它没有测试。(确保您可以在自信之前列出要运行的测试!)
但在某一时刻,你必须完成一些工作,你很高兴地说,这符合要求。
当然,与此齐头并进的还有需求。我认为这往往是因为devs被告知要生产满足高要求的产品,“我们需要支持10亿用户!”而实际的需求却要低得多。“为什么要花这么长时间?!我只需要在下周的展会上为5个用户演示一些东西!”然后它就会上线,你可能会被抓到,‘我们说了10亿用户!!它只掉了一百万!’
一个好的开发人员能够做的事情之一就是在要求业务不能告诉你的需求和好战的样子之间走一条很好的线,只是想出一些演示,但在生活中不会是一个很好的产品。
https://softwareengineering.stackexchange.com/questions/297824
复制相似问题