目前产品研发的流程中分工越来越细,很多公司都将产品和研发进行了分离,产品负责需求的分析和产品的设计。很多产品并不懂技术,而且由于这种分离很多时候都是用跨部门来设定的,因此产品和技术的沟通很难,这就导致了以下普遍存在的问题:
1)系统的扩展性非常差
由于产品不懂技术,并不知道可以用一些程序和设计的技巧来应对需求的变化,这就导致系统的扩展性比较差,同时也增加了非常多的开发工作量。程序设计的设计模式其实是可以在产品设计上使用的,这方面,我在前面的博文中有提倡。
2)产品设计的落地性比较差
因为产品不懂技术,产品无法判断自己的产品设计是否能被有效的开发出来,降低了落地性。这里面尤其严重的是,如果产品不懂数据流,就会导致产品虽然设计出来,但在数据流上并不能形成闭环,甚至无法让研发做出合理的数据结构设计,这种后果尤其严重。
3)产品的开发重复工作较多
产品由于不懂技术,就无法判断开发是否可以合并或者经过简单的抽象就能够复用很多代码,这个时候如果产品还比较强势,那基本上就是开发加班加点还没成就感的源头。当然,这个时候产品和技术沟通可以解决一些问题,但这必然又会导致通信成本的增加。
4)产品设计缺陷所导致的浪费严重
产品如果不懂技术,一些设计缺陷就会传递下去,如果技术没有责任心,就会导致产品的输出不能正确的满足业务需求,这种成本的浪费在实际开发过程中非常常见,而且往往容易成为部门之间扯皮的点。
分工很细有好处,但在我们的概念里,产品比研发是要重要很多的,特别是产品是需求和设计师的时候。虽然这种产品很难找,但一个公司,可以不要求所有的产品都具有深厚的技术功底,但起码有一个协助把关就会节省很多开发成本。