在IT群里,总能看到对IT公司各职位之间的矛盾的调侃。比如产品与设计,设计与开发,产品与开发,开发与测试等等。
不同地域,不同公司,矛盾似乎就一直存在,尽管还能愉快或不愉快地协作。即使一些情况下一方或双方能退一步海阔天空,但有时候针对细节而起的争议,以开发的角度来讲,总能让人觉得不可理喻。
就比如Android开发人员常遇到的:
产品告诉你要怎么做:“像iOS那样。”
测试和你提了个Bug:“你这里和iOS的不一样。”
或者是面试设计出来的iOS风格的效果图。
首先需要肯定的是,多数产品经理,在定义一个产品或功能时,是比开发要专业的。多数测试人员,以及设计师,在他们的领域,都是要比其他人要专业的。但我们一个功能的产品,是经历了需求设计开发测试等各个方面的,每个领域的人员所看待的角度都不一样。闻道有先后,术业有专攻。此亦然。
商品分布的不对称产生的贸易和利润。信息掌握的不对称成就了各个行业巨头。我们同样是因为知识掌握的不对称,所以各司其职,但也在沟通中产生碰撞。
而在实际我所经历移动开发当中,开发这一环,似乎更少了些话语权。
比如产品要求区分某两种情况的默认图,即使其他人都觉得没必要,但坚持之下,在缺少第二张默认图的情况下还是让我动了代码。而直到后来的大版本重构,与之相关的整块功能也砍掉的时候,那第二张默认图还是没有用出来。
或者是在Android开发当中,各种仿iOS的控件。当然这有其历史原因,Android 3.0以下无设计,5.0以及才开始走上设计之路。在5.0未普及于国内时,许多人对Android的UI及UE的看法就是丑——爆——了。导致不单app各种仿,ROM同样各种仿——MIUI不就是一个典型的例子?
但时至今日,毕竟大有不同。可欣慰的是,公司的设计目前也正慢慢区分两端设计。Material Design正被慢慢接受中。
在我看来,开发人员也同样需要去了解一些产品知识,了解一些设计思路。以前在和一个同行的交流的时候,他也说过,招开发的时候,他在面试过程当中更多的是看一个人有没产品意识。如果设计、开发、产品都是掌握其所应掌握的知识的,那么测试人员是不是也应该有所要求?除了测试用例之外,是否也要对其所测试的平台有一定程度的了解?节前看到一份测试报告,指出用的一个模态对话框的“确定”完全看不出来是个按钮,点击它只是操作习惯。
然而,那个对话框正是Material Design中的对比话框。
然而,微信和支付宝中使用的同样是这种。
而且我还没明白,操作习惯之下发现并点到了一个确定按钮,存在着什么问题。如果这成一个问题,那么当我以前第一次使用iPhone时,发现在界面中一个一个往下填之后找不到继续的按钮,最后才在右上角发现“完成”两个字而试着去点它时,这种交互是不是也是一种Bug?平台的差异性,作为一名合格的测试人员是不是得有足够的了解,才是测试的道理?
我们有代码风格代码习惯,我们有设计模式设计原则。产品功能的完成,各个角色各司其职是其道理,但如果互不了解,开发人员放弃了自己的看法意见而沦落为代码的搬运工,又岂非是没了开发的道理?