您的位置:首页 > 其它

个人作业——软件产品案例分析

2017-12-02 20:56 190 查看

第一部分 调研,评测

1.个人第一次上手体验

web端与安卓端的界面风格不统一,安卓端app的界面比web端简洁,但是功能也相对较少,甚至可以称之为简陋,web端显示的信息较多,同时web端可以用手机号进行登录,而安卓端不知道为什么只能使用用户名登录。安卓端在第一次打开任意界面时需要很长的加载时间(1-3秒),这使得在使用上很不流畅、显得app反应很慢。

web端的功能繁多较为复杂,个人觉得学习成本较高。

2.软件bug

我这段时间主要是使用安卓端app,所以只在app上发现了一些bug

在项目中新建的工作项和在主界面新建的工作项都无法在安卓端项目中查看,即使经过多次刷新也无法查看,但在web端和安卓端主界面可以查看到对应的工作项,安卓端项目条目下也可以看到该项目的工作项数量。这可能是安卓端与服务器的通信出现了问题。(如下图)









从“项目”界面使用底部导航栏的按钮切换到“我的”界面时,“我的”界面里面的内容。包括信息和各种按钮,有一定几率会加载不出来,此时软件无任何提示,该界面只能显示导航栏,重新切换界面后恢复正常(如下图)





至于软件开发人员为何没有发现这些bug,我觉得有如下几个原因:

我认为这个项目的开发重心主要是在web端,这点从两者的界面和功能中可以看出,web端无论是界面还是功能都较为完善,而安卓端明显只是初步进行了开发,不够完善。开发团队的重心不在安卓端,在安卓端的开发上花的时间就比较少,也就不容易发现一些比较不明显的bug。

安卓系统的碎片化程度非常严重,国内外的手机厂商都对安卓系统有着不同程度的定制,同一家厂商还有着许多配置不同的手机,特别是国内厂商。在这种情况下同一个app在不同手机,不同厂商定制的安卓系统中出现的问题都有可能不一样,所以安卓app的debug任务十分繁重,开发团队在debug的时候很有可能会漏掉一些不起眼的bug。甚至可能因为没有在相应的系统中测试而发现不了在某些系统中才会出现的问题甚至bug。例如我手机上的安卓系统是小米公司定制的miui,某些界面状态栏的文字都是深色,导致用户无法看清状态栏的内容。(如下图)



开发团队也许没有考虑到不同用户的网络状况不同,导致每个用户访问服务器的速度、效率等等也都不一样,这也就导致用户不一定每次都能从服务器上成功的获取信息

3.用户调研

4.假设你们团队需要开发这套系统,需要注意哪些方面(架构、部署运维、微服务等)。

首先要对用户进行调查,针对不同用户的不同需求应该提供不同层次的收费标准和相应的功能。

其次就是确定所在的平台,代码托管功能需要在电脑上操作,所以只能开发在web端,项目管理的功能可以全平台通用。

要实现所有的功能需要强大的服务器和海量存储的支持。

要保证全平台界面风格统一,这样能增加软件的辨识度,让别人一眼就能认出这个软件。

待完成

第二部分 分析

1.使用此软件的大部分功能,联系第二部分的分析,估计这个项目做到这个程度大约需要多少时间(团队人数6人左右,计算机大学毕业生,并有专业UI 支持)。

该软件在web端的完成度还算不错,在移动端的完成度较差,如果开发团队拥有较丰富的开发经验的话,从零开始开发这个项目大概需要8个月的时间,主要是在代码管理方面需要开发出自己的算法,如果有现成的模块可以使用的话就能进一步缩短开发时间。同时前期需要一定时间的市场调研,根据需求确定软件所需要的功能,这个项目涉及到的功能所需要的算法比较复杂,如果只有六人团队的话开发对应的算法需要耗费比较长的时间,特别是团队中都是计算机大学毕业生。而在UI方面由于有专业的UI支持,花费的时间应该会比较少。

2.分析这个软件目前的优劣(和类似软件相比),并推理出团队在软件工程方面可以提高的一个重要部分(具体建议)

优势:

相比于同类收费软件,华为软件开发云有一定的免费额度,同时收费标准也比较低,对小型开发团队较为友好。

相比于同类免费软件,华为软件开发云的功能较为全面,把项目管理和代码管理有机的结合起来,既可以作为代码托管平台单独使用,又可以作为整个研发工具链的一部分来使用,所有数据在工具间拉通,平台代码可以直接构建、部署,看到产品效果。

与国外的类似软件相比,华为软件开发云具有原生的中文页面,同时也更符合国人的操作习惯,界面更加友好,选项清晰。同时华为软件开发云的服务器在国内,国内用户访问服务器的速度较快,也较稳定

劣势:

华为软件开发云起步较晚,同类软件已经发布多年积累了大量的用户,在业界也已经培养出了良好的口碑。

软件不够完善,还有许多待改进的地方。

建议:

可以将项目管理的重点放在移动端,毕竟团队里的每个人不一定都能够随时随地的使用电脑,但一定可以随时随地的使用手机,分丰富移动端项目管理的功能,而web端则注重代码的管理,毕竟项目的开发都是在电脑上面完成的,移动端无法进行代码的管理。但是可以在移动端上面增加代码改动的提示,这样能够方便用户随时查看项目的改动。

3.根据理解和体验,画出整个软件所有功能逻辑框图,根据重要度标识出各模块的重要度、完成度、出发点及效果。

安卓端逻辑框图



项目模块:

重要度:95

完成度:75,项目的增改查已经完成,但是无法删除项目,同时安卓端无法查看项目的工作项,同时可以通过扫描二维码加入项目

出发点:对项目进行管理

效果:一般

待办模块:

重要度:90

完成度:80,可以查看所有项目的待办事项,也可以搜索想要的工作项,同时也能删除和分享对应的工作项。但是无法在这个界面添加工作项。

出发点:查看所有未解决的工作项和管理相应的工作项。

效果:良好

添加模块:

重要度:90

完成度:90,实现了反馈、工作项与项目的添加

出发点:在这个模块下实现各种项目和工作项的添加

效果:良好

消息模块:

重要度:85

完成度:70,只能够查看消息和同意成员的加入,不能删除消息和搜索消息,同时不知道是什么原因,可以在查看成员的界面下添加新工作项(???)。

出发点:管理消息和成员。

效果:一般

我的模块:

重要度:80

完成度:60,可以查看用户名和头像,更改用户区域,退出登录等,但是无法修改用户的个人信息。

出发点:对用户的信息进行管理,同时附上一些关于软件的信息

效果:不好

4.针对不同的维度评分,对用户体验方面、UI界面美观度、核心功能,分别打分。

移动端:

用户体验:6分;移动端bug较多,功能较少,每个界面的加载时间较长。

UI界面美观度:7分;移动端界面简洁,配色比较单一,风格清新。

核心功能:7分;移动端主要功能在于项目的管理,功能相比web端较为单一。

web端:

用户体验:8分;web端功能较多,功能的分类和选项比较清晰,美中不足的是web端不能保存用户的登录状态,每次打开或者长时间不使用都需要重新登录,有少部分地方的学习成本较高。

UI界面美观度:8分;web端整体界面完成度较高,风格也较为统一,同时背景有毛玻璃效果,观感不错。然而项目页面中有部分地方的设计比较粗糙(如图)。



核心功能:9分;web端基本实现了该项目的所有功能,相比于移动端多出了代码管理的服务,同时每个功能都也有非常高的完成度,在某些细节的地方也十分完善。

第三部分 建议和规划

1.如果你是项目经理,如何提高从而在竞争中胜出?

这个项目的重点在于软件工程的项目管理,这是一个项目管理软件,如果要在竞争中胜出的话,需要提高这个软件的项目管理功能,使之比竞争对手更强大,同时也要对这个功能进行一定程度的简化,让用户使用起来更简单、直观和方便。同时要建设好服务器,用户在进行代码托管时需要快速的访问服务器,因为各种原因国内访问国外的服务器速度很慢,所以建设一个良好的服务器会使得这个软件相对于国外的同类产品有很高的竞争力。

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

在项目管理方面有worktile,teambition,trello,quip,basecamp,石墨文档,slack,tower等等

在代码托管方面有GitHub,Gitlab,Bitbucket,开源中国代码托管,coding.net,CSDN代码托管,京东代码托管平台

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

我觉得我会在现有功能基础上增加一个项目成员之间交流的功能。

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

因为在项目开发过程中团队成员随时都会遇到问题,而遇到问题时就需要团队成员之间共同讨论来解决,而现阶段团队成员的对于某个问题的交流只能通过工作项下的评论功能来实现,如果一个问题涉及了多个工作项的话交流起来就比较麻烦,而如果借助其他的交流工具的话又没办法很方便的与项目进行关联,所以我觉得团队需要一个沟通的工具,能够方便的调用项目中的信息来进行交流,这样子问题的讨论和解决就会变得比较方便。

至于为什么不开发其他的功能,是因为我觉得在现有功能的基础上,团队之间进行沟通的功能更重要。

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

首先我的产品集成了项目管理和代码托管/测试,相对于国内的同类软件功能更全面,既可以作为代码托管平台单独使用,又可以作为整个研发工具链的一部分来使用,所有数据在工具间拉通,平台代码可以直接构建、部署,看到产品效果。相对于国外的同类软件如github,虽然其历史悠久,在开源社区中口碑良好,个人用户较多,但是其私有仓库是收费的,我的项目在功能性不差的前提下还拥有中文页面,对于小团队而言使用我的产品一定程度上也是免费的,这样就可以吸收到许多国内的个人用户和许多小团队。同时我的产品提供的功能更为全面,相对而言也更适用于企业用户,企业可以将平台用于其整个软件或项目的研发周期。这点是其他同类软件做不到或者做不好的。

其次在项目开发中难免会遇到各种各样的问题,这个时候就需要团队之间有良好的交流,同时讨论的都是与项目有关的信息,使用项目管理工具上自带的交流工具的话不仅能够进行方便的沟通,同时还能轻松的交流有关项目的信息,这样就能够更容易的去解决跟项目有关的问题。

6.你的创新在哪里?可以用 NABCD 分析。

我的创新在于在实现了项目管理与代码管理的有机结合的同时,使得团队成员在与项目有关的交流上有更高的效率。

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

首先我会统一web端与移动端的界面风格,这样能够令我的产品更有辨识度。

其次我在实现某个功能时,会优先考虑保证这个功能的稳定性,毕竟项目管理和代码管理中出现了数据丢失或者其他问题,对用户的影响是十分巨大的,同时也会影响我的产品的口碑。

8.如果你的团队有5个人,4个月的时间,你作为项目经理,应该如何配置角色(开发,测试,美工等等)?

项目的开发会分成好几个阶段,每个阶段的任务不同,人员的配置相应的也就不同。而初步开发的重点会放在web端,移动端的开发相对延后。

第一阶段是主要功能的开发,这个阶段的重点在于编码和初步测试,所以我觉得人员分配应该为3个开发人员,1个测试人员和1个美工,这样既能保证相应功能的开发,也能为以后的测试和美工打下一定的基础。同时测试人员和美工还需要对市场进行调查,为功能开发人员给出一定的指导。

第二阶段是对功能的测试,此时主要功能已经完成,这个阶段的重点在于对主要功能进行测试和完善,使得对应功能在发布后不会出现严重的问题,同时也要进行一些附加功能的开发,使得产品功能更加完整。所以这个阶段的人员分配应为2个测试人员,2个开发人员,1个美工,测试人员也具有编码基础,有能力解决功能中存在的问题。

第三个阶段是整体测试以及UI的完善,前两个阶段主要是解决功能上的问题,在进行初步的测试以后,需要对整个产品进行一次全面的整合和测试,同时也应对产品的界面进行完善,使得产品的UI和操作更加人性化,所以这个阶段的人员分配因为3个测试人员,2个美工。

9.描述你的团队在16周期间每周都要做什么,才能在第16周如期发布软件,大小里程碑绩点设定。

第1周主要是项目规划,需求分析,同时对下阶段的任务进行安排,配置好每个人的角色。

之后的4周进行主要功能的开发以及初步测试,同时对界面有初步的设计,主要功能是项目管理和代码管理。

第6周总结前一阶段的工作,根据前一阶段完成情况安排下一阶段的任务和人员配置。

之后的6周对上一阶段的功能进行深入的测试,确保每个功能都能够稳定的实现,不会出现严重的问题,同时对一些附加的功能进行开发,同时根据需求的变化适当的修改对应的功能。

第13周总结前一阶段的工作,根据前一阶段完成情况安排下一阶段的任务和人员配置。

之后的几周就是对所有功能进行最后的整合与测试,将最后的界面和功能进行统一。

10.项目发布后,有没有考虑过项目该怎么部署才能满足需求。依据下图(某校教务处系统的部署)作为参考,分析16周后你所完成的项目上线需要哪些配套设备(服务器、带宽、数据库需求数量与配置) 。

项目管理功能对服务器与数据库资源的占用并不是特别大,但是代码管理方面,比如代码托管需要比较大的带宽,保证大量用户能够同时上传代码而不发生拥塞,代码检查则需要服务器具有强大的处理能力,同时存储代码等项目资源需要非常大存储空间。而且这个项目是面向全球用户的,随着用户不断增加,对服务器的要求也会越来越大,所以随着时间的推移也需要增加服务器和数据库的配置和数量。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: