APP的案例分析

很多同学有误解,软件项目管理是否就是理论课?或者是几个牛人拼命写代码,其他人打酱油的课?要不然就是学习一个程序语言,搞一个职业培训的课?都不对,软件项目管理有理论,有实践,更重要的是分析,思辨,总结。在课程中,自己组织团队写一个软件,然后分析,的确是学习的一个好方法;但我们也可以从别人的成功/失败中学到很多。我们生活中很多时候要和软件打交道,大家上课开小差时候玩的手机游戏,买火车票的网站,互相联系用的微信、QQ,等等都是软件,都很值得分析。你为何成为它们的用户?它们的团队做对了什么,做错了什么?如果你来做,会做得更好么?
        通过各种案例分析,评测,辩论,总结,我们就能看到软件工程的原则在实践中的种种体现,也帮助我们在实践中做得更好。
 
产品
 
     微软小娜-智能助手,IOS(pc、安卓都有)
 
第一部分 调研, 评测
  1. 下载软件并使用起来,描述最简单直观的个人第一次上手体验。

    在IOS应用商店搜索微软小娜,出来Cortana,是软件的真实的名字,界面很简洁清晰,注册登录之后开始愉快的调戏小娜。

  1. 按照《构建之法》13.1节描述的 bug 定义, 找出几个功能性的比较严重的 bug。    

    *在《构建之法》13.1节描述的 bug 有如下定义:
      Bug:软件的缺陷,bug可以分解为:症状(Symptom)、程序错误(Fault)、根本原因(Root Cause)。

      1)症状:即从用户的角度看,软件出了什么问题。例如,微软小娜,无论让它谁的号码,它都无法从我的通讯录中找到该联系人。
      2)程序错误:即从代码的角度看,代码的什么错误导致了软件的问题。
      3) 根本原因:错误根源,即导致代码错误的根本原因。

    *发现问题:  

    (1)小娜必须在手机解锁状态下运行。锁屏状态下无法打开小娜,需要指纹密码认证。

    (2)使用微软小娜拨打已有联系人电话时,若联系人名字中存在生僻字,不能识别拨打,只是打开拨打电话界面提示输入号码或是打开与生僻字读音相近的联系人的拨打电话界;并不会自动拨打联系人的电话。

    (3)在语言的识别上有时会出现错误。例如系统语言是中文,若用英文进行语音操作,微软小娜不能对操作进行应答,只是对所说英文内容翻译。

  1. 用专业的语言描述 (每个bug 不少于 40字),如有必要, 配图更佳。

    (1)锁屏下不能直接直接唤醒打开,且锁屏状态下的语音操作不能直接完成,需要解锁手机。

    (2)使用微软小娜拨打联系人电话时,只是打开电话界面提示输入电话号码(图1)或是联系人的电话(图二),但是拨打还是需要点击“呼叫”才能拨打电话(图三)。

         APP的案例分析    APP的案例分析  APP的案例分析

          图1                        图2                     图3

    (3)用英文进行语音操作,微软小娜不能对操作进行应答,只是对所说英文内容翻译(图4)。

                                APP的案例分析

                                  图4

  1. 选择一个朋友(用户)进行采访,并加以记载。

    我采访的对象是宿舍室友石同学。由于他曾经也研究过微软小娜,所以我认为采访一个使用过微软小娜的人,比采访一个新手更有价值。

      采访时间:2017年10月03日  采访地点:宿舍

      采访对象:宿舍室友石同学   记录:小曾

      采访者:小曾

      采访摘要:

       我:小石你好,能采访你使用微软小娜的一些问题吗?

      宿舍室友石同学:好,你问吧!

      我:你为什么要用智能助理的相关应用呢?

      宿舍室友石同学:因为智能助理这样的应用,“能够通过了解用户的喜好和习惯”,帮助我进行日程安排,进行一些问题的解答。

      我:那你为什么用微软小娜呢?

      宿舍室友石同学:觉得挺好用的,和siri比起来,更智能一些。

      我:你都会使用微软小娜的哪些功能呢?

         宿舍室友石同学:拨打电话、阅读短信、调整闹钟、搜索信息、语音问答。

         我:那你说的这些功能,是siri、百度都可以做的事情啊?你认为微软小娜和siri、微软小娜比,好在哪里?是功能方面,操作方面,还是视觉方面?

      宿舍室友石同学:首先,第一个问题,小娜可以说是微软在机器学习和人工智能领域方面的尝试,与小娜的智能交互,不是简单地基于存储式的问答,而是对话,没有siri那些那么死板。第二个问题,我觉得更多的是功能方面吧。一个很简单的例子就是,假如手机中记录的日程显示将要参加会议,那么不需任何操作,小娜到时就会自动将手机调至会议状态。

        我:意思就是微软小娜更人性化一些?

      宿舍室友石同学:相对吧。可以说手机能够理解我将要做什么

      我:还有最后三个问题。使用这个产品的过程,你的问题都能解决么?

      宿舍室友石同学:肯定不都能解决呀!

      我:能举个例子吗?

      宿舍室友石同学:比如说有时候我查询一些专业的缩写,它上边就没有,只能查一些专业的词汇。现在肯定做的不完美吧。有些还需要谷歌和百度。

      我:下一个问题,软件在数据量、界面、功能、准确度上、用户体验上各有什么优缺点?

      宿舍室友石同学:这个我不太懂。

      我:就说你觉得界面怎么样?

      宿舍室友石同学:蛮简洁的。操作起来也很顺手。

      我:你有需要的新功能吗,你觉得页面怎么改会更好?

      宿舍室友石同学:新功能?界面背景颜色如果能多一些亮色就好了 。

      我:你对产品有什么改进意见?

      宿舍室友石同学:暂时没有吧。语音库或许能多一些选择会更好吧。

      我:好的。采访结束了,谢谢!

  5.5. 结论:经过这么多工作,你一定有充分的理由给这个软件下一个评价: 

    •   非常不推荐
    •   不推荐
    •   一般
    •   好,不错  
    •   非常推荐
第二部分 分析
(参考《构建之法》 8.6 节 对工作的估计, 和14.1 节 软件工程的质量)
  1. 尽可能地使用软件的所有功能 。

    已完成

  1. 分析这个软件目前的优劣 (和类似软件相比), 推理出这个软件团队在软件工程方面可以提高的重要方面 (具体建议)。要求把对比的结果列出一个表格,对比每个软件各自的优点和缺点。

    APP的案例分析

  1. [附加题]根据理解和体验,画出整个软件所有功能逻辑框图,根据重要度标识出各模块的重要度、完成度、出发点及效果;
  1. [附加题]针对不同的维度评分,对用户体验方面、UI界面美观度、核心功能,分别打分(能给出更详细的评分更优)。
第三部分 建议和规划
(参考《构建之法》第8章功能的定位和优先级;第9章项目经理)
  1. 如果你是项目经理,如何提高从而在竞争中胜出?

    ①考虑市场,面向群众,定制其他需要的功能。

     ②提高UI设计,统一界面框架风格,多设计些皮肤。

     ③提高交互设计,更加方便快捷使用软件。

  1. 目前市场上有什么样的产品了?

    siri、Google now等。

  1. 你要设计什么样的功能?

    UI界面优化,交互更加友好。功能不必过于复杂,应以主功能语音为主不断优化,给用户更好的体验。

  1. 为何要做这个功能,而不是其他功能?

    UI和交互如果过于繁琐,一个刚接触不熟悉软件功能的人是不会很想去使用的,这样反而使用户量减少;对于语音助手,更应该从初始去提高语音的优化,才能让更多的人去使用软件。

  1. 为什么用户会用你的产品/功能?

    用户使用一个软件的直接原因就是软件的功能,而主功能很完美强大的时候,良好的人机交互将会给用户带来更好的体验,把软件推荐给别人。

  1. 你的创新在哪里? 请使用 NABCD 分析(http://www.cnblogs.com/xinz/archive/2010/12/01/1893323.html).

    ①N (Need 需求)

      每个人的手机都有很多不同功能的app应用,但是如果存在一个可以汇总它们或者说集中调用这些app的功能的手机助手存在,会很便捷。如果有更人性化的人机交互,这也会给大家带来很多好感。

     ②A (Approach 做法)

      UI界面优化,交互更加友好。功能不必过于复杂,应以主功能语音为主不断优化,给用户更好的体验。

     ③B (Benefit  好处)

      操作简单,可以在一个app里打开很多app,有时候用户的手机里软件非常多,需要用到其中哪个的时候不好找到,而微软小娜可以直接语音打开进行操作。

     ④C (Competitors 竞争)

      为能够竞争得到优势,调研市场是必须的,学习别人的,同时也要创新自己特色,构建成良性发展圈,使自己的产品不断地被用户主动接受和选择。

     ⑤D (Delivery 推广)

      推广的途径有很多,可以设置一个互动平台让用户体验后提出好的想法,如果想法不错可以给予一定的奖励等。

  1. 如果你来领导这个团队,会有什么不一样?

    如果要我来领导这个团队,得力的助手是不可少的。另外,不管是需求分析,还是UI设计,或是代码实现,我都希望能参与。细致的问题不需要参与,但对于一些重要决策,还是需要把关的,比如使用什么样的算法作为语音识别的方法等等。这样才能对项目的进程及功能有个清晰地认识,对才能把握住大方向。能够更加清楚团队每一个角色的工作,方便日后的工作安排。还要和用户打成一片,知道他们需要什么,就努力做好什么。

  1. 如果你的团队有5个人, 4个月的时间,你作为项目经理,应该如何配置角色(开发,测试,美工等等)?
    • 第1周           需求分析
    • 第2~3周       框架设计 功能逻辑设计
    • 第4~10周     代码开发、美工设计
    • 第11~13周   测试、该BUG、提高软件性能
    • 第14~15周   内测、修订
    • 第16周    发布
上一篇:Hadoop基础--统计商家id的标签数案例分析


下一篇:Javascript中的Label语句