天天看点

产品是怎样炼成的

IT行业有很多类型的公司,如:项目型、产品型、技术型、外包型等,笔者所在的公司为产品技术型公司,不是所有企业都可以成为产品技术型公司,主要在于两方面,一方面在于以产品、技术起家的基因,所属技术、产品均为自主研发;另一方面在于企业的人员意识形态和做事方法。

笔者在职期间见证及参与了公司许多新产品的诞生,久而久之更加确定了上述的理论,正如一个公司的成立需要经过积累、沉淀、规划一样,产品也不是一朝一夕就可以生产出来的,除了前期的不断积累,还要对目标客户、市场、使用场景等进行充分调研,针对性进行架构设计、技术攻关、产品研发等一系列过程才可以打造首版产品原型,然后在项目中不断升级迭代,这些工作通常都会分配给不同的角色去做。

开发团队

在当今时代一款优秀的产品一定不是某一个人之功,从想法到设计再到上线,是整个研发团队群策群力的成果,包括产品经理、架构师、开发人员、测试人员、美工、部署人员等,不同人员相互配合,发挥着各自的重要作用,如下图:

1.产品经理

传统意义上的产品经理,负责产品整体的管理,包括提出开发何种产品、选择何种技术、商业模式等一系列产品管理活动。产品经理是产品研发的牵头人,负责调查、收集及提出产品需求,并根据需求对产品概念进行深入理解,根据不同产品形式输出如:PPT、文档、原型等资料,供后续开发人员参考,同时在产品研发过程中进行参与、纠正需求、辅助测试等。在输出参考资料的阶段通常会联合架构师,一起对产品核心架构、技术工具进行80%以上的明确。

2.架构师

架构师对整个产品研发过程起着至关重要的作用,需要对开发技术、工具十分了解,确认与评估产品需求后,从需求到设计每个细节进行统筹考虑,输出简要开发规范,搭建产品实现的核心构架,并召开全体开发团队会议,确认需求及技术细节,对开发过程中难点、疑问点进行统一解决答疑,之后由开发人员参与共同完善开发规范,再次经过会议确认后,正式开始产品研发工作。

3.开发人员

开发人员的构成包括1-2名主力程序员,2-3名开发副手,主力程序员主导开发工作及技术攻关,开发副手主要负责产品的常规功能的研发。在需求与开发规范明确并理解后开发人员编制细化至人天的产品研发计划,计划确认后即可进行产品研发工作,过程中对开发情况定期汇报,同时对开发过程中遇到的技术难题进行技术攻关。在部分功能开发成功后,就可以交于测试人员进行部分功能测试,根据测试人员反馈,修复产品BUG,完成修复后,将新版本上传至SVN,并向测试人员发送提测邮件,说明提测产品的版本号及变更内容。

4.测试人员

测试人员主要对研发出的产品进行测试,通常除了专职测试人员之外,产品经理、架构师都会充当测试人员角色来获取第一手的反馈,对于测试人员来说,首先要深入理解产品需求,之后站在客户角度对产品进行测试,通常在开发出产品部分功能的时候,就会参与测试,便于尽早发现产品存在或潜在问题。对于开发人员来说,在功能开发出来之后,彼此之间也会交叉对产品功能进行联测,发现产品问题。

5.其他人员

在产品研发过程中,还存在一些辅助性的角色,例如:美工人员,负责产品整体界面的设计、美化,图标的制作、提供;文档整理人员,负责产品文档的撰写、核对、整理;产品配置、部署人员,负责产品功能的配置及产品最终部署、培训等事宜。

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

研发过程

产品研发要求对目标客户、产品定位、使用场景、操作流程、系统架构、模块分解、组件选型、技术攻关、产品原型、迭代升级等每一个环节进行统筹规划、深入理解、慎重考虑、严格执行,确保产品研发进度及质量。

1.目标客户、产品定位

在产品研发前,首先会对目标客户、产品定位进行明确,之后根据客户定位进行针对性的产品研发。一般会考虑如下问题:产品主要面向哪个行业、领域;产品用户群体为哪些:toB还是toC、是集团型企业还是中小型企业;用户需求有哪些;除显现需求还有哪些潜在需求;产品是否需要细分,有无差异化;产品的核心价值是什么,能为客户带来什么等,要站在客户角度进行分析,深入客户行业,明确客户真实需求。

2.使用场景、操作流程

使用场景、操作流程与目标客户、产品定位是密不可分的,在明确上述问题后,进行使用场景细化,构建系统操作流程。通过对用户现状的调查研究,挖掘用户在什么样的需求下使用这个产品,之后在该场景下对使用细节进行确认。如果说在产品定位时需要贴近业务,在使用场景中要更密切的贴近用户操作方式,根据用户业务的每一步操作流程,设计产品功能的操作流程,模拟用户真实场景,将用户、业务、软/硬件、物理环境、具体需求整合,为最终用户提供更高的工作效率、更好的交互体验。

3.系统架构、模块分解

系统构架部分主要对已确定需求的技术架构进行规划,选用合适的工具、组件,在规划的架构下去完成产品的研发。系统架构除技术架构之外,还包括业务架构、数据架构、功能架构,不同的架构从不同层面展现产品的技术要点、功能模块、数据走向,便于全方位不同视角的理解把握产品。之后对产品功能进行细化分解,即:产品包括哪些功能、哪些模块、哪些接口、每个功能的作用、功能之间的业务流程关系,各产品功能下制定哪些基本菜单、菜单子项以及操作按钮等。

4.组件选型、技术攻关

产品中一个重要环节是对产品实现中所用到的组件进行选型,通常会从众多组件中选出2-3种较为适合的组件。产品需要适应或囊括所在行业可能涉及的需求及用户的个性化需求,所以要求组件能够适应更广泛的应用,并对产品逻辑、代码运维性、扩展性的要求更高,这就意味着需要对现有组件进行改造和适配。技术攻关主要解决组件的扩展、改造、适配,对此要事先进行技术预研,由架构师进行系统学习选型,之后为开发人员讲解,并派主力程序员学习攻克此类技术难题。

5.产品原型、迭代升级

产品原型分两步,第一步为产品研发之前产品经理出具的产品原型,第二步为产品研发出的内部首发版本,通常情况下最终成型产品与原型设计是有些差异的,因为在研发过程中会有一些需求的变更和新技术的加入等。产品开发出来的首个版本通常要供内部用户先使用、测试完善,然后才能推向外部。优秀的产品是设计出来的,更是迭代升级出来的,因此迭代升级是每个产品生存的重要保障,产品是一个持续完善的过程,会根据新需求的提出、新技术的涌现来不断更新、迭代完善、修复BUG、升级版本。

意识形态

开发团队的人员构成与产品研发过程,每个软件企业都是大同小异的,大企业划分可能会更细更全更专业,也有更多的人力资源配备,但并不意味着就一定可以研发出好产品,产品研发意识、执行投入是重要基础。

1.积累意识

产品研发无论从理念构思还是技术实现,绝不是拍脑袋来决定的,没有创新思维、技术底蕴,不能妄谈产品研发。研发出一款好产品首先需要具备积累意识,研发人员经过十几年的经验积累、技术研究而练就的,而真正的积累意识是需要有意识的、自主的去积累,刻意的学习、聚集有用的东西。

对于产品研发能力的积累,关键在于毅力和恒心、是一个不断坚持的过程,朝着发展方向进行有意识的学习,掌握相关领域的知识,持续跟踪学习新技术新知识。项目实施交付完毕后在做内部运维交接的时候强调对项目的 “复盘”,用于检查追溯项目中的成果与不足,在产品积累学习过程中同样适用,时刻在对所学知识、所做之事进行复盘,明确哪些做的失误、哪些做的好,哪些可以做的更好,不断演练、总结、积累。

2.行动意识

做足积累之后就需要行动起来,有的公司业务积累、项目交付很多,却没有拿得出叫得响的产品,一直是项目型、销售型的公司,产品打造方面建树寥寥,因为缺乏打造产品意识和行动力。产生这种现象的原因有很多,如:重视度不够、缺乏创新思维、把控能力、执行力等。

打造产品对公司竞争力长期来看一定是非常值得投入的事情,万事开头难,提高行动意识首要就是提高执行力,把想到的事情规划、规划的事情变现。产品研发从计划开始,从萌生做产品的那一刻开始,开始列出计划,将产品概念、定位、场景、技术选型等一系列事情逐渐明确、分解、最后落实成可执行的人天计划,之后按照规划一步一步实现,组建团队、逐步推进,然后在项目中逐步完善。

3.复用意识

复用意识做为一种能力的同时也可以算做一种技巧,当然这种意识与公司的创始人思维、企业的基因有很大关系,笔者所在的公司的复用意识体现在产品打造中、项目交付中、管理体系中等各个方面。

所有的产品都是基于自主开发框架平台开发出来的,可以有效缩短产品开发时间;不同产品间也可以相互复用,如:BPM流程集成平台可以嵌入式工作流的方式在Portal、IDM、MDM等产品中复用,完善对应产品功能架构;

4.追求卓越

继续阅读