谈项目需求


三种客户类型: 

1 的确很专业。能提供基本可用的文档,能给出要求规范,能向你提出有价值疑问和担心。能快速回答你的问题。

2 以为自己很专业。 给的文档基本没法用。没法提供规范和标准,喜欢指指点点和挑毛病。只会向你提傻逼问题。基本回答不了你的问题。

3 啥都不懂。 不给文档。能给你几个参考范例(打开数个网站,告诉你我要做成和它们一样的。)只能等着你来问100个问题。。。

四种合作方式:

1 创始人直接和你接洽:交流结果的协商余地很大,需求不易反复,细节不会被过分追究。更容易统一想法,执行力高,你能对项目和产品产生更大的影响。但往往甲方会过于急进。

2 项目代表和你接洽:这是非常理想的状况了。甲方有一个产品经理或IT经理能作为代表,负责汇总甲方的所有需求和标准和你沟通,他有过与外包方合作的经验,知道危险的环节所在,能承担翻译和桥梁的角色,帮助你阻挡和说服不恰当的需求。能集中地承担责任,也会积极地和你一起规避项目失败的风险。非常lucky!

3 专业部门和你接洽:IT部门或技术部门的某个高级别工程师负责和你沟通,你们会比较有共同语言,甚至惺惺相惜。技术方面的合作会很顺利,但是涉及到产品和需求,他们无法帮你挡住来自市场或内容部门的麻烦。合作开始后,很有可能在技术思路上产生分歧;如果在程序部分耽误了太多时间,而产品端被忽视,你有可能受到其它部门及上层的质疑。

4 市场部门(内容部门)和你接洽:最好你先去烧烧香,准备好最坏打算。专业和思考模式的差异会导致你们关心的问题完全不一样。你首要满足了他们关心的地方后,切记留出不少时间来解决那些他们看不见但实际上非常重要的问题。另外你需要做更多的事,写更多的文档,主动和专业部门联系,力争和决策层有沟通。

如果你面临了第3和第4种状况,

请先熟悉一下甲方的组织机构。例如一般 内容型、媒体、渠道、宣传类项目的开发:

需求 和 市场部门 沟通

功能 和 内容部门 沟通

软硬广告位或专题 等 和 销售部门 沟通(如果是改版类,广告位合同可能提前半年签订,一定要和销售协调好)

技术、系统、安全、统计问题等 和IT、网管、数据统计部门 沟通

某些问题 需要和 总裁助理、行政 等官僚部门沟通。

部分特别的内容 需要和 创意、美工、文案部门 沟通

当以后确定需求的时候,如果发现这些部门的人没有参与,请提前与之沟通。

第1和第2种状况可跳过上述步骤。

八步流程: 

第一步:听听客户想要什么。

以及预计工期和预算(这两件事上一点都不要腼腆,这是关系项目成本最重要的元素)。

第二步:提问。

1 项目的目的是什么。(品牌、渠道、流量、广告费、用户数、VC、其它商业模式)

2 甲方的优势和资源是什么。(钱,内容资源,人力大战,传统行业优势)

3 尽量提供可视的参照及借鉴对象 。(应用上有没有可解决的。界面上比较喜欢哪个站点的设计。交互上有没有可参考的对象)

4 其它工程的细节问题。

比如(工期上的上下限是什么?

是否会需要与现有系统整合、是否需要数据迁移?是否会需要甲方的工程师合作?

是否有开发平台的限制?

是否有代码规范及标准?最终需要哪些开发文档和源码 )

第三步:取得共识。

与甲方取得共识非常重要,保证你所理解的那他们所理解是同一个东西。这一步需要你根据掌握的情况列出提纲,画出草图或框架图。有参考对象的,标注上,哪个部分会比较像某某。

然后请甲方确认, 这个框架是他们想要的。

  第四步:给出工程时间轴。

到了这一环节,就需要你的项目经理组织所有团队成员坐下来讨论,先划分功能模块,然后讨论每个功能模块的可行性、难度、花费时间、bug发生率、测试耗时。再讨论一头一尾 系统搭建和系统整合的所需时间。

项目经理对工程耗时和可行性完全心里有数后,画出工程的时间轴。包括并行状况,里程碑节点、测试期、缓冲期等(如何画工程时间轴,甘特图,我以后会专门写一篇)。时间轴要实事求是,并且预留好充分的缓冲期(工程师估时*2*110%)。

第五步:需求做减法。

大部分情况下,时间轴表现的状况都会超出客户的预期。如果客户对工期没有要求,也要提醒客户考虑 项目可行性风险、市场等候成本、市场或战略变化导致的浪费。

韩磊有一篇《大褂还是内裤》的blog很形象地描述过这个问题。

所以要和甲方一起尽量对需求做减法。把整体需求拆成2~3期,落实只开发最基础和最必要的一期需求。

这时签订正式开发协议。

不要忘了计算 需求文档和产品方案 的费用。

第六步:撰写详细的需求文档。

《框架图》下载西乔的模版。可视化表现产品的框架、布局、细节、部分交互。

《流程图》》下载西乔的模版。理出产品的逻辑关系。

《功能需求文档》》下载西乔的模版。 罗列 功能、应用、交互上细节,分离基础件,作为开发分工和系统及数据构造的 基础文档。

第七步:商讨需求文档

尽量召集甲方所有相关部门的负责人 一起召开这次会议,商讨需求文档。

在阅读到你的需求文档之前,可能甲方的大部分人都对产品没有可视和具象的理解。也从未关注到细节和逻辑关系。所以需要产品经理从全局角度和逻辑线索讲解文档。

更可能发生的状况是,没有人坚持看完或仔细看过你写的文档。

所以这次会议是一场耐心和体力的考研。

文档作者需要 分别向各个部门指出他们需要关注和拍板的地方,听取他们的建议,将任何变动要求都分类记录。

安抚情绪。解答困惑。控制需求变动。

第八步:定稿需求文档

分职能(部门)类建立表格文档。将会议协商中所有 分歧性意见和变动意见 都逐条写下。抄送所有相关负责人。并要求他们纠正分歧和确认变动。

所有会议中可能被提出但是未出现在此邮件文档中的 意见,不会列入需求文档中。当然允许可以书面反馈补充。

根据确认过的反馈回复,修改需求文档。直到需求文档定稿。

协商讨论和文档修改可能经过2~3轮。所以需要项目经理提前提醒客户注意,搜集需求和文档定稿的 时间线里程碑。如果这个阶段耗时过久,会严重延误整个项目进度。要求客户尽量集中地谨慎地提出建议和修改。

三种武器:

需求问卷:无论是面对专业还是不专业的客户,交流中都有很多没考虑到的遗漏点,这些他们看不到的点往往是最关键的点,也有可能是被客户故意规避掉的点。

此时撰写一份需求问卷非常有效。

问卷里提出重要的全局性的问题,需要客户逐条书面回答。

某些问题可以提供多个选项答案,及补充区域。

某些问题 需要确凿的态度,Yes或NO。

不要提出需要客户写一大段表述性文字的问题。

需求问卷精简扼要,有针对性,重要,不要浪费客户的时间,不要把写字的工作量丢给客户。

书面确认:

书面确认 一方面包括 :所有讨论结果、建议 和变更 都要有书面文字备查。电话和开会上说说的这些口头表达都没有效应。这一点一开始你就要声明,甚至有必要写在合同里。

另一方面包括:你要尽量提供书面的可视化的东西 来让甲方确认。

甲方很难完备或是提供适合工程使用的文档。所以千万不要在项目初期的需求文档上省懒。

邮件抄送:

邮件抄送一种明确职责的方法。对方可能不看你的邮件,但代表你告之过。

尽可能地抄送重要邮件给战略层,可以能避免一些重大问题的出现。

结语:

到此看起来,搜集和确定需求真是一件耗时耗力的工程。

其实在理想的工程项目时间分配中,1/3的时间用于确定所有需求和开发文档。 1/2的时间用于测试,解决bug,安全测试、压力测试等。真正用于开发的只应该占1/6。

当然web项目的开发肯定达不到这个理想状况。但是也由此可见需求阶段的重要性和工作量。这一阶段省一分力或有一分遗漏,到了项目后期可能需要十分力来弥补。

转载于:https://www.cnblogs.com/hedianwei/p/5671366.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/272577.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html复制文字兼容手机,JavaScript+Html5实现按钮复制文字到剪切板功能(手机网页兼容)...

新学习JavaScript,就碰到这么一个需求,几乎网上的方法都试过了。写出了总结下使用的方法:clipboard插件下载地址:https://github.com/zenorocha/clipboard.js/tree/master引入插件:目录\clipboard.js-master\dist\clip…

MVC5 Controller构造方法获取User为空解决方法

用如下方法获取UserId报空引用异常 public class BaseController : Controller {protected SiteContext db new SiteContext();protected Guid userId;public BaseController(){userId Guid.Parse(User.Identity.GetUserId());} } 由于Controller未初始化完成,Use…

计算机应用领域的CIMS,计算机的应用领域

计算机的应用领域近年来,计算机技术得到了飞跃发展,超级并行计算机技术、高速网络技术、多媒体技术、人工智能技术等相互渗透,改变了人们使用计算机的方式,从而使计算机几乎渗透到人类生产和生活的各个领域,对工业和农…

VS2015企业版专业版密钥

亲测可用,有需要的可以mark一下!专业版:HMGNV-WCYXV-X7G9W-YCX63-B98R2企业版:HM6NR-QXX7C-DFW2Y-8B82K-WTYJV

Thinkphp编辑器扩展类kindeditor用法

一, 使用前的准备。 使用前请确认你已经建立好了一个Thinkphp站点项目。1,Keditor.class.php和JSON.class.php 是编辑器扩展类文件,将他们拷贝到你的站点项目的ThinkPHP\Lib\ORG\Net 目录下。2,editor目录是kindeditor的核心包。将…

实时操作系统与通用计算机操作系统的区别,实时操作系统(RTOS)和通用操作系统(OS)之间的区别...

RTOS vs OS大多数人都熟悉电脑上使用的操作系统。用于个人电脑的最常见的操作系统包括:微软的Windows,苹果的OS X以及各种版本的Linux。但是多数人都不知道实时操作系统(缩写RTOS),一种用于实时响应的更专业化的操作系统。RTOS和OS两者之间最…

Memcached的基础梳理

1 、Memcached 概念官方解释如下:What is Memcached?Free & open source, high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load.Me…

html5 canvas 笔记五(合成与裁剪)

组合 Compositing globalCompositeOperation syntax: globalCompositeOperation type 注意:下面所有例子中,蓝色方块是先绘制的,即“已有的 canvas 内容”,红色圆形是后面绘制,即“新图形”。 source-over  这是默认…

一个能够编写、运行SQL查询并可视化结果的Web应用:SqlPad

SqlPad 是一个能够用于编写、运行SQL查询并可视化结果的Web应用。支持 PostgreSQL、MySQL 和 SQL Server。SqlPad 目前仅适合单个团队在内网中使用,它直接通过网络连接到数据库服务器,任何人可以在上面执行任意 SQL 语句。安装首先安装 Node.js.安装好No…

加拿大计算机语言学,加拿大语言学专业排名

语言学专业简言之就是学习语言,包括语言的结构、形成、历史、以及人们如何使用语言等等。下面出国留学网小编和大家聊一聊2018加拿大大学语言学专业排名,希望对同学们有所帮助,欢迎阅读。1麦吉尔大学 McGill University麦吉尔大学是全球大学校…

UIView之常用方法

UIView之常用方法 将一个视图添加为子视图,并使之在最上面显示 -(void)addSubView:(UIView *)view;将指定子视图移动到顶部 -(void)bringSubViewToFront:(UIView *)view;将指定之视图放到最下面 -(void)sendSubViewToBack:(UIView *)view;将指定视图添加到subviews数…

Web前端开发框架对比

近几年随着 jQuery、Ext 以及 CSS3 的发展,以 Bootstrap 为代表的前端开发框架如雨后春笋般挤入视野,可谓应接不暇。不论是桌面浏览器端还是移动端都涌现出很多优秀的框架,极大丰富了开发素材,也方便了大家的开发。这些框架各有特…

html5 筛子,html5摇骰子游戏

骰子游戏body#can;can;ctx;[];;;]]];window.οnlοad function(){can);ctx);ctx.clearRect(0,0,can.width,can.height);for(var i0;ictx.fillStyle orange;ctx.fillRect(diceCoordinates[i][0],diceCoordinates[i][1],40,40);draw(diceCoordinates[i],i,pointCoordinates[i]);…

关于xcode7编译旧项目崩溃-[UIApplication _runWithMainScene:transitionContext:completion:]

崩溃原因 crash:Assertion failure in -[UIApplication _runWithMainScene:transitionContext:completion:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-( *** Terminating app due to uncaught exception NSInternalInconsiste…

linq.js的用法

linq.js 详细介绍linq.js 是一个 JavaScript 实现的 LINQ。主要特性:实现所有 .NET 4.0 的方法complete lazy evaluationfull IntelliSense support for VisualStudiotwo versions - linq.js and jquery.linq.js (jQuery plugin)support Windows Script Hostbinding…

标准MD5加密算法

标准MD5加密算法: public class Md5 {public static String getMd5(String s) {char hexDigits[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,a, b, c, d, e, f };try {byte[] strTemp s.getBytes();MessageDigest mdTemp MessageDigest.getInstance("md5");mdTemp.update(s…

程序员大牛们的经典语录

1、很多问题不见得会出在你身上,但你亦需要想法解决问题,否则就会变成你的问题;2、懂得但策略的说不(不会这个准备累死吧,程序员);3、我考进事业单位,呵呵,没有传说中的那…

linux下创建的符号链接的权限

今天为shell脚本创建符号链接的时候突然发现的, 创建的符号链接文件的默认权限是 777, 而想要这个脚本可执行, 必须为真正的文件加上 x 权限才可以. 转载于:https://www.cnblogs.com/vanwoos/p/5075656.html

计算机osta试题,OSTA试题库.doc

OSTA试题库章节单选多选填空判断小计计算机基础知识64152020119Windows操作系统4810101583计算机网络应用4810151184Word文档处理51172120109Excel电子表格处理4515152095PowerPoint演示文稿制作5215112098多媒体技术4512102087合计35394102126675计算机基础知识(64152020120)一…

SQLSERVER得到数据库中所有表字段及字段中文描述

如何得到数据库中所有表字段及字段中文描述以下资料,通过csdn的一位师兄从SQL版主那得到:sql中SELECT (case when a.colorder1 then d.name else end) N表名, a.colorder N字段序号, a.name N字段名, (case when COLUMNPROPERTY( a.id,a.name,IsIdentity)1 then √else end)…