课程班级博客链接 | https://edu.cnblogs.com/campus/xbsf/nwnu2020SE |
这个作业要求链接 | https://www.cnblogs.com/nwnu-daizh/p/12709461.html |
团队名称 | 3+1>4 |
团队的课程学习目标 | 1、组建软件项目研发团队 |
这个作业在哪些方面帮助团队实现学习目标 | 1、通过成立软件项目研发团队,使得软件开发效率更高 |
团队博客链接 | https://www.cnblogs.com/team12138/p/12744867.html |
一、团队组建
1、在实验四结对基础上,结对小组两两自由组合,尽量按照男女搭配组队要求,组建软件项目研发团队;2、申请开通团队博客,点击以下链接提交团队信息,将团队博客加入到班级博客。
1 队名:3+1>4
2 团队成员组成
201771030120 | 王嫄 | https://www.cnblogs.com/Jenna-wang | PM |
201771030115 | 牛莉梅 | https://www.cnblogs.com/niulimei | --- |
201771030117 | 祁甜 | https://www.cnblogs.com/viqt | --- |
201771030123 | 王爽 | https://www.cnblogs.com/JZYWS | --- |
3 成员风采及MSF的9点基本原则理解
3.1 成员风采
王嫄 | 独立果断、具有独特的领导气质、擅长C语言,Java编程 | 浓厚 | PM | 王者的路必定坎坷,请踏平荆棘走向王者的宝座 |
牛莉梅 | 善于发现、敢于提出问题、擅长写文档 | 一般 | 文档 | 一起进步一起拼 |
祁甜 | 幽默开朗、思维明捷、擅长软件开发、JavaEE技术 | 浓厚 | 开发 | 开心就好 |
王爽 | 思想独立、做事细心、擅长Java编码与测试 | 浓厚 | 测试 | 做一个佛系女孩 |
3.2 MSF基本原则理解
(1)推动信息共享与沟通( Foster open communications )
这个原则意思是说要做到公开,透明,要保证所有的消息能够传达给所有人,包括角色的讨论,技术方面的内容,要及时沟通交流。
(2)为共同的远景而工作( Work toward a shared vision )
其中“共同的远景”指的是产品的远景,不管是应用软件还是行业软件,我们首先要明确项目的目标,要保证无二义性,并且可以达到,一般来说,“远景”是由“有远见的人”提出的,然后再公开讨论,消除误解,凝聚共识。
(3)充分授权和信任( Empower team members )
授权( Empower)有两个意思:一是给某人权力和权威;二是给予某人更多自信和自尊。在一个高效的团队中,所有成员都应该能得到充分的授权,他们有权在职权范围内按照自已的承诺完成任务,同时,他们也充分信任其他同事能实现各自的承诺。
(4)各司其职,对项目共同负责( Establish clear accountability and shared responsibility )
每个角色要各司其职,如果出了什么问题,那么这个角色就要负责,团队的各个角色合起来,对整个项目最终的成功负责,在项目进展的过程中,要明确who,what,when,why,职责图如下:
(5)交付增量的价值( Deliver incremental value )
我们的项目都应该是出于商业目的,如果没有商业的需求,再酷的技术也没有用,一个项目的商业价值,只有在它被成功发布并且运行时候,才能体现出来,所以,MSF过程模式包括了开发和发布阶段。在MSF团队模型中,“用户体验”代表了用户的利益,“产品管理”这个角色代表了客户的利益,保证了产品能够为客户提供商业价值。
(6)保持敏捷,预期和适应变化( Stay agile, expect and adapt change )
在软件工程中,唯一不变的就是变化,所以我们要预期变化,而不是期望变化。比如一个产品项目需求的生存周期是18个月,如果超过这个期限,产品还没做出来,那就几乎不必做了,因为用户的需求已经发生了变化。
(7)投资质量( Invest in quality )
之所以叫投资,是很有道理的。投资要讲效率,投资要讲时机,投资是长期的;团队成员应该有这样的共识,防止缺陷的发生成为团队质量控制的首要任务,所有的角色都应该对质量保障负责。
(8)学习所有的经验( Learn from all experiences )
我们要学习过去的经验,同时也要避免让过去的经验妨碍解决现在的问题,MSF在每一个里程碑结束时都要做一个“里程碑回顾”,这样做的好处就是大家对最近的成败记忆犹新,能够提供比较准确和全面的反馈,如果发现错误,立马研究解决方案。
(9)与顾客合作( Partner with internal and external customers )
产品团队与顾客的合作交流是MSF所提倡的,其中“我觉得”和“用户觉得”是两码事,所以要主动和顾客沟通交流,全面了解用户的需求。
4 组建团队企业微信群,给出群成员截图
可以看到除了本组队员,我们还邀请了三位助教加入我们团队。
5、团队特色和核心竞争力
团队主要特点:有一致的目标、超高的爆发力、追求卓越的精神; 核心竞争力:团队成员各有所长,能力互补,有一个领导经验丰富的队长,有一群编码测试和写文档经历丰富的队员,无论是Java,c,还是JavaEE,都有相应擅长的编码人员,不仅如此,团队成员能够相互信任,有效沟通,我们团队也会始终坚持“坚持吃苦在前,享受在后”的理念。
二、软件项目案例分析
现代社会,人们很多时候要和软件打交道,手机游戏、微信、QQ、中国铁路12306等等。软件工程学习中,通过这些软件案例的分析、 评测、辨析和总结,我们就能看到软件工程的原理和原则在工程实践中的种种体现和应用,从而加深对软件工程知识内容的理解,帮助我们在软件项目实践中做得更好。 本次作业我们选择案例一为实验对象。博客园的使用是我们这学期才开始进行的,相对于案例一中所说内容,我们并不是很熟悉。所以想借助本次实验机会,对博客园的相关功能加深印象,以方便后续的使用。案例一的内容如下:
案例1:博客园班级博客请对博客园的班级博客中针对院校+班级为对象的班级管理、作业管理、互相交流的功能进行分析,这一方面的参照对象是:CSDN。另外,班级博客的作业管理、班级管理等功能在手机上做得如何呢?有什么可以改进的?
1 阅读《现代软件工程—构建之法》第8章、第12章内容,完成以下案例分析任务
(1)下载、部署并体验案例软件的功能,使用10–30分钟这个软件的基本功能(上传使用软件的照片)
-
博客园APP下载使用体验过程
-
登录界面
-
登录成功
-
从我的博客中的一篇进入班级
-
可以看见自己加入的班级以及博客园班级情况
-
班级内的交流评论
-
在博客园内的闪存可以实现跟博客园的园友交流
-
-
CSDNAPP下载使用体验过程
-
初始界面
-
登录成功可以看见我的界面和首页
-
点击学习查询想学习的课程
-
-
博客园网页版使用体验
-
登录博客园
-
点击“班级”就可以看到活跃的班级和部分作业博文
-
点击“班级”就可以看到所有的班级和隶属的学校
-
点击“我的班级”就可以进入到自己的班级,可以看到班级成员提交的作业博文和老师发布的作业
-
班级成员列表,对于老师、助教和学生的分类很清晰
-
点击“最新作业”就可以看到老师最新发布的作业页面,可以看到已经提交的人和未提交的人、作业列表(老师发布的所有作业)
-
点击“提交作业”选择要提交的博文就可以提交作业
-
在交流方面可以通过评论别人的博客来进行
-
-
CSDN网页版使用体验
-
CSDN没有像博客园一样的“班级”功能,是通过选择课程加入学院来进行班级学习,一个课程相当于一个班级
-
在课程视频底下可以看到同学的笔记
-
CSDN还可以通过论坛和问答和其他人进行交流
-
(2)描述使用案例产品的过程,产品解决了用户的问题么?软件在数据量/界面/功能/准确度上各有什么优缺点?用户体验方面有问题么?
在使用案例产品的过程中,我们认为是产品是能够较好的解决用户的问题的,能够满足用户的对于班级管理、作业管理、互相交流的需求。总的来说使用体验很好,里面提供的班级功能很好地帮助老师和学生完成学习任务,老师也很好管理。作业采用博客的形式提交,老师能及时给学生指出作业中存在的问题,学生也能及时给予反馈,是一个很好的教学辅助网站。
-
博客园网页版
-
数据量:使用搜索引擎搜索比如“c语言回溯法背包问题代码”时,主要的来源就是博客园和CSDN,而且通过这几天的使用和以往的使用发现资料来源明显CSDN要比博客园的要多。
-
界面:博客园网站的界面很美观,看上去清晰明了。用户操作起来很容易。
-
功能:博客园网站的功能很全,尤其是在有新的评论时和作业快要截止时会通过发邮件的方式进行提醒,能够很快地进行处理。但是没有提供班级团队的管理功能,在进行团队作业时不太方便。在以往使用过程中出现过作业提交列表不显示的情况。
-
准确度:准确度很好,每个分类都很准确。
-
用户体验总体来说很好,就是出现过上面所说的作业提交列表不显示的情况,有点影响。
-
-
博客园app(测试的是安卓版的官方app)
-
在数据量方面:如下图所示,在手机上的软件应用商店里面可以搜索到博客园和CSDN的app,可以清晰的看到博客园的数据量是远低于CSDN的数据量的,但也不是很低。数据量的大小不能完全代表产品的好坏,但是能代表是否被足够多的用户所熟知,显然,博客园app的使用的人群不是很多,CSDN则使用较多,一个方面是CSDN有下载资料的功能,功能更全面,还有就是使用博客园的人大多都使用网页版,而且博客园官方的app也不是很完善,所以app的评价也很低。
-
在界面方面:
优点:界面简单明了,很清晰,主要以显示内容为主。缺点:缺少一些美化效果,显得比较单调枯燥。
-
功能方面:
优点:可以查看当前最近的博客园内的消息,包括各个园友发的博客,筛选过的精华的博客还有自己关注的人发的博客。可以在闪存、博文处询问问题,或者发表自己的一些想法,与他人交流。还可以查看自己的博客。缺点:在界面中没有进入班级的按钮,只能通过自己以往博客里的班级链接进入班级,而且博客的表格格式处理不当,如下图所示,还有缺点就是没法编写博客。
-
准确度:
优点:通过用户名或邮箱和密码即可登录,登录时有验证信息,确保是本人操作,没有紊乱的地方。在搜索方面也是较为精确的。缺点:登录时输入密码是点击记住密码,在退出登录之后再进去还是需要重新输入用户名和密码。
-
用户体验有较大的问题,主要是功能不全面,界面不是很友好。
-
(3)对产品有什么改进意见?
-
通过使用博客园网站的班级功能,前一段时间没有什么不方便的。知道这一次的团队作业开始后,为了提交团队作业需要再申请新的博客并加入班级,很不方便。如果在班级中再增加一个团队管理就很方便了
-
虽然评论功能很及时,但是和作者交流时有些问题会说不清楚。而CSDN的私信功能就会很方便。
(4)除了定性的结论,还可以定量地评价一个软件?请看这个链接http://www.cnblogs.com/xinz/p/3308608.html,并尝试进行定量的测评。
核心功能 | 分析三个核心功能 | 10 |
细节 | 有什么为用户考虑的细节? | 9 |
用户体验 | 当用户完成功能时,不干扰用户 (例如: 是否不断弹出不相关广告)。 | 9 |
辅助功能 | 一些辅助功能如皮肤等 | 10 |
差异化功能 | 这个软件独特的功能. 它对用户的吸引力有多大? | 8 |
软件的效能 | 占用内存, 启动速度, 内存泄漏情况 | 9 |
软件的适应性 | 在联网/断网, 大小屏幕, 没有鼠标的情况下都可以顺畅操作. 和不同平台的软件能流畅协作 | 9 |
成长性 | 记住用户的选择, 适应用户的特点,用户越用越方便 | 10 |
用户有控制权 | 系统状态有反馈,等待时间要合适。关键操作有确认提示,有明确的错误信息。 让用户方便地从错误中恢复工作, 快捷操作键可调整。 | 9 |
综合评分 | 9 |
(5)经过以上工作,你们一定有充分的理由给这个软件选择一个评价结论:(d)
a) 非常不推荐 b) 不推荐 c) 一般 d) 好,不错 e) 非常推荐
2 阅读《现代软件工程—构建之法》第8.6、14.1节内容,完成以下案例分析任务
2.1 使用此软件的所有功能,估计这个软件/网站做到这个程度大约需要多少时间,并说明估算理由(假设团队人数6人左右,计算机大学毕业生,并有专业UI支持)。
我们认为大概需要4~5个月的时间,博客园主要有登录、班级等模块组成。其中班级模块的开发最繁杂,对于没有开发经验的大学生来说会比较难。而且前期准备工作很重要所以时间会比较长。需求分析1周、软件设计2周、编码实现10周、测试5周。而且后期会进行优化等,所以我认为大概需要4~5个月时间。
2.2 和同类软件相比分析,这个软件目前的优劣,这个产品的质量在同类产品中估计名列第几?
跟同类软件相比分析,这个软件目前的优势在于对班级博客管理,应用这一块是很完整的,吸进更多的班级体使用博客园,使得博客园班级的使用群体比同类软件的多,而且它的界面也比同类在美化处理上更优化,它提供多种各式各样的皮肤,甚至于用户还可根据自己的喜好去制定自己的专属皮肤;除此之外,博客园是作为一个供用户使用的资源分享平台,它是完全开放的,让用户使用起来更加放心,大部分不需要。如下图所示,博客园在总网站排名前一百,在同类网站排名第三,这是一个很好的成绩了。
2.3 综合判断,给出这个软件团队在软件工程方面可以提高的一个重要方面(具体建议)。
(1)在界面方面可以统一各个页面的设计风格,这样整体会更舒服; (2)增加班级博客到个人博客的跳转链接,可以更方便,不然每次都要通过首页去跳转; (3)在编辑博客的时候,可以给出一个Markdown的一些通用模板,这样让新手更快掌握Markdown编辑器; (4)在添加学生到班级的时候,班级只能发出一个邀请请求,学生收到请求后选择是否接受; (5)尽量把基本功能或者功能的提示放到表面; (6)引入现代设计要素,美化页面。例如,在博客园首页,单纯通过类似于表格一样的元素对热门博客进行展示,这样造成了大量文字的密集堆叠,影响美观。对于这种情况,可以考虑放大字号,增加间距,将表格的展示改为div组成的块,然后对其进行排列,并对单个块的样式进行设计。还可以考虑使用类似BootStrap这样的开源框架以及其他开源项目; (7)对于班级博客,可以开发更多的API,例如对于历史提交作业记录的分析等等,增加一些数据可视化的内容,帮助老师和助教对班级的整体情况进行分析。
3 阅读《现代软件工程—构建之法》第8.5节、第9章内容,完成以下案例分析任务
3.1 首先,市场有多大?潜在的用户有多少?
博客园在2004年1月诞生于江苏扬州IT非常落后的小城市。旨在为IT技术人员们提供一个纯净的技术交流空间,将“博客”从耀眼的明星变为平民。2020年4月22日统计博客园相关数据如下:
从图中可以看出,博客园的用户有568071。查阅相关资料得知,这些用户大部分都是教师、部分企业人员、高校大学生和研究生等,这些并不是其所有用户。信息化的现代生活,小学生都开始学习编程,更何况初中生和高中生,博客园正是适合他们积累经验的平台。除此之外,各大企业公司,无论是IT界的还是非IT界的都是其潜在用户。但若要拉拢这些企业类的用户,博客园的结构相对就比较单一,但是若根据其需求做相关的改动,市场的扩大也是毋庸置疑的。博客园相对于程序猿的集结地——CSDN来说,其最大的优势在于“免费”,这一点抓住了很多用户的心灵需求。
3.2 目前市场上有什么样的产品了,它们的优势劣势在哪里?和它直接竞争的产品在那里?
经过我们的调研,同类产品主要包括简书APP,博客园APP以及leetcode APP。简书APP相较于CSDN而言,内容更倾向于精品化,排版布局也更加的优秀。但CSDN优势在于只聚焦于服务计算机类博客,而简书覆盖面则较广,无法成为码农们的第一首选。博客园APP与CSDN同样专注服务于程序员,但是博客园体量明显较小,缺少论坛等配套服务,只聚焦于博客内容,并且在细节功能上不如CSDN APP,多为学生在应用,缺少大牛的支持。而leetcode作为新兴的APP,优势在于对于算法领域的专注化,但和CSDN相比问题较多,包括活跃人数的极度缺失以及APP功能仍然不够完善。总体而言,这类APP更像是作为网站的复制而存在,而不是致力于在手机端实现PC端所不具备的更多应用,因此总体使用质量都不太高。相较于其它APP而言,CSDN有着较大的体量以及非常高的活跃人数,因此我们估计CSDN APP在同类产品中能够名列第一。
3.3 作为新上任的项目经理,这个产品的核心用户群是什么样的人,典型用户长什么样?学历,年龄,专业,爱好,收入,表面需求,潜在需求都是什么?
- 这个产品的核心用户群主要是:从事IT行业的企业人员,从事IT教育的老师,与IT有关专业的学生
- 典型用户:对IT感兴趣,想要自主学习IT技术的社会人士,想要从事软件开发相关岗位的求职者(博客园具有招聘模块),对比如下:
学历 | 专科、本科及以上 | 社会人士、专科、本科及以上 |
年龄 | 18~28 | 22~45 |
专业 | 计算机及其相关专业 | Java、Python开发人员 |
爱好 | 学习 | 喜欢对某一技术或者某一算法进行总结和阐述,发表自己的看法,喜欢总结自己的编程或者项目开发经验 |
收入 | 基本无 | 平均月收入6000K+ |
表面需求 | 完成老师布置的学习任务,学习他人经验 | 解决工作中遇到的问题,寻求志同道合的朋友 |
潜在需求 | 调试程序,找到BUG解决方案 | 获取更优秀开发者的工作经验,把握行业方向 |
3.4 功能:你要设计什么样的功能?为何要做这个功能,而不是其他功能?为什么用户会用你的产品/功能?你的创新在哪里?可以用NABCD分析.
Need
为不同用户个性化推送首页博文。目前博客园首页的热门博文涉及各个领域,但大多数用户只会关注自己所从事的领域,或是感兴趣的领域,首页出现的博文在某一位用户看来大多是无用的,因此个性化定制首页内容很有必要。
Approach
对不同的博文贴标签,并通过标签获得分数的高低推测用户偏好:用户访问了某个博文,就为博文下的每个标签加1分;用户收藏了某个博文,就为博文下的每个标签加3分。除此之外,还可以设置关注话题的功能,首页除了推送含有用户感兴趣标签的博文外,还可以推送和用户关注话题相关的博文,甚至用户关注者收藏的博文等等。为了更加个性化满足用户需求,用户可以在个人中心对推送博文的类型进行设置(如可以取消推送关注者收藏的博文)。
Benefit
好处在于用户可以很容易获取到他们感兴趣的内容,甚至可以捕获到关注者的动态,增加社交性。
Competitor
目前CSDN在首页可以看到某一篇博文所属的分类和专题,而博客园首页只是把若干不相关的、受欢迎的博文推送到首页上,相比之下,前者的博客分类更加完善,但是二者都没有实现根据用户偏好个性化推送博文。我认为如果博客园能够实现这一功能,会是一个亮点。
Delivery
博客园已经有网站为基础,可以在博客园的网站中进行分发获得第一批用户等。得到足够的反馈完善后在进入应用市场推广。
3.5 如果你有钱可以招聘6个人,有4个月的时间,你作为项目经理,应该如何配置角色(开发,测试,美工等等)?描述你的团队在16周期间每周都要做什么,才能在第16周如期发布软件的改进版本,并取得预想中的成绩。
作为项目经理,如果我可以招聘6个人,我会招聘1个前端开发人员,2个后端开发人员,2个测试,1个美工,之所以这样招聘,是考虑到美工可以和前端人员协调工作,就各分配1个人,而后端工作量比较大,所以分配2人,而对于一个软件项目来说,测试是很重要的一个环节,所以分配2人。
时间 | 成员 | 具体职责 |
---|---|---|
第1~2周 | PM | 布置需求分析任务,并验收成果 |
前端人员 | 进行需求分析 | |
后端人员 | 进行需求分析 | |
测试人员 | 进行需求分析 | |
美工 | 根据需求分析构思界面色彩 | |
第3周 | PM | 布置概要设计任务,并验收成果 |
前端人员 | 设计软件整体布局及架构,并编写文档 | |
后端人员 | 选择合适的编程语言以及框架 | |
测试人员 | 开始制定测试方案 | |
美工 | 辅助前端人员设计软件整体布局及架构 | |
第4~5周 | PM | 布置详细设计任务,并验收成果 |
前端人员 | 编写系统设计报告 | |
后端人员 | 进行数据库设计,模块设计、接口设计等 | |
测试人员 | 编写测试用例,测试软件 | |
美工 | 根据系统设计报告设计编写美化方案 | |
第6~11周 | PM | 布置编码和测试任务,并验收成果 |
前端人员 | 编写代码,设计前端页面 | |
后端人员 | 编写相应的代码,实现需求 | |
测试人员 | 测试软件的功能及性能,记录软件运行中存在的问题 | |
美工 | 优化js页面 | |
第12周 | PM | 布置Alpha测试任务,发布软件第一版本 |
前端人员 | 接收用户反馈,优化界面 | |
后端人员 | 接收用户反馈,解决BUG | |
测试人员 | 根据用户体验继续测试软件 | |
美工 | 优化js页面,调节界面的美观程度 | |
第13~14周 | PM | 发布Beta测试任务,发布软件第二版本 |
前端人员 | 总结用户体验,并改进界面 | |
后端人员 | 解决BUG | |
测试人员 | 在不同的Beta环境中测试,并记录问题 | |
美工 | 总结用户体验,并改进界面部分 | |
第15周 | PM | 总结,Gamma阶段展示,并发布软件最终版本 |
前端人员 | 总结用户对界面的满意度 | |
后端人员 | 总结用户对功能及性能的需求 | |
测试人员 | 总结测试中出现的所有问题,提出如何避免的意见 | |
美工 | 总结用户对界面色彩等方面的需求 | |
第16周 | PM | 总结用户体验,收集用户新需求 |
前端人员 | 软件界面维护 | |
后端人员 | 软件功能及性能维护 | |
测试人员 | 软件维护 | |
美工 | 软件界面维护 |
4 团队协作学习方式
在《构建之法》第五章中,我们了解到了团队的特点就是有一致的集体目标,团队要一起完成这目标,以及团队成员有各自的分工,互相依赖合作,共同完成任务。既然我们四个人组成了一个团队,那么我们就要学习这一原则。俗话说“无规矩不成方圆”。那么,作为一个团队,首先我们制定了三个原则:第一个原则就是在遇到意见不统一的情况下,少数服从多数人的意见;第二个原则就是尽早制定统一的计划表,然后每个人按照自己的时间完成队长分配的任务;第三个原则就是要相互学习,和睦共处。之后,队长分配各个任务所需要的人数,任务1是一个人完成,任务2是两个人完成,任务3是一个人完成,然后大家各自选择自己擅长的部分先着手去做,如果有人负责的部分比较简单,那么做完之后就主动帮助负责复杂任务部分的队员,有什么问题,我们也会随时在群里面交流,从而做到知识的共享,毕竟知识在传播、使用和更新中才能体现出它的价值。 由于我们对队员之间比较熟悉,而且都积极主动,都很团结,所以大家合作的很愉快,作业完成的效率也非常高。我想这种团队协作学习的方式会比一个人单打独斗的强,而且能够在团队协作中碰撞出不一样的火花,学习他人长处,共同进步。
三、记录完成《实验五 团队作业1:软件研发团队组建与软件案例分析》各项任务实际花费的时间
任务一 | 1.5 | 1 |
任务二 | 5 | 6.5 |
任务三 | 1 | 1.5 |
四、从团队分工角度,谈谈完成本次作业的感受和体会。
相对以前的结对方式,这次以两组结对进行团队项目开发的方式是一个很不错的想法。从原有结对开发经验的基础上再进行叠加,无疑比从未互相合作的成员组队效果更好。团队成员由2变为4,相对于以前来说,每个人肩上的担子也会相对于减少。并且我们队成员都相对比较熟悉,而且以前都有一定的合作基础,所以作为PM,根据每个成员特长领域进行分工也不是什么太难的事。但是,由于疫情原因,组织成员一起进行项目开发的时间比较难以掌控。 做为一个团队,不论是哪一领域的优秀团队,都不会靠一个人去实现企业的成功与发展,而一个成功的企业都会有智囊团——优秀的团队。我们学习软件工程这门学科,在实验中最终所要学到的就是一个团队是怎么运行的?团队必备的知识是什么?怎样可以使一个团队变的优秀?希望在今后的团队合作中,3+1>4团队成员能对这些问题有深刻的认识。