和我一起工作的一个人给了我一个棘手的技术文章任务。他说我一直说这些东西有多么多么好,但我从来没有触及事情的真实情况:经常,我们日常接触的实际产品并不有效。他向我抱怨说他很厌烦听到说所有这些技术有多么好,这个行业的未来有多么灿烂。他担任过一些大型整合项目的项目经理,他看到的是实际上很少有东西能够实际奏效。他厌烦于听别人吹嘘说这个那个有多好,他催促我写一下我们两个人日常打交道的真实世界。
和往常一样,我不会说出我的朋友所在的硬件或软件环境,不用说,都是硬件厂商提供的大型存储环境,因此这不是复杂的整合项目,而硬件厂商应该知道做什么和怎么去做。
我朋友有一些好的看法。大部分写技术的人在技术上是博学的,但是他们没有实际上部署过技术。营销部门负责让所有东西看起来很容易使用,但是许多时候,尤其是在大型设置上,软件和硬件不会像营销部门所宣传的那样工作。
我给你一些出现这种情况的主要原因:
1.缺少在正确环境下的测试
厂商并没有无限数量的硬件、人员和时间来测试产品。硬件和人员的测试有成本压力,同时也有营销的压力–测试时间太长,你的竞争对手可能会先你一步。因此,厂商必须决定好自己可以在测试上承受多少代价,准备测试哪些东西,哪些东西不测试。我看到过许多测试计划,测试范围通常被时间、人员和硬件资源所限制。新软件技术还有自己的问题,厂商必须开发新的测试方法。
如果有多种设置选择的话,开发人员怎么知道哪些选项应该测试呢?通常,实际售出的设置没有被测试。比如,软件是在旧的AMD或英特尔芯片上运行,而客户买的是新的处理器和新的PCIe总线、存储等。它本来的运行应该是没问题的,但是如果你有复杂的存储应用程序和新硬件,同时整个堆栈有没有被测试过,那么有可能会在新硬件上出现点问题。
2.糟糕的现场沟通
我曾经看到过很多次,尤其是在大公司,开发和测试人员几乎不和现场人员交流。开发和测试人员经常有一堆硬件和软件要处理,而这些硬件和软件必须满足现场的要求,否则有时候不能正常运转。
我朋友曾经碰到过一个情况,他所负责的两个产品设置和厂商正在开发或测试的测试硬件完全不同。现场安装系统的人员是否意识到这种情况?当然没有!然后,在这两个情况下,开发和3层支持人员加入了。简单的事情,比如将系统正确连接到存储以便进行故障复原,就是在正确的顺序下安装一个个包,即使它们都被安装了,还是需要3层支持人员仔细地检查整个设置。
在我的经验中,公司越大,开发单位和现场单位之间的隔阂就越大。哪些东西被测试,设置是如何进行的,哪些东西被推广和销售,这些流程都需要现场组织的大量参与。这种理想的情况很少发生,经常的情况是开发和支持人员都不知道销售人员所销售的产品的设置。无论是正确的还是错误的,销售和销售支持人员知道客户的要求以及哪些硬件可以用。他们根据要求来设置系统。如果你需要很高的GB/秒速度和很高的IOPS,你需要xy和z硬件在这种方式下连接起来。一旦用户发现它不能和软件协同工作,第三层支持人员就会接到求助电话,因为客户很恼怒系统没有像当初承诺的那样工作。
这种情况总是一再发生。
3.过度销售
销售这方的过度销售也不能忽视。销售人员通常是从营销部门取得信息,而后者是从开发和测试部门取得信息。销售人员必须声称这个产品可以由x GB/秒和y IOPS的性能。通常,人们不知道x和y的背景。在哪些条件下可以达成x和y的性能?你能在同一时间使用同样设置取得x和y的性能么?由于每个RAID控制器都可以达成x和y的性能,而你的要求是3x和3y,我所需要的就是3个控制器。
这种想法没有考虑实际应用程序。X和y的性能是在特定设置和特定基准测试下取得的。这不像真实世界的应用。销售团队有压力从客户那里取得最高的价格,因为如果他们不这么做,其他厂商就会这么做。因此他们是根据营销规格来设置系统,结果,系统不能满足性能要求。
支持工程师必须找出原因,让系统满足规格要求。他们意识到这无法完成。然后厂商就发送给客户更多的硬件,因为这是唯一可以满足客户性能要求的方式。销售团队会给公司带来成本,长期下去,这个销售团队可能会被炒掉。
你应该怎么做?
这个部分的标题是你应该怎么做,其实也可以说是什么是你不能做的。首先,我们总是倾向于忽视困难的问题。比如,我们是否不应该问,测试环境使用的是什么?这看起来对我很合理,但是我们经常就是没问这个问题,因为这不是我们的问题,这是厂商的问题。他们销售这个设置,他们就必须让它可以工作。对我来说,问这问题就有点好像是自我满足的先知。如果你不问,他们就不知道,而销售团队从来不会问开发人员。在我看来,这就是自作自受。问一下关于测试设置的问题和安装设置的问题是你的责任。如果厂商团队不理睬你,那至少他们受到警告了。
第二个事情就是客户的责任是从操作条件以及硬件以及你所计划的购买的角度来了解哪些东西被测试了以及哪些东西不同于被测试的东西,详细了解被测试的东西和没被测试的东西可以让你充分了解你所购买的设置的实际风险。
最后,鉴于环境的竞争性,销售人员经常过度销售。有些是授权的,有些不是。如果一个厂商试图卖给你一个产品,而市场上有同等的或更好的功能可以满足你的要求,那么很有可能这个厂商是在过度销售。销售人员都有指标,他们经常会用各种手段来满足指标。
我妈妈常说,真相和责任往往是折中的。客户不一定100%正确,厂商不一定100%错。但我感觉,如果产品不能使用,客户往往只将10%的责任归于自己,而将90%的责任归于厂商。客户也应该事先做好调查。