当我之前问过负责缓慢的软件时,我收到的一些答案表明这是一个社会和管理问题:
这不是技术问题,而是营销和管理问题.实际上,产品经理有责任为用户应该得到的东西编写规范。很多事情都可能出错:产品经理未能在规范中添加按钮响应.QA人员对规范的测试工作平庸.如果产品管理人员和QA人员都睡在方向盘上,我们程序员无法弥补这一点。-鲍勃·墨菲用户开发大型应用程序。当它们工作时,性能问题就像bug一样悄然出现。不同的是--虫子是“坏的”--他们喊着“找到我,然后修复我”。性能问题只是坐以待毙而变得更糟。程序员经常认为“好吧,我的代码不会有性能问题,相反,管理层需要给我买一台更新/更大/更快的机器。”事实是,如果开发人员只是周期性地寻找性能问题(这其实很容易),他们可以简单地清除它们。-迈克·邓拉维
那么,如果这是一个社会问题,那么一个组织可以建立什么样的社会机制来避免向客户发送缓慢的软件呢?
发布于 2011-09-28 20:50:44
有了正确的编写和完整的需求,就没有错误和糟糕的性能之间的区别。因为您将性能指定为非功能需求,与任何其他bug一样,较差的性能会成为一个bug,并且会被QA捕获,并在发布前由开发人员解决。
有社会问题吗?我不这样认为。主要的问题是需求是不完整的。作为自由职业者工作了多年,我从来没有见过一个非功能性的需求告诉我们,一个特定的任务必须在平均N秒内完成。如果经理/客户/涉众或任何其他人不关心性能资产,为什么我,作为一个开发人员,会关心它,因为那些必须关心它的人根本不关心它?
还有一个影响性能不佳的因素:开发人员在性能良好的昂贵个人电脑上工作。当你在一台拥有8GB内存的四核PC上工作多年,一个高端的SSD,最新的操作系统等,很难想象你的应用程序将如何在Windows XP上运行在双核PC上,双核计算机上有512兆内存和90%的旧硬盘,而且几年内没有碎片化。不幸的是,在一些国家,我们看到的最后一个例子是应用程序的大多数消费者。开发者个人电脑和消费者电脑之间的差距越大,开发人员就越难处理应用程序的性能问题。
发布于 2011-09-28 20:45:52
问题是:
你必须从一开始就开始,教育顾客。但是如果他们买的是iPhone,而不是一部更快、不那么闪亮的手机,那么开发者们花时间在外观上而不是性能上是对的。这个组织不是问题所在。
当然,有些事情还是有帮助的。等待自动化测试是很烦人的,所以如果您有自动化测试,开发人员会不断地反馈性能问题,并且他们更有可能解决它(作为技术问题,而不是作为特性)。
但你不能什么都做。它优化或增加功能,而那些花钱的人决定。
但也有一些好消息:我注意到SaaS/Cloud/Buzzword-应用程序在这里有很大帮助。当人们选择在几个类似的web应用程序之间进行测试,而不是首先创建“所需”功能的人工列表时,它们会更快地受到响应性的影响,因此性能将得到更多的关注。
发布于 2011-09-28 20:34:44
遗憾的是,我发现最大的问题是你不可能什么都做。你有一个船舶日期,你知道这是缓慢的,但你需要得到的特点X,Y,Z的市场。
在你的头脑中,慢慢来,你可以稍后修复,但应用程序至少可以工作。
因此,您需要考虑功能和美学(因为用户经常关注美学)。下一个版本您将修复性能。
但是PM只是给了你一系列的功能,没有时间去修正性能。
恶性循环还在继续。
https://softwareengineering.stackexchange.com/questions/111380
复制相似问题