写好MRD的10种技巧[转]

转自:http://bbs.bianews.com/thread-69395-1-1.html

        MRD-“市场需求文档”,是产品经理或者产品市场经理编写的一个产品的说明需求的文档。这些文档用于计划一个新产品或修正一个已有的产品,是被工 程师团队开发产品时使用。         在硅谷的一些软件公司,MRD仅仅覆盖high-level的功能。在这种情况下,产品经理通过创建了另一个文档-通常指的是PRD(产品需求文档)来 定义更加详细的产品需求。
        在本文中,我用术语“MRD”泛指所有那些由产品管理和/或产品市场团队创建的,为工程师团队传达产品需求为目的的文档。
       写好MRD的10种技巧
1、从用户角度的编写
        从用户角度编写需求内容。使用“用例(Use Case)”和“用户角色(User Personas)”来达到这个。考虑用以下两种方法来详细说明你们公司正在开发的SFA(sales force automation)软件的“Login”的功能性。
       方法A:
       用户通过一个要求用户提供证书的登陆界面,然后软件允许用户带着特定的权限进入系统。软件鉴别这些证书,在鉴定通过的基础上允许用户访问那些他们有权限访问软件的功能部件。
       方法B:
        Mike是一个销售经理,Cathy是一个销售代表。当他们打开软件,他们看到登陆界面。他们通过用户名和密码进入系统。如果用户名和密码是正确 的,他们能登进系统。一旦登陆进系统,Mike能访问软件所有的功能部件。Cathy只能访问那些对销售代表有有效的功能部件。
        哪个方法更加容易阅读和理解?就我的看法,毫无疑问,”方法B”。还有,它同时减少了令人烦恼的阅读!
2、使用Screen Shots

        使用Screen Shots或者mockup来你的想法。我们中很多人都听说过“一张图片好比一千个文字”。当提到写MRD的时候,一个screen shot好比一千个文字!
        举个例子,看看下面这个screen shot,你需要多少字来描述?我想可能不只一千个字。
3、用简单的语言编写
        在我超过11年的行业中,我通常注意到的(更多是令我懊恼)一件事是用很做作的语言来写的MRD。我想这个主要是因为MRD听起来是正式的和专业的原因吧。
        相反,想象你写的MRD是写给你的在工程师团队工作的朋友。你的目标是帮助他理解你需要什么,以便于他能开发产品实现这些需要。这个将有助于你避开陷入那些令读者人厌烦(有时他们会把MRD撕碎然后再碎片喂给碎纸机)的用做作的语言的陷阱。
        还有:
        a)保持简短的语句,把长的语句分解成多个小的语句。
        b)避免大篇幅的连续文本,把他们分解成多个小的章节。
        c)把大块文本内容分解成,screen shots,表格、重点列表等等。
4、小心的使用模板

        我发现MRD模板非常有用。他们的几个好处包括:
        a) 模板提供了一个标准的格式,使那些不得不阅读大量MRD的读者更加容易阅读。
        b) 模板让新的产品经理快速的写MRD变得容易,因为公司与公司之间的MRD内容是不同的。
        c) 模板确保你不会忘记所有需要在MRD中覆盖描述的部分;
        然而,一些公司过分的使用模板。一个硅谷最大的公司之一有一个所有部分被强制使用的近60页的模板。我觉得这个让人觉得非常难以忍受并且有几个负面的作用:
        a) 产品经理害怕但又不得不写MRD – 几乎和不得不和Dick Cheney去南德克萨斯打猎一样(译者按:美国副总统Dick Cheney在南德克萨斯打猎时意外的打伤了和自己一起去的打猎伙伴)。
        b) 工程师团队害怕但又不得不阅读MRD。
        c) 写MRD和读MRD都需要花大量的时间。
        我推荐你使用MRD模板,但确保他们不要过分的长。还有如果需要,确信产品经理可以灵活的跳过模板某些部分和创建新的内容。
5、区分需求的优先级
        在这些年里,我从来没有碰到一个工程师团队实现了MRD里包括的所有特性的没有删减的项目-通常由于那些我们控制之外因素!
        这就是说作为MRD作者的产品经理,当出现需要决定取舍的时候,应该提供一个办帮助让他们决定那些特性要实现那些可以推迟。
        区分需求的优先级是一个最好的能帮助完成这个事情的办法。我发现把需求分等级就像P1,P2,P3…这样工作的刚刚好。在这个分类中-P1是最高优先级,P2是第二高优先级等等。
        最好的决定一个已经明确的需求的优先级方法这个需求实现后的好处-包括你的客户和你的公司。在实际实践中,最好是和其他多种因素一起综合决定。
        我推荐你只要包括P1,P2,P3的需求在你的MRD中,在多数的项目中更低的优先级可能未必会实现。还有这样也让MRD变得更加容易读。
6、说明”是什么”和”为什么”,但不要”如何”
       产品经理为理解客户的需求负责,然后基于这些理解定义什么和为什么需要开发.
有一件比任何事情让开发者发疯就像在几英里外都能听到的汽笛在他们耳边尖叫一样的是一个令人痛苦的详细描述了怎样实现每一个需求细节的MRD。
       考虑你们公司正在开发的以下两种描述CRM“Login”功能的方法。
       推荐-描述“是什么”
       Mike是一个销售经理,当他打开我们的CRM软件,他会看到一个登陆界面…登陆界面建议提供“记住我”复选框。如果Mike在点击登陆按钮之前选择了该复选框,我们的软件将记住并且在他下次来到登陆界面时自动填写他的名字。
       不推荐-描述“怎么样”
       Mike是一个销售经理,当他打开我们的CRM软件,他会看到一个登陆界面…登陆界面建议提供“记住我”复选框。如果Mike在点击登陆按钮之前选择 了该复选框-将通过Javascript 保存他的名字以cookie的方式写到他的硬盘。当cookie写到硬盘后,用户名和密码将被发送到服务器。下一次Mike来到登陆界面 时,Javascript 将读取他的cookie,成功读取后,Javascript 将是适当的DOM命令填充登陆页面上的用户名。好的产品经理擅长理解用户的需求和描述什么需要实现,好的工程师擅长决定怎么样实现它。好的工程师希望能自 由的决定怎么样最好的实现用户希望得到的东西。
      

互联网产品经理必备文档介绍(转)

转自 http://bbs.bianews.com/thread-69395-1-1.html

BRD
  Business Requirements Document,商业需求文档。这是产品声明周期中最早的问的文档,再早就应该是脑中的构思了,其内容涉及市场分析,销售策略,盈利预测等,通常是和老大们过的ppt,所以也就比较短小精炼,没有产品细节。

  商业需求文档重点放在定义项目的商业需求。BRD要能说出客户碰到的一个或多个商业问题,并且通过公司的产品能够解决这些问题。接着建议一个方案 —— 通常是新产品或者现有产品的改进来解决这些问题。BRD也可能包括一个高级的商业案例,例如收益预测,市场竞争分析和销售/营销策略。BRD通常是由拥有 产品经理,产品营销经理或者行业分析师头衔的人撰写的。在小公司,可能由高级主管或者甚至创始人撰写。BRD通常是一份连续的1-3页Word文档,或者 不超过10页的Powerpoint文档。
MRD
  Market Requirements Document,市场需求文档。获得老大的认同后,产品进入实施,需要先出MRD,具体来说要有更细致的市场与竞争对手分析,通过哪些功能来实现商业目 的,功能/非功能需求分哪几块,功能的优先级等等。实际工作中,这个阶段PD可能的产出物有Mind Manager的思维图,Excel的Feature List等。
  市场需求文档(MRD)重点放在为一个被提议的新产品或者现有产品的改进定义市场需求。与BRD指出商业问题和解决这些问题的解决方案不同,MRD更深入提议解决方案的细节。它包括一些或者所有这些细节:
            a. 解决商业问题所需要的特色
            b. 市场竞争分析
            c. 功能和非功能需求
            d. 特色/需求的优先级
            e. 用例
  MRD通常是由拥有产品经理,产品营销经理或者行业分析师头衔的人撰写的。MRD通常是一份连续的5-25页Word文档,或者正如之后描述那样在一些机构中甚至更长。
PRD
  Product Requirements Document,产品需求文档。进步一细化,这部分是PD写得最多的内容,也就是传统意义上的需求分析,我们这里主要指UC(use case)文档。主要内容有,功能使用的具体描述(每个UC一般有用例简述、行为者、前置条件、后置条件、UI描述、流程/子流程/分支流程,等几大 块),Visio做的功能点业务流程,界面的说明,demo等。Demo方面,可能用dreamweaver、ps甚至画图板简单画一下,有时候也会有 UI/UE支持,出高保真的demo,开发将来可以直接用的那种。
  产品需求文档(PRD)重点放在为一个被提议的新产品或者现有产品的改进定义市场需求。与MRD侧重于从市场需要角度看需求的不同,PRD侧重于从产 品本身角度看待需求。通常在特点和功能需求上更深入细节,并也可能包括屏幕截图和用户界面流程。在那些MRD不包括具体需求和用例的机构中,PRD就包含 这些具体内容。PRD通常是由拥有产品经理,行业分析师或者产品分析师头衔的人撰写的。PRD通常是一份连续的20-50页Word文档,或者针对复杂产 品甚至更长。
  提醒:一些机构将这里描述的MRD和PRD合并成一个文档,并称最后的文档为MRD。在这种情况下,MRD包括本段描述的内容,也包括上一段描述PRD的内容,并且可能超过50页。
FSD
  Functional Specifications Document,功能详细说明。有一点像“概要设计”,这步就开始往开发衔接了,产品UI、业务逻辑的细节都要确定,细化文档并保持更新。相应的,有很多内容,比如表结构设计,要由项目经理来编写了。
  功能规格文档(FSD)把焦点集中在实现,定义产品功能需求的全部细节。FSD可能通过一张张的截屏和一条条功能点来定义产品规格。这是一份可以直接 让工程师创建产品的文档。与MRD和PRD侧重于以市场需要和产品角度看需求不同,FSD把重点放在了以表格形式定义产品细节,再让工程师实现这些细节。 FSD也可能包括完整的屏幕截图和UI设计细节。FSD通常是由拥有产品分析师,工程领导或者项目经理头衔的人撰写的 – 作者通常属于工程部门。通常一个连续几十页的Word或类似文档。

概要设计应该包括哪些内容

转自:http://learnsoftwareprocesses.com/2007/09/20/high-level-design-document-template/

The High Level Design Document is a pretty important document for a project, covering at a high level the overall design of the solution. If one were to try and present a very succinct summary of the High Level Document, it could be something like this:
– Detailed use case scenarios of key process flows of the application
– The class model and relationships
– The sequence diagrams which outline key use case scenarios
– The data/object model with relational table design
– User interface style and design

High-level design is the transitional step between WHAT [requirements for sub-systems] the system does,
and HOW [architecture and interfaces] the system will be implemented to meet the system requirements.
This process includes the decomposition of system requirements into alternative project architectures and
 then the evaluation of these project architectures for optimum performance, functionality, cost, and other issues
[technical and non-technical]. Stakeholder involvement is critical for this activity. In this step,
internal and external interfaces are identified along with the needed industry standards.
These interfaces are then managed throughout the development process.

Some examples of a High Level Document available at these links:
Link 1, Link 2, Link 3, Link 4

Writing a Good Thesis

Software testing课上觉得最有用的居然是最后一个slide – Writing a Good Thesis

  • Introduction, explaining the target of the study
  • Motivation of the study, such as problems in current methodologies
  • Background or related work
  • Theory with mathematical proofs or sketches of rationales
  • Algorithms with descriptions
  • Implementations
  • Real-life applications
  • Evaluations such as complexity analysis, case studies, experiments, and comparison with results from related work
  • Discussions, including alternative strategies or approaches, and threads to validity
  • Conclusion and future work