我认为,软件开发,尤其是定制化的软件开发,一定要彻底弄清楚客户对软件的初衷。客户很多时候对软件没有什么确切的概念,会提出不合理的需求。你可以根据客户的初衷来分辨哪些功能是客户真正所需,哪些是客户的一厢情愿。如果是‘真正所需’,即使是再困难也应该实现,如果是‘一厢情愿’,应该尽量避免,多和客户沟通。因为这些‘一厢情愿’会让软件走向错误的道路,开发人员会忘记哪些是重要的,哪些不重要,尤其是开发团队人员变动很大的时候,从而使软件走向歧途。
从4月开始,我们组接到了一个定制化的项目(c/s结构),大致的流程是售前工程师和客户谈需求,然后与我们的产品经理进行沟通,最后产品经理把需求细分给我们研发。期间有一段时间我代替售前(我是研发),出差到现场,一方面现场开发(有些功能只有到现场才方便测试),另一方面代替研发去现场了解客户实际的软件使用流程。与客户的沟通过程中,客户充分表达了客户对软件的期待,现场的使用场景以及困难所在(我称之为初衷)。我在得到这些消息以后,干到很震惊,因为这些话我们的产品经理和售前从来都没有和研发说过。研发得到的信息就只有一个一个的功能,很少有客户对功能的期待以及使用场景。根据客户对软件的初衷,我再看我们的软件,我发现很多地方都不合理。虽然我们都软件的开发初期无法做到完美,但是软件最初的设计就是有问题的,是违背客户意愿的。客户和我说,他不希望他在使用软件的时候需要去分析,他希望软件可以直接给他结果,以最直观的效果呈现出来。我们的软件最初的设计就无法满足客户最基本的要求,因为售前工程师和产品经理都把精力放在了一个个的功能上面,而忽略了客户的初衷。这在软件初期的时候还容易解决,到了软件开发的中后期,这样的问题更为致命。
是否有很好的办法来解决开发人员与客户沟通不善的问题?减少环节是一个好办法,但是大公司总是很‘臃肿’。人们在工作时倾向于按照一套流程来做,对于售前工程师来说,他们很容易将自身定位为用户需求的转化者,把客户的需求转化为一个一个的功能。殊不知他其实的功能只有一个,与产品经理传达客户的精神。就像上级给下属传达命令的时候,下属要充分理解上级的精神。完成领导安排的工作,只能做到完成任务,但是理解了领导的真正需求,在领导未想到或者分配错误的情况下,及时的纠正领导的安排,这样才能做到完美。您说呢?
我是JAZz,喜欢在网上与大家分享我的所见所得,欢迎大家在评论区与我互动。
原文地址:https://www.cnblogs.com/jazzpop/p/9288518.html