软件产品案例分析
第一部分 调研,评测
评测:
软件的bug,功能评测,黑箱测试
- 下载并使用,描述最简单直观的个人第一次上手体验。
下载华为软件开发云APP(ios端),打开华为软件开发云APP后,个人感觉登录界面的风格是简约范的。先进行注册,注册好之后登陆,输入账号密码,却提示"请输入有效的用户名和密码"...难道是一大早还没睡醒?输错了?再来一次,还是不行..原来所谓的账号并不是手机号码...而是账户名,有点尬(个人感觉这里应该提示输入的账号是用户名)。来到主界面,界面风格依旧简单清晰,点击了底部的导航栏按钮,大致可以了解了这款APP的主要功能。话不多说,先建一个项目体验一把,点击新建的工程项目,可新建需求工作项,任务工作项,缺陷工作项。对于一个新人团队开发一个项目,从需求分析到具体实现,都可在APP列出工作项,可用性还是挺强的。可将团队成员都加入项目,但是得先扫二维码,后输入用户名进行添加。用着用着,发现了这款软件的一些bug(下文会提到)。第一次上手体验这款APP,满意度可以打75分吧(百分制)。
- bug定义
软件的Bug,狭义概念是指软件程序的漏洞或缺陷,广义概念除此之外还包括测试工程师或用户所发现和提出的软件可改进的细节、或与需求文档存在差异的功能实现等。(摘自百度百科)
- APP bug
- 点击待办事项的分享功能,软件无端闪退,停止运行,直接退回到桌面
- 对于工作项详情的评论,一旦发送将无法修改,删除和撤回,而删除只能将整个工作项删除。
- 当多个项目有同名的工作项时,在待办功能中关键字搜索同名工作项,搜索结果只会显示包含关键字工作项的标题,并不会显示该工作项所属项目。用户只能通过逐个点击工作项去找到目标项目下的工作项。
- 在我的功能里有一个区域功能,可选择(东北区1/华北区1/华东区2),在添加项目成员时,若区域不相同则无法添加,修改更换成相同区域之后,才能添加。但区域用户可随意修改,而不是靠定位功能,该功能实用性比较差。
- 在工作项详情里,有一个可分配模块的功能, 点击模块,显示"当前项目下没有模块"。但是该APP并没有将工程分成多模块的功能。
- 你觉得为什么这个产品组的人没有发现这些bug?
- 可能是产品组人员对于软件功能还未开发完全,比如区域选择功能,应该是功能还未做完全
- 测试人员测试不够完全
- 开发人员考虑不周
- 假设你们团队需要开发这套系统,需要注意哪些方面(架构、部署运维、微服务等)。
- 可采用微服务架构,将原本单一的应用按照功能边界分解成一系列独立、专注的微服务。每个微服务对应传统应用中的一个组件,但是可以独立编译、部署和扩展。
- 部署:部署程序包,功能开关,配置管理 运维:集中化日志,集中化监控
- 微服务开发:每个服务都该有自己的代码库。这样可确保签出规模尽可能小,源代码控制日志更简洁,并能对访问进行更细化的控制。
采访:
- 介绍采访对象的背景和需求(他们有没有用过这个APP或类似的APP,除了现有的功能还有别的需求么)
采访对象:大三计算机专业学生 需求:开发一个小项目,用APP记录需求分析和具体实现的任务卡,团队成员之间可直接通过APP进行沟通交流
采访对象在项目开发算是萌新一枚,之前并未使用过类似APP
-
让采访对象使用华为软件开发云(请上传照片证明用户的确正在使用,远程采访的同学请让别人帮忙照相)
-
描述用户使用这个产品的过程, 用户的问题解决了么?软件在数据量/界面/功能/准确度上各有什么优缺点?用户体验方面有问题么?
用户的需求为:用APP记录需求分析和具体实现的任务卡,团队成员之间可直接通过APP进行沟通交流。在记录项目需求和任务的功能上,APP基本可满足用户的需求。但在沟通交流的需求上,用户的体验不是很好,团队成员间只能通过在工作项详情下评论进行交流,交流起来不方便。
| 软件方面 | 优点 | 缺点 |
| ------------- |:-------------:| :-----:|
| 数据量 | 可显示的数据量可满足需求量 | 工作项详情加载速度不是很快(需要5-6秒) |
| 界面 | 简约清晰 | 界面可以美化加工一下 |
| 功能 | 功能点命名可做到见其名知其用,简单易上手 | 有些功能未实现完全(如项目可模块化),部分功能存在bug(点击闪退) |
| 准确度 | 数据显示准确 | --- |
- 用户对产品有什么改进意见?
- 工作项详情加载速度可以提速
- 将未实现完全的功能实现完全(如项目可模块化)
- 修复bug(运行闪退)
- 结论:经过这么多工作,你一定有充分的理由给这个软件下一个评价,请选择一个结论:
非常不推荐
不推荐
一般(★)
推荐
非常推荐
第二部分 分析
- 使用此软件的大部分功能,联系第二部分的分析,估计这个项目做到这个程度大约需要多少时间(团队人数6人左右,计算机大学毕业生,并有专业UI 支持)。
4周时间。1人负责前端界面设计,1人负责后端服务器维护,3人负责前后端数据交互,1人进行软件测试。
- 分析这个软件目前的优劣(和类似软件相比),
- 优势:简单可用,容易上手,界面简约清晰
- 劣势:部分功能未实现完全,部分功能bug比较大
- 推理出团队在软件工程方面可以提高的一个重要部分(具体建议)。
软件功能的完善性是至关重要的,半成品的功能只会让用户体验变差,对于半成品的功能,宁可没有
-
功能逻辑框图
-
模块分析
-
多维度评分
| 维度 | 分数(百分制) | | ------------- |:-------------:| | 用户体验 | 80 | | UI界面美观度 | 75 | | 核心功能 | 77 |
第三部分 建议和规划
- 如果你是项目经理,如何提高从而在竞争中胜出?
- UI界面美化,用户对于软件的最初的直观感受就是界面的美观程度
- 功能的完善性,对于半成品的功能,宁可没有
- 主打功能要近乎完美,可能的话去实现创新功能
- 加大宣传推广力度
-
目前市场上有什么样的产品了?
teambition
-
你要设计什么样的功能?
项目群聊功能 -
为何要做这个功能,而不是其他功能?
项目成员之间沟通交流,可通过群聊功能进行。
选择这个功能原因是:项目开发过程,成员间沟通交流是无可或缺的。而这款APP当前已完成的功能:成员只能在某一工作项详情下评论来进行沟通交流。这样的沟通交流不顺畅,不便利,有必要在这方面进行内容的增加。
- 为什么用户会用你的产品/功能?
实用性是用户选择产品的关键因素。将主打功能项目模块和待办工作项模块做到极致,积攒口碑,加以适当的宣传,以此来增加用户量。
- 你的创新在哪里?可以用 NABCD 分析。
- N(Need,需求) 用户使用软件开发云APP,团队成员间想直接使用APP进行项目进度反馈,项目问题反馈,进行项目沟通交流
- A(Approach,做法)在APP当前已完成的功能增加群聊功能,项目成员间可加入群聊,进行项目沟通交流。群聊功能不仅仅只有聊天功能,还支持文件上传共享。文件格式多样化(支持doc,pdf,xlsx,mp4,,jpg等多种常用文件)
- B(Benefit,好处) 若团队成员无法进行面对面交流会议,用户可使用群聊功能进行沟通联系。文件可直接上传群内,团队成员可共享。
- C(Competition,竞争)群聊功能不仅仅只有聊天功能,还支持文件上传共享。文件格式多样化可在竞争中更具有优势。
- D(Delivery,推广) 广告投放,微信朋友圈宣传等等。
- 如果你来领导这个团队,会有什么不一样?
- 站在用户的角度考虑问题,深入挖掘用户需求
- 协调好各个成员间的任务权重,提高工作效率
- 管理好软件的具体功能的生命周期
- 深入了解每个成员开发进度,确保项目保持功能/时间/资源的合理平衡
- 如果你的团队有5个人, 4个月的时间,你作为项目经理,应该如何配置角色(开发,测试,美工等等)?
描述你的团队在16 周期间每周都要做什么,才能在第16周如期发布软件,大小里程碑绩点设定。
1人负责前端界面设计界面美化,1人负责后端服务器维护和测试,3人负责前后端数据交互
|周数 | 任务 |
| ------------- |:-------------:|
| 1 | 需求获取,市场调研,用户调研|
| 2 | 需求分析,撰写规格说明书 |
| 3-11 | 具体编码,UI和数据库同步设计,前后端交互|
| 12 | 测试人员进行测试形成测试报告,修复bug |
| 13 | 市场部分投放,接收记录用户反馈 |
| 14-15 | 整理用户反馈,改进功能,修复bug |
| 16 | 正式发布 |
- 项目发布后,有没有考虑过项目该怎么部署才能满足需求。依据下图(某校教务处系统的部署)作为参考,分析16周后你所完成的项目上线需要哪些配套设备(服务器、带宽、数据库需求数量与配置) 。
例子中校教务处系统的部署,校教务处访问量最多的时候应该是学期选课和期末成绩查询。后端服务器得负载起最大访问量。某校的教务处的用户量大约在几万量级左右。
华为软件开发云服务器的访问量应该不会出现访问量波动范围大的情况,每天的访问量应该比较平均。估计用户量的最大可能为万量级。
- 后端服务器配置 8核16G*2
- 应用服务器 4核8G*2
- 关系型数据库:SqlServer/MySQL/Oracle 数量3(读写分离2,备份*1)
- 缓存数据库:Redis 数量 : 2
- 网站安全性 : WAF