开发一个app如何进行功能设计
开发一个app如何进行功能设计
在很早之前的一片文章中我们讨论了产品经理的3种类型:文档型、需求型、商业型。这一次我们重点来谈一下需求型产品经理的核心技能——需求转化能力,也可理解为产品功能设计能力。
app软件的功能,从本质上说就是对数据进行输入、加工、输出的过程。对于面向数据库的app软件,因为它是基于数据库的,所以可以理解为两个方面:一是数据收集和处理;第二个是围绕软件数据库的四个操作,即添加、删除、修改和查询,或者简单地添加、删除、修改和查询。
1.app需求用例
软件需求用例是指用户通过app软件开发解决特定问题、完成指定任务的方式与步骤,以及用到的各种约束、规则等。一个用例,往往对应着用户需要完成的某个明确而具体的任务。一个完整的用例,一般包括用户、前置条件、后置条件、主场景、扩展场景、规则等方面。在实际工作中,不同的团队有不同的要求,有些团队,对软件需求用例的编写要求非常高,需要仔细描写每一个应用场景,而有些团队或项目的要求就非常简单,甚至根本不需要进行需求用例的分析、编写就直接进入了功能点设计工作。
2.app软件功能建模
所谓功能建模,指根据系统规划的要求设计功能构成模型,确定系统由哪些功能构成,每个功能应该输入什么,经过功能处理后应该输出什么,每个功能又包括哪些子功能,不断分解下去,直到最底层。
功能点:本文所谓的“功能点”,指可以提供给用户完成某一特定任务的功能组合,例如“客户档案维护”、“物料基本信息管理”
等,跟研发人员所说的某某类可以提供某某功能是完全不同的两个概念。可以将其看成是传统的功能菜单,大部分情况下可以简单粗暴地认为一个菜单算是一个功能点,当然,并不是所有的功能点都是有功能菜单对应的,例如某些固定时间触发的调度功能,某些给第三方调用的接囗等。
原子功能:一个典型的原子功能包括从数据库或界面获得数据,经过加工处理后提交到数据库,再将处理结果反馈到界面这样一个过程。一般来说,原子功能在执行过程中包括获得数据,处理数据,提交结果三个方面。当然,并不是每个原子功能都包括这三个方面,有些功能只要从界面获得数据,不需要经过数据库,有些功能将处理结果直接保存到数据库,不需要反馈到界面,有些简单功能几乎没有任何运算处理过程
划分app功能:进行app软件功能设计首先要做的事情是进行功能划分,即设计者试图通过哪些app软件功能组合,来解决用户的问题,从而达成企业信息化管理的目标。在这个阶段主要考虑这个软件系统会包括哪些功模块,功能模块由哪些功能点组成,每个功能点包括哪些子软件功能,每个子功能包括哪些原子软件功能,每个功能需要输入什么数据、如何处理、输出什么数据,哪些用户使用这些app软件功能,使用这些功能是为了解决什么问题,怎么使用这些功能等。
3.app软件功能优化
可以从灵活性、可重用性、高效性三个方面考虑如何对功能进行优化。
灵活性的优化,可以从这几个方面着手:能不写死的地方不要写死;能不用的规则就不用;尽量兼容一些不明确的需求;慎重对待变化可能性大的需求;抓住业务核心;不偏离业务现实。
可重用性的优化,可以从这几个方面着手:尽量减少功能之间的关联性;注意数据的流动方向;建立团队的通用规范与通用功能。
高效性的优化,可以从这几个方面着手:使用率不同的数据采用不同的保存方式;利用中转数据;外键必填;优先使用客户端资源。
做了上面3件事情,这个时候手上可能只有三件东西:与“爸爸”沟通时的记录、业务流程图、系统框架图,没有原型、没有文档。但你的产品设计工作已经做了80%。
这个时候拿着流程图、框架图去风暴吧,你不需要和领导扯皮、也不用和同事争的面红耳赤,你要做的就是回答:嗯,这个符合流程设计与框架设计,这是个好功能......
小结:开发app产品,不是画原型、不是写文档、更不是和领导和同事“互怼”;做产品设计只需做好一件事——需求·转化,其它都是浮云;这个能力也恰恰是大部分产品经理能够保住饭碗的最重要能力。