精华内容
下载资源
问答
  • 典型工作任务与学习任务分析报告(1).doc
  • 计算机网络技术专业典型岗位及典型工作任务分析调研报告.pdf
  • webUI设计资料典型工作任务描述表.doc
  • 课件:典型工作任务八 网络客户关系管理.pptx
  • 浅谈《服装CAD》典型工作任务的设计.pdf
  • 高职室内设计专业应该采用嵌入式的...依据教育部下发的《基于工作过程的学习领域课程开发规范》,在进行课程设计时首先要进行典型工作任务的确定,本文介绍了确定高职室内设计专业典型工作任务的方法、过程和结果。
  • 以检测电动汽车绝缘电阻为典型工作任务的学习情境设计方案.pdf
  • 基于典型工作任务,构建新能源汽车技术专业课程体系的探讨.pdf
  • 基于典型工作任务的《CAD_CAM联机操作》课程改革实践.pdf
  • 五年制高职《机械制图与CAD》课程典型工作任务分析.pdf
  • 需求理解目 录 CONTENTS我们要做什么竞品参考总结与制作以早范APP作为案例在初期需求是制作一款服务于早餐市场的APP线上下单平台后我们开始进行一步步的推演制作挖掘体系具体步骤1.了解初期目标2....
  • ;简单的说游戏里的UI属于游戏UI除了游戏以外的那些产品比如微信美团等里的UI都属于应用UI;应用UI是注重平静的界面设计 游戏UI是用界面来辅助游戏画面让用户对画面产生沉浸...游戏UI与应用UI的工作岗位方向不同 应用UI的
  • Photoshop软件的基本运用二目 录 CONTENTS抠图技法实际演示PART 01抠图技法思路详解选区介绍工具介绍思路详解如何抠图作为一名设计师而言学会制作好的素材是为了之后制作各种效果进行铺垫因此我整理了抠图的大体思路...
  • ;客户需求提炼;客户需求提炼;动效交互设计;动效交互设计;速率;首页介绍;弹窗介绍;其他界面介绍;其他界面介绍;其他界面介绍;其他界面介绍;其他界面介绍;其他界面介绍;其他界面介绍;
  • 后7个典型工作任务的完成过程中,以“讲清语法,学以致用”为指导思想,将工作任务中用到的主要原理以实例的形式讲解,代码部分关键地方都做了注释,便于读者领会掌握。每个工作任务后都有一个配套的实训任务用以...
  • 还包括了更多的特性,不光光只是一个代号,一个典型用户描述了一组用户的典型技巧、能力、需要、想法、工作习惯和工作环境。 在别的行业中可以用到 Persona 的设计方法。我今天去银行开账户。开完账户后,服务生...

    当我们写一个软件的时候, 都知道要为用户考虑, 但是用户在哪里?  有同学写 “图书馆管理系统” - 说来图书馆的同学都是我的用户, 但是他们有没有区别呢?  有同学写“自动柜员机系统”, 那到底有多少类型的用户来到柜员机前呢?   这些都是团队成员在需求分析和设计阶段要反复琢磨的问题。

     

    有同学说, 我把用户的愿望百分之百地实现了, 这不就行了么?  不要搞那么多分析啊, 故事啊, 心理啊, 讨论啊, 文档啊…  请看这个笑话:

    image

    image

     

    在长时间一丝不苟的实现之后…

    image

     

    得到了和用户要求一模一样的产品!

    image

    但是用户满意吗?

     

     

    光看用户的表面语言或行动还是不够的。我们还要找到用户语言行动背后的动机

    user_study_hotel_room (图像来源: http://www.weibo.com/funnyshoelace)

     

    有同学会说, 我只要把产品做得可扩展性特别好, 一般用户到超级用户都能搞定就行了! 且不论这是否能覆盖所有用户, 一味追求“最大的扩展性”也有很多副作用。

    几年前有一款www 浏览器有不少安全性的问题,  安全专家在忙于补救各种安全漏洞之时, 发现它的 “网站地址栏”允许的最长输入是 4兆个字符! 4百万个字符啊, 多适合做缓冲区溢出的攻击啊!  但是有哪个正常的网站或用户要输入这么长的网址呢? 

     

     

     

    [讨论]

    Visual Studio 是一个非常成功的软件开发集成环境 (IDE), 它支持VB/C/C++/C#/ASP.net/WPF/… 等等不同的开发语言和套件, 用户可以写几行的 hello world 程序, 也可以写几万行的多线程软件,  它还支持项目管理, 测试工具, 以及第三方的插件… 它的众多用户分布在全世界大大小小的国家,  各行各业的公司, 大大小小的团队,  有些是业余爱好编程, 有些是老师和学生, 有些是专业开发人员…  很多用户对它也有很多改进意见,  那我们到底为哪些用户服务呢?  同时, VS 的微软团队也有很多开发人员, 他们也是用户, 只听取他们的意见是不是就够了呢?  在开发一个新版本的Visual Studio 时候,如果你来主持需求分析工作, 你的工作结果会指导上千名工程师, UI 设计师, PM, 市场推广人员未来两年的工作。  你怎么办?

     

    [给大家10分钟讨论]

     

    下面是微软在Visual Studio 2005 设计阶段使用的几个 典型用户 (persona):

    典型用户造型Persona details特点
    MortimageMort, the opportunistic developer, likes to create quick-working solutions for immediate problems and focuses on productivity and learn as needed.

     Mort is someone who doesn't consider programming their main job. Maybe they are a statistician, biologist, or construction estimator, who also knows quite a bit about programming. They are opportunistic, using whatever tool comes to hand that will get the job done.

    不一定是专业出身的程序员,  他们有自己的主业,  编程只是一个工具, 他们的主要目的就是用工具把事情搞定就行了。他们很喜欢代码示例, 也不特别关心程序效能。   (例如许多 VB 用户, 偶尔用VS 写程序处理数据的研究人员等)
    ElvisimageElvis the pragmatic programmer, likes to create long-lasting solutions addressing the problem domain, and learning while working on the solution.
    Elvis:  journeyman developer.
    You can scope out a job and give it to them, and the job will get done. In general, Morts don't become Elvises. Morts want to do their main job; they don't WANT to become a professional developer.  Elvises go to school and get CS degrees.
     
    以编程为生的程序员,  他们大多是CS 专业出身。 各种IT 公司的开发人员应该是在这一类中。 
    EinsteinimageEinstein, the paranoid programmer, likes to create the most efficient solution to a given problem, and typically learn in advance before working on the solution.
    Einstein is a smart Elvis who has lots of experience.
    Einstein can see the big picture. An Einstein often is in a position of responsibility, choosing technologies and designing large software systems.
    在行业里战斗了很多年的程序员, 架构师, 项目经理。 他们能决定项目用什么样的技术以及发展路线。 

    这里有一些网上关于VS 各种典型用户的评论

     

    我在移山之道里也举了一些和中国程序员较接近的例子 [移山之道 第14章]

    14.1  典型用户

    大牛和小飞在讨论网站界面的时候吵了起来。

    大牛:这个界面对于一般用户来说太复杂了。一般人根本搞不懂。

    小飞:我们这个界面是针对有很多经验的用户,就像卖石头的吴石头,他搞石头生意有那么些年了,他应该对我们用的术语比较熟悉,而且会用电脑,我们并不针对初次使用我们系统的用户,或者对奇石生意有了解,但是对电脑一窍不通的人,就像石头他爹。

    大牛:不对,我们要针对那些对奇石生意有了解,但是对电脑一窍不通的人,我们有一些功能是为这些用户设计的。

    小飞:不对,我们主要的用户是对石头生意很了解,并且对电脑的使用很熟悉的人。而且这也符合所谓“Persona”的要求。

    大牛:我不管你的“Person-a”,我们要分析用户的需求,在把需求搞清楚之前,管他“Person-a”还是“Person-b”,都没有用。我们还是不要用这些名词忽悠我们自己。

    他们俩一起来到阿超面前,把事情原委说了一遍。

     

    阿超:所谓“Persona”,就是典型用户,吴石头/石头他爹就是我们系统的两个典型用户。我们的确要了解我们软件系统的用户(不是公司的商业客户),那么,什么是典型用户?

     

    在产品开发的过程中,我们经常需要描述一组典型的用户。以前大家通常是以一些抽象的名词来表示,如“家用电脑初学者”,“经验丰富的系统管理员”,现在我们建议用一个“典型用户”来代表。典型用户不再是一个抽象的概念,而应该是一个活生生的人物。

    典型用户有哪些特性?

    一个典型用户描述了一组用户的典型技巧、能力、需要、想法、工作习惯和工作环境。

     

    大牛:以前我们管台风叫1号、2号,现在都起了名字,叫云娜、海棠、卡特丽娜、桑迪,等等,是不是跟MSF-Agile学的?

    阿超:这你得问气象部门,至少台风“海棠”比单纯的数字好记。但是我们的Persona还包括了更多的特性,不光光只是一个代号,一个典型用户描述了一组用户的典型技巧、能力、需要、想法、工作习惯和工作环境。

    在别的行业中可以用到Persona的设计方法。我今天去银行开账户。开完账户后,服务生在窗口后低着头,过一会看我还坐着,就说,没事了,你可以走了。我还想了解一些其他的服务,比如信用卡/理财账户,等等,她好像对此没有兴趣。看起来银行把我的“开户”处理成一个单独的事件,开了账户就完了。如果银行分析开户人的Persona,它可能了解一些典型用户的典型心理,比如小企业主崔大智来开户,他就是来开个户就完了?当然不是!他有不少钱,可能申请信用卡、建立理财计划、贷款、联系代发工资,等等。如果银行仅仅帮他开个户就把他打发走了,那样失去了多少商机?!

     

    在设计软件的过程中,我们(设计/开发者)往往会以我们使用产品的习惯和我们对产品的熟悉程度出发设计,忘了我们的软件是给千千万万个不那么会用电脑的人使用的。在这种情况下,搞一个“典型用户”会强迫我们在考虑问题时从用户的角度出发。

     

    大牛:阿超刚才提到别的行业,我想起一个例子,两年前俺们村接待了国外的投资参观团,我临时被抓过去作翻译。村长和支书兴冲冲地带领他们参观了王屋村的产值大户——小化工厂和烟花爆竹厂。他们带领客人穿过粉尘弥漫的化工厂车间,弄得老外咳嗽不止。在车间外,大家看到没有处理的污水直接排放到王屋河中;到了烟花爆竹厂,大家看到数十名没有任何安全保护的女工在安装各式烟花,空气中不用说有硫磺和其他化合物的味道。参观团的团员们发出了介于惊讶和恐惧之间的评价,我很难翻译成中文。参观团走后就杳无音信了。

    如果分析客户的情况,从客户角度出发,就会发现他们是想来开发这一带的以历史传说为背景的人文旅游资源,他们想看到的是未被污染的风景——王屋河的上游有不少,还有淳朴农家的生活方式,我们也有,当然支书家的生活方式已经不能用“淳朴”来形容。可惜我们没有让客户看到他们想要的东西。

    小飞:对呀,去支书家可以看到资产阶级的生活方式,我目前没有搞懂的是他家是小资还是大资。


     

    14.1.1  怎样定义典型用户

    怎样才能定义典型用户呢?我们首先要定义用户的角色。正如戏剧中有正面和反面的角色,软件系统中也有受欢迎的和不受欢迎的典型用户。如果用户有不同的安全需求,切记要定义不同的角色来适应这些需求。如下面的例子:

      受欢迎的典型用户—指那些按设计者的期望使用系统的用户,如网站的购物者

      不受欢迎的典型用户—指那些有不正当目的的用户,如在一个房地产业主论坛中滥发房屋中介广告的用户—这些用户也许在别的系统中(如房屋中介论坛)是受欢迎的。

    Persona可以包括以下内容:

    1)名字(越自然越好)。2)年龄(不同年龄和收入的用户有不同的需求)。3)收入。

    4)代表的用户在市场上的比例和重要性(比例大不等同于重要性高,如付费的用户比例较少,但是影响大,所以更重要)。

    5)使用这个软件的典型场景。6)使用本软件/服务的环境 (在办公室/家里/沙发/床上/公共汽车/地铁…)。

    7)生活/工作情况。8)知识层次和能力(教育程度,对电脑、万维网的熟悉程度)。

    9)用户的动机、目的和困难(困难 = 需要解决的问题)。 10)用户的偏好。

     

    我们的软件不是为所有人服务的。

     

       问:那这样不就是损失了大量潜在的用户,我们至少得争取一下为所有人服务,如果不行,再回到少部分用户?

    答:不妥,我们宁可从小部分人出发,要非常明确地定义谁是我们的用户。

    回过头来看,Stone 网站有什么基本角色呢?大家杂曰——

    1)商户:在网站上出售货物的用户。

    2)买家:在网站上购买货物的用户。

    3)浏览者:在网站上浏览,并比较货物,并不购买。

    4)广告商:在网上卖广告,这些角色可能不会直接使用网站的用户界面。

    5)管理员:管理网站。

    6)捣乱者:想入侵网站,窃取资料,在留言中发未经许可的广告,搞人身攻击等。

    TFS项目的门户网站中有定义典型用户的模板(路径一般是<网站名>Requirements/Persona.doc)。可以用作参考。在大牛和芸芸的带领下,大家整理出来了下面几个典型用户,如表14-1至表14-6所示。

     

     

    14-1  吴石头——下水捞石头的人

    名字

    吴石头

    性别、年龄

    男,45

    职业

    经营石头生意

    收入

    10万元/

    知识层次和能力

    初中毕业,用电脑只会玩简单的游戏

    生活/工作情况

    通过卖石头,在王屋村有自己的房子

    动机,目的,困难

    结识更多买家,扩大销路,争取卖个好价钱,给孩子盖房娶媳妇。困难:不知道怎么去扩大销路

    用户偏好

    抽烟,晒太阳

    用户比例

    典型场景

    他从河里挖出一块石头之后,要把这块石头的信息弄到网上去

    典型描述

    石头越捞越多,钱越赚越少

     

    表14-2 吴小石头——让石头上了网

    名字

    吴小石头

    性别、年龄

    男,20

    职业

    帮他爹做石头生意

    收入

    目前都上交给他爹

    知识层次和能力

    河曲村农机技校毕业,能用电脑上网、聊天、游戏

    生活/工作情况

    帮他爹做石头生意,平时在顶球网吧

    动机,目的,困难

    希望早日盖房,独立。困难:要扩大销路,让更多的人知道我的石头

    用户偏好

    上网,游戏,交友

    用户比例

    典型场景

    回答买家问题,更新产品资料

    典型描述

    我不在顶球,就在去顶球的路上

     

     

    14-3  刘兰——上网捞石头的人,一般浏览及购买的用户

    名字

    刘兰

    性别、年龄

    女,永远28

    职业

    金融公司管理人员

    收入

    20万元/

    知识层次和能力

    大学,MBA,每天和电脑、数字打交道

    生活/工作情况

    职业有上升空间,目前享受独身乐趣

    动机,目的,困难

    工作累,以收集小玩意儿为乐趣。困难:很难找到真正有乡土气息的工艺品

    用户偏好

    看得多,买得少

    用户比例

    典型场景

    浏览各种货物

    典型描述

    白骨精—白领,骨干,精英

     

     

     

     

     

     

     

     

     

     

     

     

    14-4  钱炎凯——撒网大量收购石头的人——买家,二道贩子,

    鉴赏家,广告商

    名字

    钱炎凯

    性别、年龄

    男,40

    职业

    石头、古玩、工艺品经销商

    收入

    30万元/

    知识层次和能力

    大学,能用电脑上网、发邮件。不玩游戏。委托别人设计了自己的网站

    生活/工作情况

    在商店/外地来回跑,已婚

    动机,目的,困难

    要搜罗更多有独特价值的工艺品。困难:很多好东西都在深山老林里,不易发现;要让更多的人知道我自己的网站

    用户偏好

    下手狠,喜欢独特的货品

    用户比例

    典型场景

    比较各种货物

    典型描述

    货比三家,我家最好

     

    14-5  捣蛋鬼阿狗

    名字

    阿狗

    性别、年龄

    男,20

    职业

    某软件学院学生

    收入

    无正式收入

    知识层次和能力

    大学

    生活/工作情况

    从小用电脑,有很多业余时间上网捣乱

    动机,目的,困难

    看看能否进到管理员账户

    用户偏好

    喜欢没有密码的用户

    用户比例

    典型场景

    访问“登录”“忘记密码”网页

    典型描述

    没有我黑不了的网站

     

    表14-6 网管阿毛

    名字

    阿毛

    性别、年龄

    男,20

    职业

    某软件学院学生,兼职stone 网站网管

    收入

    实习生

    知识层次和能力

    大学

    生活/工作情况

    从小用电脑

    动机,目的,困难

    维护网站,最好什么乱子都没有。困难:最恨界面不统一

    用户偏好

    喜欢简单易管理的网站

    用户比例

    相当少,只有3~4

    典型场景

    删除帖子,管理用户,分析访问数据

    典型描述

    本网站不欢迎黑客

     

    定义了最初的Persona之后,是不是就可以开始写程序了?不,Persona只是我们的设想,这些都是纸上谈兵,我们还要和这些Persona的代表交流,理解用户,理解他们的工作方式和需要。然后再修改,细化Persona。于是移山公司的员工和实习生花了几天时间,做了不少用户调查,搞了不少头脑风暴,画了无数草图。

    芸芸:(回来报告)除了进一步了解用户的需求,细化了一些功能的设想外,我们还有一个重大发现,我们的第一个典型用户,吴石头,好像不喜欢上网,他事实上不太会用电脑,也搞不懂如何上传照片。凡是和网络相关的事情,都交给了他的儿子。所以我们不得不把吴石头从典型用户中删除。

    大牛:吴石头,再见了!

    芸芸:我们花了好多时间,结果精心打造的Persona却被取消了。伤心哪!

    阿超:不必这么伤心,越早发现问题,越早解决,不是更好么?如果我们一意孤行,一直为“吴石头”设计功能,最后却发现众多的“吴石头”却不能使用我们的软件,那岂不是更糟糕?

    当我们完善了典型用户的定义后,就要讲一些他们的故事, 进入“创立场景”阶段——创立场景就是我们深入理解用户需求的过程。


    14.2  从典型用户到场景

    有了典型用户之后,我们还得决定每一个典型用户的目标——他/她使用系统想要达到什么目的(如:购物者,产品提供商,滥发广告者……)对于每一个目标,列出达到目标所必须经历的过程,这就是场景,也可以叫故事/Story。注意,有些场景描述了成功的结果,有些场景描述了失败的结果。用户和系统有成百上千种可能的交互情况,在写场景的时候要有针对性。

    这是一个现实生活中银行从业者的微博, 他体会了 “ATM 无卡取现”功能的强大:

    特意带上手机和令牌不带卡,感受一下我行ATM的无卡取现,结果连自助银行的门儿都没进去,不刷卡怎么开门啊。。。。

     

      如果这一重要功能的设计者在需求分析的时候就模仿用户, 设计场景, 演一个戏. 也许很快就发现戏演不下去了。

     

    场景怎么写? 对每一个场景,设计一个场景入口(描述场景如何开始)。

    描述典型用户在这个场景中所处的内部和外部环境(内部环境指心理因素等)。

    给场景划分优先级,就按优先级排序。

    写场景(总得有人动笔写)。这一任务就由PM芸芸来负责,下面是她写的一个一页场景。

    移山公司文档 [http://www.yishan.cc]

    工作项序号128:商户上货,最后修改时间:2007/3/1

    1.背景:

    1)典型用户:吴小石头[主要]  刘兰[次要]

    2)用户的需求/迫切需要解决的问题

    a.吴小石头:上货过程冗长,要反复输入相似的文字,出错之后不容易恢复。

    b.吴小石头:上传图像文件较慢,各个图像的标定(正面,侧面,缩略图)较繁琐。

    c.吴小石头:上货完成后,最后的商品信息展示的整体效果事先不能知道。还要手工标注哪些是新产品,哪些是老产品。

    3)假设:

    a.商品信息展示功能已经完成。

    b.用户订阅某个商家的产品更新功能已完成。


     

    2.场景:

    关于这个场景的文字描述

    吴小石头要把最近处理好的两个石头工艺品放到网上去卖。他先登录Stone网站,如果他设置了“记住我的登录资料”,Stone网站会自动登录。

    他点击“上传产品信息”,然后就进入了上传页面。页面中各个字段的布局和最终用户看到的一样,这样他在编辑的时间就知道效果了。

    他可以选择先上传图像文件,网页可以自动开始后台处理图像文件的上传,这样当他处理网页其他资料的时候,图像也上传得差不多了。

    他依次输入商品的名字、描述等。网页自动记住了他以前输入的资料,在各个字段中都有提示,他一般选中以前的输入,然后稍作修改即可。

    他输入完必须填写的资料后,就可以选择下面三个动作之一:

    a.立即发布;

    b.保存,不发布;

    c.保存,继续编辑。

    选项c的作用是让他保存好已经输入的信息,不至于因为网络连接中断等原因而丢失。

    选项b让他可以保存资料,但是不立即发布。

    选项a让他可以立即发布商品信息。

    这次,吴小石头选择a,网页会检查输入的完整性,必要时给予提示。

    所有资料上传到网站后,网站会自动生成上传图像的各种缩略图(64×64128×128512×512等),自动把这一产品标注为“新产品”。系统同时根据规则(每个商户只能有10个新产品)把以前商品的“新产品”标注去掉。

    吴小石头在完成这一操作后,如果用户刘兰订阅了商户“吴小石头”的产品更新,刘兰就会收到一份E-mail,告知她喜欢的商家又有新产品上市了。

    3.其他资料

    1)商户登录网站场景参见TFS任务121

    2)商品展示场景参见TFS任务122

     

    场景之间如何区分呢,这就要求我们要找到这个场景中特殊的地方,对于共同的流程可以一笔带过,重点描述场景中特殊的因素。

    把场景组织成一个故事,这样就能把一个完整的用户与系统交互的流程记录下来,以后进行演示或验收都可以以此为基础。

    场景设计听起来这么好,但是做过了头会是什么情况?一天,大家在讨论“吴小石头上货”这一场景时,二柱叫到:“停,别忙了,我有了场景!”他从桌子底下抽出一个模型,上面摆着用纸糊起来的房子、院子等,中间有几个人形的木头疙瘩,他指着其中一个木头疙瘩说,“这就是吴小石头,我们问他怎么做就行了!”

     

    14.3  场景到任务

    有了场景,下面就由架构设计师和各个模块的负责人一起,沿着子系统/模块的所属关系把场景划分开。例如Stone项目的用户登录场景,就可以分为:

    1UI层。子任务为:界面设计,货物资料处理,文件上传处理,编辑控件等。

    2)逻辑层。子任务为:用户输入字段合法性处理,上传图像逻辑和缩略图处理,资料保存逻辑等。

    3)数据库。子任务为:资料读取的存储过程,图像的索引建立和维护等。

    不同的任务把一个场景编织起来,虽然有多个开发者参与这个工作,但是应该有一个开发者对整个场景负责,我们得到了开发任务之后,就可以创建和分配测试任务。

     

    14.4  从任务到代码

    14.4.1  接到任务

    小飞接到任务后,他会怎么办呢?他会做下面这几件事情。

    1)估计开发任务所需的时间,他会参考以前同类任务所需花费的实际时间,以及别的同事的时间估计。

    2)小飞会试着写一些快速原型的代码,看看效果会怎样。他在这一过程中发现了一些问题,通过和PM沟通,他们取得了一致意见。

    3)在看到初始效果和了解了实现的细节后,小飞开始写设计文档,写好之后,他可以请同事一起来复审设计文档(复审可选,因为一般情况下任务都不大)。

    4)设计文档写好之后,小飞就会按照设计文档写代码。在写的过程中,他又发现了一些原来没有想到的问题,通过和PM沟通,找到了解决方案。

    5)写好代码后,小飞对照设计文档和代码的指南作自我复审。

    6)创建或更新单元测试。

    7)进行单元测试(不仅要通过自己新创建或更新的单元测试,还要通过整个模块/系统的单元测试)。

    8)重构代码,如果必要的话。

    9)代码复审。

    10)把代码签入代码库中。

    由上可知,开发者必须写自己代码的单元测试。开发环境必须能够很快地让一些小的修改通过(做一个代码修改的最低成本是多少?例如,如果我只改动一个无关紧要的功能,要多长时间才能运行所有的单元测试。要求:快速,自动化)。

    14.4.2  把修改集集成到代码库中

    现在开发人员手头上有不少修改,分别属于不同的具体任务,那如何把这些修改签入源代码控制之中呢?

    1)根据场景和开发任务来决定集成的次序。

    2)互相依赖的任务要一起集成。

    3)在测试场景时,要保证端到端的测试。

    4)场景的所有者必须保证场景完全通过测试,然后把场景的状态改为“解决”。

    14.4.3  标准开发人员的工作流程

    综上所述,我们就可以得到开发人员的工作流程(如图14-1所示)。

     

    clip_image002[8]

    14-1  移山公司开发流程

     

     

     

    那什么, 嗯,模板还有么?

    有的。

    典型用户的模板

    Persona/典型用户

    1)名字(越自然越好)。2)年龄(不同年龄和收入的用户有不同的需求)。3)收入。

    4)代表的用户在市场上的比例和重要性(比例大不等同于重要性高,如付费的用户比例较少,但是影响大,所以更重要)。

    5)使用这个软件的典型场景。6)使用本软件/服务的环境。7)生活/工作情况。

    8)知识层次和能力(教育程度,对电脑、万维网的熟悉程度)。

    9)用户的动机、目的和困难(困难 = 需要解决的问题)。10)用户的偏好。

     

     

     

     

    场景/故事/Story的模板

     

    场 景 / 故 事 / Story

     

    版权信息 / 版本信息 / 维护人信息 / 版本记录

    1.背景:
    (1)典型用户
    (2)用户的需求/迫切需要解决的问题
    (3)假设
    2.场景:

    关于这个场景的文字描述。

    要列出这故事中出彩的地方, 软件的哪些功能让用户特别满意? 逻辑和界面设计要注意哪些因素? 第一次使用的用户和多次使用的用户在体验上有何区别对待?

    3.其他资料

     

    练习: 你的软件团队要设计一个银行的自动柜员机 (ATM) 的操作界面, 这个柜员机摆在银行营业厅的外面。 你觉得会有多少种用户来使用你的操作界面?


    练习: 你想写一个游戏, 你知道游戏用户有哪些种类么?

    参考答案: 有些公司根据玩家游戏生命周期特点来划分玩家类型:

    1 硬核 (hard core) 玩家根据游戏安排日程

    2 中度硬核玩家根据日常生活计划安排游戏时间

    3 休闲玩家只在刚好有时间时才以游戏作为消遣

    这些定义很实用,因为它使我们明确了玩家所期待的临时性体验。

     

    展开全文
  • 先看典型案例(personal info del): 0.1 现象描述 XG8B 2PON口下挂AN5200_10B 和AN5200_07B ONU,升级系统并重启后单播和语音有严重丢包,查看ONU的上行带宽限速只有0.5M,重启线卡后现象消失。在其他测试中对...

    定下心来,还是专心做技术吧~

    年前必须完成!

    先看典型案例(personal info del):

    0.1 现象描述

    XG8B 2PON口下挂AN5200_10B 和AN5200_07B ONU,升级系统并重启后单播和语音有严重丢包,查看ONU的上行带宽限速只有0.5M,重启线卡后现象消失。在其他测试中对ONU拔纤插纤操作也出现过同样的问题。

    问题定位

    (1) 首先在命令行中查看onu sla配置值,发现上行sla 配置只有0.5M, 配置显然未下发

    (2) 然后打开sla配置开关,显示onusla配置已完成(FINISHED)

    (3) 重置ONU sla配置标识为配置未完成(UNFINISHED),业务恢复;由此分析问题发生时,应用层未将sla配置下发到PON芯片,应用层保存的sla配置标识已为FINISHED。造成该问题有几种可能:

    1) onu掉线后应用层保存的sla配置标识未改变(此时应变为UNFINISHED);

    2) 应用层下发配置到PON芯片未成功,但返回成功导致配置变更为FINISHED;

    3) 其他未注意的因素;

    (4) 检查代码后确认所有ONU掉线的地方都会更新sla配置标识,可能1不可能出现;和PON驱动确认也不会出现可能2的情况;

    (5) 试图重现问题时发现单盘重启后存在ONU掉注册重新注册的流程,分析代码发现近期在系统启动流程中增加了ponReopenAllPorts()调用,该调用会导致已经注册的ONU掉注册;

    (6) 阅读应用层sla模块代码发现onu掉注册处理接口将该全局变量onusla配置标识置为UNFINISHED时,没有任何保护。也就是说,如果在配置sla配置标识为FINISHED前发生任务切换,sla配置标识可能被修改为UNFINISHED,任务切换回去后再接着配置为FINISHED

           Onu掉注册接口处理:

    应用层下发sla配置到pon芯片处理流程,若在配置成功处发生任务切换应该就会出现测试发现问题:

    (7) 分析系统中的任务:

    Sla配置接口由onu 配置任务调用,onu配置任务优先级为80,onu授权模块初始化后该任务即开始运行,运行过程中轮询调用所有配置相关接口,包括sla配置接口。

    Onu掉注册接口在事件处理任务接收到ID为7的事件时调用。事件处理任务优先级也为80,在系统初始化第二阶段启动。具体实现如下:

     

    即事件处理任务维护一个消息队列,当事件处理任务接收到ONU掉注册消息时调用上述onu掉注册处理接口(onLinkDeRegEvent())。

    事件处理任务和onu配置任务优先级相同,在shell下查看VxWorks操作系统全局变量roundRobinOn,值为0,表示当前系统中并没有开启时间片轮转模式,在相同优先级任务之间不会发生切换,除非onu配置任务等待资源就绪进入block状态。

    (8) 继续分析代码,应用层sla配置接口在下发sla配置给PON芯片后不需要等待任何资源。

     

    那么在哪里会出现资源等待呢?继续深入分析pon驱动代码,发现在底层接口ponSetLinkSLA()配置下行sla时需要semTake,而g_olt_list信号量在系统很多地方都会使用,这里很大概率需要等待信号量。

     

     

    (9) 结合测试问题分析,当应用层配置完上行slaonu掉注册,pon芯片配置清空,onu sla配置标识置为UNFINISHED,接着继续配置下行sla,配置完成后,sla配置标识置为FINISHEDonu配置任务下次轮询时发现sla 配置为FINISHED,不会再次下发sla配置至PON芯片,因此pon芯片上行sla配置依然为清空后的配置。


    
    展开全文
  • 在开发人员的日常工作中,编码工作主要包括了三种类型:用户故事(用户故事)、开发任务(Task)和缺陷(Defect)。尽管不喜欢缺陷,但是它是你生活的一部分,并且大部分的缺陷都与沟通相关,在这些缺陷中,团队成员...

    在开发人员的日常工作中,编码工作主要包括了三种类型:用户故事(用户故事)、开发任务( Task)和缺陷( Defect)。尽管不喜欢缺陷,但是它是你生活的一部分,并且大部分的缺陷都与沟通相关,在这些缺陷中,团队成员对功能的假设产生了偏差。

     

    一 个用户故事可以拆分为多个开发任务。一个常见的问题是:如何区别用户故事和开发任务?我们用海平面来进行区分,海平面即用户价值。项目目标是那高高的风 筝,它高高的飘扬,越过云彩,它是项目帮客户实现的商业目标,飘那么高,让客户瞅一眼就觉得激动万分;项目特性是那半空中的云彩,客户从风筝上下来,看到 的是项目所提供的大的特性,这些特性帮助客户实现其商业目标;接下来就是用户故事,是的,现在终于落地(海)了,用户故事是海上的点点小岛,它一半露在海 平面以上,另一半没在海平面下,客户看到的是海平面以上的东西,所以用户故事一定要包含用户价值,开发人员看到海平面以下的东西,所以用户故事一定要是可 评估的、可开发的,因为存在两种不同的角度看用户故事,所以用户故事一定要是可沟通的,围绕着海岛总是有很多的话题,例如,项目经理经常就会与客户就海岛 展开磋商,项目经理通常会说,时间来不及了,我们需要找出最有价值的海岛进行开发。而客户通常会说,不行啊,看人家海南岛,仅仅一个规划就把房价炒得那么 高,所有的海岛都要开发;开发任务则是海底的贝壳、扇类,它们是那样的美丽,以至于只有开发人员才能了解,当一个用户故事过大难以评估时,我们往往将它拆 分为多个开发任务,这些开发任务单独并不能为客户提供价值,只有当多个开发任务联合起来时才能显示价值,典型的,探索性技术开发都属于开发任务。是的,那 么结论是?

     

    开发人员都是潜水员!所以,怪不得那么多技术社区冷冷清清,如果你不提供内容,就别指望其他人为你提供内容。

     

    这样,当进行开发任务时,这些开发任务就与与之对应的用户故事构成了一个完整的对客户可见的价值域,作为开发人员,必须理解相应用户故事要解决的问题和验收条件,这些信息贯穿于所有开发任务的开发中,为用户故事和开发任务们所共享。

     

    那么,对于工作流里的块任务,它需要能够定义变量,这些变量数据能够在其子任务中共享。

     

    描述

    块任务(典型的如子流程任务)能够定义变量,在一个流程实例里,其所包含的子任务实例能够使用该变量。

     

    6-3块任务级别的数据可见性

    如图 6-3所示,我们在块任务 C上定义了一个变量 M,此时,在一个流程实例里,与其对应子流程中的任务 X、任务 Y和任务 Z的实例在运行期都可以使用该变量。相似的,我们可以在子流程中定义了一个变量 N,那么子流程中的所有任务实例都可以使用该变量,根据不同的工作流系统实现, N也可以被块任务 C的实例所使用。

     

    为什么需要块任务?

     

    良 好的代码需要封装,需要职责分离,业务流程建模同样如此。在一个定义良好的流程里,相互连接且语义相关的任务往往被建模为子流程。例如,一个跨越多个部门 的复杂业务流程,一种比较好的方式是针对每个部门都建立起自己的子流程。从维护的角度看,这种建模清晰自然,各个部门也能自己维护自己的流程建模。由于任 务执行的上下文存在差异,那么针对各个子流程建立自己的执行环境就非常必要,在工作流系统里,这种执行环境的表现即为数据。

     

    实现

    为 保证子流程定义的复用和独立性,一般不直接在与之对应的块任务里定义其要使用的变量,采用的方式是在块任务定义里进行数据映射,即将块任务中的变量与子流 程中的变量进行一一映射,运行期父流程实例中的变量传值到子流程中的对应变量中,子流程实例执行完毕再将值传回。具体的实现将在下一节的交互模式里进行详 细说明。

    展开全文
  • 在介绍工作过程系统化课程设计步骤和方法的基础上,以数字测图技术...首先利用BAG课程开发法进行职业典型工作任务分析,然后依据典型工作任务确 定其行动领域,并且进行了课程的学习领域设计,最后提出了课程的实施方案。
  • 1 监视任务状态 Hudson提供了丰富的图形化界面,让用户从各方面链接各个人物的当前及历史状态,这包括整体的列表显示、自定义视图、单个任务的具体信息,如构建日志和测试报告等。用户应该基于Hudson提供的信息尽...

    1.Maven-简介 2.Maven-安装和配置 3.Maven-POM文件说明 4.Maven-坐标 5.Maven-依赖详解  6.Maven-仓库 7.Maven-生命周期和插件    8.Maven-聚合  9. Maven-继承和反应堆  10. Maven-使用NEXUS创建私服     11. Mavne-配置从NEXUS下载构件和为项目配置独立仓库    12. Maven-使用Hudson进行持续集成及系统配置   13. Maven-创建Hudson任务   14. Maven-Hudson监视任务、用户管理、工作目录

    1 监视任务状态

    Hudson提供了丰富的图形化界面,让用户从各方面链接各个人物的当前及历史状态,这包括整体的列表显示、自定义视图、单个任务的具体信息,如构建日志和测试报告等。用户应该基于Hudson提供的信息尽可能地将持续集成任务稳定在健康的状态。


    1.1 全局任务状态
    Hudson的默认主页显示了当前服务器上所有集成任务的状态,


    这个页面主要有四个部分组成:
    导航菜单、构建列队、构建状态、任务状态(右边的部分)
    其中需要解释的是当前状态及图中第一列(S)下的球形图标。Hudson使用各种颜色表示任务当前的状态:
    --蓝色:任务最近一次的构建是成功的。
    --红色:任务最近一次构建是失败的。
    --黄色:任务最近一次构件成功了,但不稳定(主要是因为有失败的测试)。
    --灰色:任务从未被执行过或者被禁用了。
    如果图标在闪烁,表示任务正在执行一次构建。

    图中的第二列天气(W)也需要解释一下。Hudson使用一组天气的图标表示任务长期的一个状态:
    万里晴空,任务80%以上的集成是成功的。
    稍有乌云,任务有60%-80%的集成是成功的。
    乌云密布,任务只有40%-60%的集成是成功的。
    阴雨绵绵,任务的集成成功率只有20%-40%。
    电闪雷鸣,任务的集成成功率不到20%。
    当团队看到任务的集成状态不够健康时,应该尽快采取措施修复问题。

    1.2 自定义任务视图
    一般情况下,只要公司项目很多的时候,持续集成服务器上往往会有很多的任务,Hudson默认的视图会列出所有服务器上的任务,太多的任务就会造成寻找的不便。为此Hudson能让用户自定义视图,选择只列出感兴趣的任务,甚至还能自定义视图中显示的列。用户可以单击默认视图All旁边的加号(+)以添加一个自定义视图:


    1.3 单个任务状态

    在任务视图中,单击某个任务名称就能进一步查看该任务的状态。



    左下角有构建历史,图中有最近3次的构建历史,包括构件时间。下方有3个永久链接,分别指向了最近一次构建、最近一次失败的构建以及最近一次成功的构建。无论构建历史还是永久连接,我们都能单击某个构建以了解更具体的信息。


    如图,我是查看了#3的构建。

    还可以查看变更集和 命令行输出信息

    2 Hudson用户管理

    与一般软件的用户管理方式不同的是,使用Hudson时,不需要主动创建用户,Hudson能够在访问源码仓库的时候能够自动获取用户信息并且存储起来。这大大简化了用户管理的步骤。由于跟Subversion仓库绑定,这里就用了这个了。不需要在去配置相应的用户。



    当然,仅仅知道用户名称是不够的,还需要为用户添加详细信息,其中最重要的就是E-mail地址,因为它将被用来发送邮件反馈。单击某个用户的名称,然后再单击页面左边的设置,在左边的用户设置页面中,可以配置用户的名称、简要描述、个性化视图以及最重要的E-mail地址,如图

    3 Hudson 工作目录

    Hudson的各种配置、任务、报告肯定是以文件的形式存储在磁盘中的。默认情况下,Hudson使用了用户目下的.hudson/目录作为其工作目录。C:\Users\Administrator\.hudson  

    一个典型的Hudson工作目录包含的内容如下图:


    *.xml:这些xml文件是Hudson核心及相关插件的配置,如 config.xml配置了全局的JDK、任务视图等信息,hudson.tasks.Maven.xml配置了Maven安装信息,Hudson.tasks.Mailer.xml配置了邮件服务器信息,等等。

    war:如果用户独立运行hudson.war,那么其内容会被释放到该目录中后在启动。

    users:Huson所存储的用户信息。

    userContent:用户可以将任意内容放到该目录下后在通过Hudson服务页面的子路径访问。如:http://192.168.1.1:8080/userContent

    updates:这里存储了各类可更新的插件信息。

    plugins:所有Hudson差价好呢都被安装在该目录而不会影响到Hudson的核心。

    jobs:该目录包含了所有的Hudson任务的配置、存储的构建、归档的构建输出等内容。

    上述目录中最重要的就是jobs子目录了,这里包含了所有Hudson的任务配置、每个任务的工作区、构件历史等信息

    展开全文
  • 唐僧、QA MM与工作任务数据模式

    千次阅读 2010-03-16 22:03:00
    唐僧与QA MM在一个典型的项目团队里,包括了以下几种角色(帽子):PM(项目经理)、BA(业务分析师)、DEV(程序开发者)和QA(质量保证人员),整个团队的目标是向客户交付价值。 那么,有一天,QA MM来找我,我...
  • 监督学习 - 一个典型工作流程

    千次阅读 2015-12-23 22:39:55
    现今,当在“数据科学”领域开始引入各种概念的时候,著名的“鸢尾花(Iris)”花数据集可能是最...在一个监督分类任务中,它将会是一个很好的例子。Iris中的花被分为了三类:Setosa , Virginica , 和Versicolor .而这1
  • 在中断的处理中,有一些不紧急不关键的任务在需要的时候可以被延迟一段时间来执行。对于中断服务程序来说,一般情况下如果它不结束执行,就不应该产生新的中断;而这些延迟的任务可以在打开中断的情形下执行,因而把...
  • 任务切换

    千次阅读 2014-03-12 23:28:03
     由两种基本的任务切换方式, 一种是协同式额, 从一个任务切换到另一个任务, 需要当前任务主动地请求暂时放弃执行权, 或者在通过调用门请求操作系统服务时, 由操作系统"趁机"将控制转移到另一个任务. 这种方式依赖于...
  • 软件项目开发典型风险一览

    千次阅读 2009-06-10 13:49:00
    软件开发的4个维度:人员、过程、技术、产品 1.关于人员 典型错误1:挫伤积极性反复的研究表明,激励可能比其他因素对生产效率和项目质量的影响更大。我要求项目组的每位员工都要用心...工作匹配-使任务与人员的技能
  • 2.2 典型工作任务设计理念;2.2 典型工作任务;2.3 教学情境设计;三教学方法设计;3.1 明确任务制定计划;3.2 行动导向课堂教学;3.2.1 提出引导问题学习知识点;3.2.2 教师演示任务实施过程;3.仿真调试 ;拓展训练 1.请...
  • 通过这个17个典型的职位说明书DOC,可以让我们的工作任务变得更加简单,完成更加顺利,同时17个典型的职...该文档为17个典型的职位说明书DOC,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看
  • 任务管理的历史

    千次阅读 2011-03-03 17:06:00
    任务管理的历史几乎与人类的历史一样长。自从地球上出现人类的第一天起,就有了任务管理。 任务,是人类一切有目的的活动。一个任务一般包含要达到的目标、可利用的资源、可采取的手段、时间和成本要求等信息。有...
  • ZooKeeper典型应用场景

    万次阅读 2017-09-27 17:51:27
    * 另一种工作汇报模式:一些类似于任务分发系统,子任务启动后,到zk来注册一个临时节点,并且定时将自己的进度进行汇报(将进度写回这个临时节点),这样任务管理者就能够实时知道任务进度。 总之,使用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 228,719
精华内容 91,487
关键字:

典型工作任务