作为iPhone手机应用的个人开发者,需要经历手机应用开发的多个或所有角色,完成从抽象概念到产品实现这一过程。这是复杂的过程,以致于不能一气呵成。这个过程中的每个阶段都可以用好几本书来讲解。可以有很多种软件工具,如PS,其实我们可以用铅笔画图的方法来启动,而不需要使用这些软件工具。针对每一个阶段或任务,都要经历输入处理,过程处理以及输出处理的过程。那么,第一步应该是什么?我认为,第一步是成为众多角色中最重要的角色--应用咨询师。应用咨询师如同斥候一般获取、筛选整理第一手的需求信息。
输入处理篇
获取需求的目的?就是弄清楚要做什么。对于整个应用开发过程而言,就是要给应用开发过程提供工作目标,即解决即将开发的应用能做什么的问题。如下图,需求从老板(客户)一端流向应用开发过程,实际上中间有一个过渡期,好多人视之为需求分析,并将它视为过程中一部分。比如某老板说他需要一个手机应用帮助他转帐给他的生意伙伴。众所周知,他可以用现有的某宝应用就满足他的需求了,真的还需要再开发一个别的吗?这点其实很重要。作为应用咨询师,应该给予有利于老板(客户)的选择,而不光是为了更多地获取自己的经济利益。
如何高效获取每个需求?
显性要求:隐性需求
高效:快速,每次沟通愉快,有进展,反复沟通次数少。
每个:数量齐备,管理需求,记录所有提及的需求。短时间内,无法产生需求。可能在一些原型的帮助下才能了解真正的需求。
需求:真正的需求,初步推敲第一手的需求,不是单纯的复制”老板“的话。功能,质量要求,约束,各是什么?有些需求是互相制约的,哪个优先级更高?
通常项目的启动往往来自于你的老板一刹那闪现的想法。在一次闲聊中,我的妻子要求我帮她做一个应用,来帮助她的工作。于是她成为了我的老板。我初始的做法是倾听她的想法,并尝试用storyboard来做原型开发了。花了一段时间,沉浸在原型开发中了。一天后,在处理一些原形开发中出现的具体问题后,再跟妻子沟通,发现昨天所理解的竟然是错误的。得,做这个原型的功夫白搭了。有什么方法可以降低这些时间成本呢?有,用铅笔画图。简单明了的画出所讨论的画面,能够高效地进行头脑风暴时沟通,从而尽快捕捉真正的需求。不要问怎么画了。随意,画出的东西是用来沟通的,对方能懂就行了。无论画出什么,都要进行可用性测试。什么是可用性测试?白话一点说就是“纸上谈兵”,演练一番。目的是尽早“发现需求沟通问题”。不要考虑如何设计界面等细节的东西。如果老板认可了我们理解的需求--他/她的需求,才有价值往下做下去。这是个长期变化、迭代的过程。
对于相对稳定的需求信息,可以把铅笔画出来的图用Storyboard做出来,再次针对StoryBoard进行可用性测试。通过测试,则可以进行下阶段的工作了。否则,回溯到草图,看是否需求出现了问题。
还没有稳定的需求,需要进一步去“碰",去沟通。这是人与人的沟通,除了要讲道理,更重要的是讲感受。如果自己姿态放的足够低(谦),老板的需求总能自动的“流”下来。如果不能,就需要导引了。如果需要我提供方法,可以跟我联系探讨。这是一种软能力,相对于“用什么技术去管理需求”。
根据不同阶段的目标,其可用性测试的侧重点也有所不同。
如果对方懂UML,则可以手绘UML图。
过程处理篇
每一阶段,都有不同的处理方法。对于需求处理阶段,需要做些什么呢?答案是
1。全面理解需求。这个过程很容易引入到设计细节方面,最好不要这么做。紧扣应用的核心价值,标记关键需求点。
可以细化各个需求的组成(功能+质量要求+约束)。可以通过画一些UML用例图,一些需求矩阵来逐步细化。
2。管理需求的变化。
来自老板的外部需求,来自确保过程顺利进行的内部需求。
3。根据输出项的要求,写出电子文档。
输出处理篇
这是过程的输出。这个输出同时也是下一阶段的输入,故此应该考虑输出的受众而确定输出内容。对于需求分析阶段来说,应该输出所有的需求信息,并且标记关键点。重要的事情先做。