笔者曾先后参与过身份认证系统IDM和主数据管理系统MDM的开发工作,也参加过外部的实际项目,在近期的新产品开发过程中,因为一个页面的“返回”按钮问题与项目组同事进行了一番讨论,从功能实现到产品设计,都进行了多次的讨论、调整。在不断的讨论中对产品的设计与需求产生了更加深刻的认识,以及对产品的开发、推广思路有了一些新的认知,整理出来与大家讨论分享。

故事过程回放

1.场景重现

近期接受公司安排开发一款新产品,在项目开发前期由于功能比较简单,需求、设计相对比较容易理解,较为顺利进入了最初开发阶段,我们进行了例行内部的功能确认、代码审查,主要是查看功能是否齐全,是否达到预计效果等方面的审查。

笔者也是兴致勃勃的为大家演示了自己开发的功能,然而同事却提出了一个意见。由于笔者开发的功能涉及数据列表展示和数据信息定义两个页面,通常情况下都是在信息填写之后,点击保存自动跳转到列表页面作为显示,但是本次信息填写之后还要继续进行其它操作,同事A认为应当保存之后停留在信息编辑页面,通过按钮手动跳转,同事B则认为列表页面也加一个按钮,可以跳转到后续信息的编辑页面。

2.解决方案

最后大家商议的解决方案是,列表页面增加跳转到后续信息编辑页面,数据定义页面增加一个“返回”按钮,手动跳转回数据显示页面。但是,笔者在功能实现的时候,觉得加“返回”、“配置”两个按钮显得页面很不规矩,而且功能上又有重复的地方,于是将信息编辑页面进行了扩展,通过CSS样式将后续信息的编辑动态显示,只增加了一个“返回”按钮,再次效果展示的时候成功说服了其他的同事。

3.问题反思

当然整个功能的实现比描述的要复杂很多,包括具体的页面处理,前后台交互,相关参数的传递。虽然按照自己的意愿完成了功能让笔者很开心,但是关于到底需要一个什么样的功能又让笔者陷入了深深的思考:

如果只是从功能上来讲,我们需要考虑的就是如何实现功能的前进、后退与留痕,在程序里我们是以数据为边界,这既包括了代码上的前进与后退(增删改),也包括业务上的进退(权限与审批)。作为功能开发者,一定是保证这些功能要有,要可用,然后才是考虑如何精简,如何优雅、高效的实现这些功能。

其次,应当掌握一些常见的交互模式,比如页面何时自动跳转,何时需要联动,什么样的数据需要树形显示等等,这些在日常生活中就可以不断积累,只是需要我们不断的去发现,发现好的交互方式之后,去思考它好在哪里,为什么要用这种方式实现,这种方式与平时的方式有什么不同,在这种不断思考,总结的过程中逐渐提升。

产品开发思考

1.人员组成

任何一款产品都是由团队开发的,开发团队通常有以下几类角色:产品经理、架构师、开发人员、测试人员以及一些辅助人员(比如美工人员,实施人员等)。

开发团队中的相关角色可以一人兼多角色,产品经理、架构师是产品研发的灵魂人物,贯穿于产品研发的整个过程,最理想的状态是产品经理与架构师为同一人任职,具备对市场、潜在客户需求深刻洞察力的同时,能够把控产品研发过程中的所有技术点,有效攻克产品研发难题,把控产品研发周期,防范需求偏离风险。

作为产品经理应该具备敏感性,对细节的关注以及把控能力;要懂得平衡,在甲方的需求与实际开发难度、工期之间寻求一个平衡点,要把握产品的核心功能,区分主次。了解哪些功能是必须做完的,不要让多余的功能使程序变得复杂,不要追求所谓的特性或者其它不必要的性能,专注于自己擅长的领域,集中精力针对自己的优势做提升,这会让你的产品从竞争中脱颖而出。

2.开发过程

产品完整开发过程应该包括对目标客户、产品定位,使用场景、操作流程的设计,由架构师主导系统架构、模块分解,组件选型等一系列技术攻关,产生产品原型,后续不断地迭代升级。

设计产品应当具有不同的视角,以用户的视角来看待产品,思考客户需要解决什么样的问题,这些问题是怎么关联在一起的,如何分步解决,进而需要一款什么样的产品,产品具有哪些功能。实现的功能应该是所见即所得,客户通过简单观察判断即可了解功能的用途,而不是需要相关人员反复解释才能进行操作。

3.产品推广

产品推广需要考虑产品在企业整体产品线中的价值和作用,任何一款产品都不是拍脑袋想出来的,产品的设计应当考虑与公司整体产品线的契合程度。这就要求产品要有与其它产品组合的解决方案,能够清晰阐述产品能为企业带来什么,实现什么样的价值。产品推广应该结合多种形式,打造整体的推广策略,比如:微信公众号营销、在线社区网络营销等。

个人心得总结

1.使用场景

在产品开发过程中,设计合理的使用场景是产品开发的关键一步,通常这个过程是由产品经理以及架构师来主导的。使用场景的设计要尽可能贴近客户的实际业务,这就要求开发人员在开发产品时对特定行业要有一定的理解,这些知识应该在平时的工作中逐渐积累。

2.用户体验

客户良好的用户体验是产品设计、开发的重要指标,它有助于企业不断地完善产品和服务,最终构成用户对企业的独有认知,也就是我们通常所说的品牌效应。追求良好的用户体验,除了常规的设计之外,还应该针对用户类型进行分类,具体可以参考互联网中的用户标签概念,更有针对性的定位用户群体和用户需求。

3.产品开发

产品开发既是一个需求实现的过程,也是一个对需求补充完善的过程。在开发的过程中不断积累知识,既包括本身开发技能的积累又包括对产品所在领域、行业的知识积累。开发过程积极行动,开发之后积极复盘,提高产品开发标准,使开发实践方式,代码能够最大限度的实现复用。

4.打磨推广

任何产品的开发都不是一蹴而就的,通常都要通过原型开发,细节处理,实际项目应用,迭代升级这样几个环节。在推广的过程中,尤其要注意客户意见的反馈,在客户反馈的问题中,总结提升要点,为产品升级做依据。产品是设计出来的,更是迭代升级出来的,需要不断在项目中实践完善,不断在跟同行产品对比中优化提升。“酒香也怕巷子深”,产品需要包装推广,但产品推广,尤其2B类产品推广一定依靠优质产品品质来保障、要有标杆客户案例佐证。