如何做好产品开发

在这个互联网高速发展的时代,IT行业相关的技术公司越来越多。形形色色的产品也随之而来,怎样在一众产品中做到脱颖而出是每一个研发人员都应该花大量时间和精力去考虑的事情。

想要做好产品开发,需要拥有全局思维,要擅长站在用户角度思考问题,考虑产品功能的合理性。当然,产品想要不断完善,也需要在项目中不断打磨,只有这样才能把产品做好。

1.整体介绍

本篇文档将以MDM主数据管理平台为例进行说明,设计到需求的分析、功能的设计和开发,产品的功能测试,还有就是如何站在用户角度去开发产品。

1.1产品介绍 

MDM基础数据管理平台是清洗和治理企业的主数据,使企业的主数据具有唯一性、准确性、一致性、及时性,通过主数据数据清洗功能将错误数据和重复数据进行清洗,从而保证企业数据能够做到具有唯一性、准确性、一致性、及时性,然后再分发至下游系统,使企业信息化更加完善。 

1.2产品开发 

产品开发(Product Development)就是企业改进老产品或开发新产品,使其具有新的特征或用途,以满足用户的需求的流程。而我们开发出来的产品是否能受到用户的喜爱,需要从多个方面考虑。例如,产品的功能是否完善,产品在操作上是否流畅,产品页面是否美观等等。然而,想要做到这些就必须要学会站在用户的角度去思考产品该如何进行开发。也就是我们常说的用户思维。 

1.3开发步骤 

  

产品开发的大体步骤如上图所示。 

1.首先需要明确客户的需求包括哪些; 

2.对客户提出的需求进行分析,看看是否对于某些功能能提出更好的建议; 

3.对产品进行展开设计,具体包括数据库的设计、页面的设计、接口的设计等; 

4.设计做好之后,功能的开发就完成了一半了,接下来就按照设计的顺序去进行功能开发; 

5.之后是对功能进行测试,分为功能方面测试、性能方面测试,然后就是按照实际业务场景去测试,产品整体的连贯性是否完善; 

6.对产品发现的一些问题进行修改完善; 

7.最后将产品交付客户使用。 

2.明确需求 

在开发一款产品或者开发一个功能之前,第一件要做的事就是明确客户的需求是什么。只有弄清楚客户的具体需求,才能保证开发的时候少走弯路,并且以最快的时间开发出满足客户需求的产品。

具体需要了解的需求包括产品的应用场景、使用这款产品的人群和产品所需的功能清单。 

2.1应用场景 

应用场景主要指的是该产品具体的用途,即在什么情况下会使用到这款产品,该产品能解决什么问题。明确了应用场景之后,可以让我们在做功能设计的时候更加容易想到某一个功能在实际使用中会遇到哪些情况,或者是怎么设计才能让用户使用起来更方便、更易操作。 

2.2使用人群 

除了需要考虑应用的场景之外,还需要考虑使用这款产品的人群有哪些,是业务人员还是技术人员,如果有角色的区分,那我们在开发产品的时候就需要考虑是否要给不同的角色添加不同的权限。因为对于技术人员来说,他们是懂一些产品代码的,他们使用的通常是一些关于产品配置的一些相关功能;而业务人员是不懂技术的,他们能做的都是关于业务上的一些相关操作。这样,给不同人群分配不同权限之后可以更加方便使用,相互之间分工明确,工作效率也会相对应的提高。 

2.3产品功能 

最后,就是明确产品具体的功能清单,通过产品的用途结合具体的一些应用场景去整理出所需的功能。在这个过程中,或许不会整理出所有的功能,对于这方面可以在后续的开发过程中进行补充。

3.产品设计 

明确好产品的需求之后,就可以出对应的功能设计了,通过写设计的过程,来明确接下来产品开发的一些细节,包括数据库的设计、接口的设计还有页面的设计等。 

3.1数据设计 

数据库的设计部分需要设计表的结构,各个表之间的关联关系如图所示。这部分需要对表的字段以及关联关系考虑全面,防止后续如果对数据库改动可能会对整体有一些影响。 

  

3.2接口设计 

接口设计包括调用的url地址、调用的方法(get,post等),以及入参和出参类型,如图所示。 

  

3.3页面设计 

页面部分的设计需要考虑页面布局的合理性,按钮、文本框等这些元素的样式、弹窗的大小、页面的宽高等,同时要考虑页面自适应的问题,以免由于不同的分辨率造成页面大小不一致的问题。页面整体要以简洁美观为主。 

4.开发规范 

日常开发中,代码的规范性是很重要的,提升个人的代码规范不仅能减少产品问题的发生,也能让其他人在查看你的代码的时候更容易理解代码的逻辑,这样有利于多人协作开发。 

4.1命名规范 

首先介绍一下编程中几种常见的命名方法,这里一共列举五种: 

1.匈牙利命名法 

匈牙利命名法是一种编程时的命名规范。基本原则是:变量名=属性+类型+对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。要基于容易记忆容易理解的原则。匈牙利命名法的特点是前缀。用前缀标明变量的类型。前缀后面的单词首字母大写,其他字母小写。让人一看到变量名就能知道这个变量的类型。 

2.camelCase命名法(驼峰式命名) 

开头单词小写,后面单词首字母大写。在Java的官方标准中,Camel命名法被作为主要命名法。使用得很普遍,很多人习惯这种命名方法。示例:userName。 

3.PascalCase命名法(帕斯卡命名) 

与camelCase命名类似,所有单词首字母大写。有时会有人称为大驼峰式命名。使用很普遍,变量名,方法名等。示例:UserName。 

4.Kebab-case(短横线命名) 

单词以 ‘-’ 短横线连接,常见的class命名方法。示例:user-name。 

5.UnderScoreCase(下划线命名) 

单词以 ‘_’ 下划线连接,常见文件名的命名。示例:user_name。 

4.2变量规范 

1.通常以字母开头且遵循驼峰命名原则。 

2.要能清楚地表达出命名的含义。 

3.一些默认的、大家熟知的可以用缩写,例如:application-app,string-str,number-num。 

4.命名不可以和Java关键字产生冲突。常见的关键字有:public,private,new,try,this,import等。 

4.3代码规范 

上面介绍了关于命名的规范,而在代码逻辑上同样也需要做到规范性,否则可能会影响产品的使用效果。在编写时,大致遵循以下几个原则: 

1.不要把操作数据库的方法写在循环里。 

2.操作比较频繁的代码可以独立出来为一个方法,然后通过本类调用的方式。 

3.尽量减少代码嵌套的层次,便于理解。 

4.尽量做到代码复用,减少扩展的次数。 

5.不同的方法之间间距适当,例如空格一行。 

6.每个if,for等语句都不要省略大括号。 

5.产品测试 

产品测试在产品开发过程中非常重要的一个环节,通过测试过程来检测出产品存在的问题,从而对功能问题进行修复完善,然后进行复测,最终确保产品没有任何问题后,再交付客户进行使用。测试主要从功能和性能两个大方面进行。 

5.1功能测试 

首先是对整体功能进行测试,然后是按照一定的业务流程进行测试。整体测试主要是对一些基本功能,例如增删改查、提交等等这一类功能是否能正常执行,同时,考虑一些功能在操作上是否合理,如果有不合理的地方及时调整。 

整体功能测试只是最基本的测试,如果没问题,接下来就要按照一定的业务逻辑进行测试,也叫场景测试。场景测试是依托于产品的实际使用来进行的测试,软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成对应的事件流。这种在软件设计方面的思维也可以引入到软件测试中,可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,同时使测试用例更容易理解和执行。

5.2性能测试 

性能测试就是对产品不断地施压,通过多次的冲击来暴露产品的性能问题,利用一些压测软件如JMeter、LoadRunner等等,进行高并发的数据处理,并且在测试过程中针对一些可能会出现大量数据的模块功能一定要有所准备,如制造大量数据检测产品的性能。如果产品的性能测试未过关就着急上线,那么产品在负载过大后就会崩溃,会造成无法估量或不可挽回的损失。、

5.3优化方向 

测试完毕后,对测试过程中发现的问题件进行汇总。对于问题直接修复;对于一些待优化的方面讨论决定怎样优化,例如性能方面,然后做出相应的设计进行开发完善。 

6.用户思维 

做产品开发一定要有用户思维,这样才能保证在开发的过程中能够站在用户的角度去思考问题,考虑功能的合理性。也只有从用户的角度出发开发出来的产品,才会有客户愿意买单。 

6.1产品功能性 

产品的功能性是产品的基础,要能满足用户的日常使用需求。所以功能开发要考虑全面,需要从不同的业务场景出发。除此之外,通过在不同的项目中的应用,也会发现不用的问题或者是需要优化的地方,从而对产品进行不断地完善。 

6.2产品易用性 

功能性说的是产品能不能用,而易用性说的则是产品好不好用,在这个互联网高速发展的时代,无论是工作还是还是生活,人们总倾向于“一切从简”。显然,简单方便通常情况下都会被大部分人接收,做产品也是一样,鼠标点两次就能实现的效果自然是没有人愿意点五次。所以,作为研发人员,在产品的开发过程中要充分考虑到易用性这个问题,尽量让用户使用起来感到方便,这样才会提升产品的影响力和知名度。 

6.3产品美观性 

这个时代的特点除了快速还有就是“看脸”,人是这样,物也如此,好看的皮囊总是会受到人们的追捧。所以,在产品开发的过程中,页面的美观性也是作为研发人员不得不考虑的一个因素。近几年从事UI设计的人员越来越多,因为人们对于美的追求越来越极致。对于精美的页面,大多人应该都会忍不住去尝试各种操作,迫不及待地想要了解知道它的所有功能,这其实就是所谓的“青睐”。产品的美观性,也是做精品必须要做到的一个方面。 

7.总结分析 

最后就是对产品的后续发展以及产品价值的体现,还有个人的一些心得体会进行展开说明。 

7.1产品发展 

任何一款产品都需要持续性不断地更新完善,一方面是对于问题的修复,另一方面就是一些新功能的加入。这些问题的来源需要我们从不同的角度出发去考虑。同时,产品也需要在项目中不断打磨,通过客户的需求筛选出我们产品所需要的,进而升级产品功能,增强产品的功能性。另外,也需要换位思考,了解在项目实施过程中的重点和难点,总结经验,扩展向导功能加强产品的易用性,在开发时还要考虑产品的性能和稳定性。 

7.2产品价值 

产品的价值在于是否能够满足客户的需求,是否可以解决企业面临的困境、帮助企业完善信息化发展,能够实现企业信息集中、管理集中、业务集中的一体化平台目标。每个公司的产品都要抓住这些痛点,结合自身的业务和发展方向,进行完善升级自己的产品,这样才能体现出产品的价值。一款好且稳定的产品可以帮助工作人员快速而方便的工作,大大提高了工作效率,也会让客户满意,增加客户对公司的信任度。 

7.3心得体会 

产品开发完成并不意味着这个产品的结束,反而是产品的开始,后续还会有需要不断完善的地方以及对产品的推广,让更多用户看到我们的产品,了解我们的产品,最后使用我们的产品,这才是一款产品的使命。

最后,引用埃里克·莱斯的精益创业理念做为本篇结束语。一款好的产品,从开发和产品角度看,力求最简功能和原型,当然这个最简不是说砍掉所有功能,而是在可行的基础上最简;一款好的产品,从客户角度看,就是为其创造价值;一款好的产品,从公司角度看,给公司带来持续性价值。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值