团队项目需求分析
我们团队所讨论的团队项目是以上海地铁为线索,开发一个软件项目,可以实现根据当前位置选择最方便的地铁旅游点和旅游推荐。这个项目的目的是方便出行,让更多人可以借助地铁的便利去认识和体验上海的文化。
首先需要获取和引导需求,找到软件的利益相关者,了解和挖掘他们对软件的需求,引导他们表达出真实的需求,捕捉需求。在这个地铁的项目中,软件的利益相关者是对上海旅游点不熟悉的市民或是来上海旅游的其他地方的人。需求有来自于技术团队本身的,在考虑软件的代码、构架、所依赖平台的长期演化的时候会产生技术性的需求。其次是分析和定义需求,从各个方面获取的需求进行规整,定义需求的内涵,从各个角度角度将需求量化。在这个项目中更多的是实现开发这个软件所需要的时间和成本,还有带来的利益。然后是验证需求,跟利益相关者沟通,通过分析报告、技术原型、用户调查或演示等形式向他们验证软件团队对于这些需求的认知。最后是在软件产品的生命周期中管理需求。
这个项目对产品功能的需求是:要求实现根据当前位置选择最方便的地铁旅游点和旅游推荐的功能。对产品开发过程的需求是:要求开发流程满足上海地铁网络的约束条件,必须在某个时间点达到某个状态。非功能性需求是:必须在一定时间内返回用户查询结果或者是支持用户下载离线地图使得查询更方便的功能的实现。综合需求是:不同线路的推荐点可以重叠等等。
获取用户需求可以通过用户调研。调研方法有焦点小组,深入面谈,卡片分类、用户调查问卷、用户日志研究、人类学调查、眼动跟踪研究、快速原型调研和A/B测试。竞争性需求分析的框架的有效方法是NABCD,即N(Need,需求),A(Approach,做法),B(Benefit,好处),C(Competitors,竞争),D(Delivery,推广)。
一个软件或服务由很多功能组成,它们有机的结合起来,才能解决用户的问题,产生效益。对此划分了四个象限:杀手功能,外围功能,必要功能和辅助功能。这四个象限能让软件团队清楚的看到自己感兴趣的功能处于什么地位,有了这些分析,我们就可以决定怎么处理不同类型的功能。重要的是,不要把资源平摊到所有象限中,而是倾斜到可以产生差异化和独特用户价值的地方。对于不同的功能可以采取维持、抵消、优化、差异化和不做的办法。
2016-04-10