202202-发际线跟我作队 实验五 团队作业2:软件项目案例分析
一、实验目的与要求
项目 | |
---|---|
课程班级博客链接 | https://edu.cnblogs.com/campus/xbsf/2019nwnucs |
本次作业要求链接 | https://edu.cnblogs.com/campus/xbsf/2019nwnucs/homework/12596 |
团队名称 | 发际线跟我作队 |
团队成员 | 毛玉贤、蒋敏敏、张颖 |
团队的课程学习目标 | (1)学习团队软件项目流程(TSP)、软件项目团队的角色分工,软件项目经理的职责; (2)掌握敏捷流程原则及相关概念; (3)软件案例分析。 |
这个作业在哪些方面 助团队实现学习目标 |
(1)团队成员线上交流学习,使得我们对于讨论的问题可以清晰的抒发各自的观点; (2)成员彼此讲解自己对所学内容的理解,解答他人疑惑,提升了团队对基本概念的理解,加深印象; (3)紧密结合软件CSDN的学习,在实践中感受问题所在; (4)通过与其他同学交流并采访其使用感受,总结团队未注意到的细节。 |
团队博客链接 | 发际线跟我作队 |
二、实验内容与步骤
1、任务一:以团队协作学习方式,完成以下任务
1.1、阅读《现代软件工程—构建之法》第5、6章内容,理解并掌握软件项目团队的特点和模式、结合理论课学习内容理解瀑布模型及其变形、渐进交付流程、敏捷流程等典型软件过程模型特点;
-
1.1.1 第五章《团队与流程》总结
-
软件项目团队特点
- ①团队有一致的集体目标,团队要一起完成这目标;
- ②一个团队的成员不一定要同时工作,例如接力赛跑;
- ③团队成员有各自的分工,互相依赖合作,共同完成任务;
-
软件项目团队模式
模式 | |||
---|---|---|---|
主治医师 | 像在手术台一样,有一个主刀医师,其他人负责协助主刀医师 | 一个团队中,有首席程序员,负责主要模块设计编码,其他人尽可能支持他的工作 | 有时逐渐退化成“一个学生干活,其他学生打酱油” |
明星模式 | 主治医师模式运用到极点 | 对“明星”个人的成长进步可能有很大帮助 | 团队模式强调的是团队的作用,而不是个人的独角戏,这种模式违背了团队模式初衷,效率也很低 |
社区模式 | 由很多志愿者参与,每个人参与自己感兴趣的项目,贡献力量,大部分人不拿报酬 | “众人拾柴火焰高” | “只烤火,不拾柴”,“拾到的柴火质量太差” |
业余剧团 | 团队中各人扮演各人的角色 | 在业余玩票、培训的环境中,每个人都可尝试不同角色,平等讨论 | 在竞争性强烈、创造性要求高的团队,不存在完美主义的民主气氛 |
秘密团队 | 有一些软件项目在秘密状态下进行,别人不知道他们具体在做什么 | 团队内部有极大的自由,较高的热情,没有外界的干扰 | 不可能成为普遍模式,只会针对个别项目 |
特工团队 | 软件团队由一些有特殊技能的专业人士组成,负责解决一些棘手而有紧迫性的问题 | 效率高 | 对成员的知识面要求十分广,较为针对技术人员,不可能成为普遍模式 |
交响乐团 | 各司其职,像交响乐队一样 | 各司其职,重在执行 | 呆板 |
爵士乐 | 与交响乐模式存在相当多的对立 | 领导给出主题,成员们百花齐放,各显本领,收尾时总结 | 人员不能太多 |
功能团队 | 具备不同能力的同事们平等协作,共同完成一个功能 | 效率高 | 每个小组必须与其他小组就编程规范达成一致 |
官僚模式 | 脱胎于大机构的组织架构,几个人报告给一个小头目,几个小头目报告给中头目,依次向上 | 有助于技术的交替与互补 | 容易掺杂一些追名逐利,使团队效率大打折扣 |
- 软件项目开发流程
模式 | |
---|---|
写了在改 | 写一个有实际用户、解决实际需求的软件,该方法缺点较大 |
瀑布 | (1)前一阶段完成后,只需关注后续阶段,各个阶段间极少有反馈; (2)只有在项目生命周期后期才能看到结果 |
瀑布变形 | (1)生鱼片模型:阶段之间可重叠; (2)大瀑布带着小瀑布:难度大,用户只有到最后才能看到结果 |
统一流程(RUP) | 最小可行产品,把产品最核心的功能用最小的成本实现出来,然后快速征求用户意见 |
老板驱动 | 开发流程由行政领导主导或公司老板驱动 |
渐进交付、MVP、MBP | 当系统的主要需求和架构逐渐明确后,软件团队会进入一个不断演进的循环 |
-
1.1.2 第六章《敏捷流程》总结
-
敏捷开发原则
- 尽早并持续地交付有价值的软件以满足顾客需求;
- 欢迎需求的变化,并利用这种变化来提高用户的竞争优势;
- 经常发布可用的软件,发布间隔可以从几周到几个月,能短则短;
- 业务人员和开发人员在项目开发过程中应该每天共同工作;
- 以有进取心的人为项目核心,充分支持信任他们;
- 无论团队内外, 面对面的交流始终是最有效的沟通方式;
- 可用的软件是衡量项目进展的主要指标;
- 应能保持可持续的发展。领导、团队和用户应该能按照目前的步调持续合作下去;
- 只有不断关注技术和设计,才能越来越敏捷;
- 保持简明,可能简化工作量的技艺极为重要;
- 只有能自我管理的团队才能创造优秀的架构、需求和设计;
- 时时总结如何提高团队效率,并付诸行动。
-
敏捷流程过程模型特点
- 敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发;
- 在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征;
- 换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
1.2、在学习(1)中的基础上,理解并体会卡内基梅隆大学(CMU)软件工程学院总结的TSP原则;
-
1.2.1 理解并体会TSP原则
- ①使用妥善定义的流程,流程中的每一步都是可以重复、可以衡量结果的;
- ②团队的各个成员对团队的目标、角色、产品都有统一的理解;
- ③尽量使用成熟的技术和做法;
- ④尽量多地收集数据(也包括对团队不利的数据),并用数据来帮助团队做出理性的决定;
- ⑤制定切合实际的计划和承诺,团队计划要由负责具体执行的的角色来制定(而不是从上级而来);
- ⑥增加团队的自我管理能力;
- ⑦专注于提高质量,争取在软件生命周期的早期发现问题。最有效提高质量的办法是做全面而细致的设计工作(而不是在后期匆忙修复问题)。
1.3、阅读《现代软件工程—构建之法》第9章内容,了解软件项目团队设置项目经理的缘由、项目经理的职责;
-
1.3.1 第九章《项目经理》总结
-
什么是项目经理(PM)
- PM的M就是 Manager,但是P有这几种: Product Manager 、Project Manager、Program Manager,在不同的行业和公司,他们的作用各不相同;
- Product Manager:产品经理,正确地做产品
- 对一个或多个产品或产品线负责,涉及方方面面:产品定位、市场发展、需求分析、运营、营销、市场推广、商务合作。产品经理横跨这些部门,根据市场和用户需求,协调各部门资源,正确地把握产品定位和方向,解决用户的痛点,持续优化产品;
- Project Manager:项目经理,正确地做流程
- 对项目流程负责,即项目从立项到上线按时完成。正确地协调团队内部外部,调配各部门资源和时间,有效进行风险管理,保证一个项目顺利按计划结项,是一个项目经理的核心价值;
- Program Manager:微软的职位名称
- PM负责除产品开发和测试之外的所有事情。从某种意义上说,是前面两种角色的综合。微软通常有专门的产品策划(Product Planner ),他们和市场部门的专职人员一起,负责产品的长期发展和市场推广;
-
设置PM的缘由
- 随着团队壮大,两个问题凸显出来:团队成员之间交流的成本剧增;有很多开发和测试之外的事情,需要专人负责;
- 这些事情,开发人员大多不愿意做,也未必能做好,所以这就产生了项目经理这一角色;
- PM的出现让团队内部的互动出现了两个新特性
- ①负责一个功能的开发/测试人员和相关的PM密切合作,再由PM代表这一小组去和别的小组或客户代表打交道,大大降低了交流的成本;
- ②有专人负责开发/测试之外的许多事务和项目进度的管理,让开发和测试人员专注于技术方面的工作;
-
PM的职责
- PM做开发和测试之外的所有事情,带领团队达成最重要的目标,并保持团队的平衡;
- Project Manager的职责
- 团队的行政领导,带领大家工作;通常是团队和外界打交道的唯一代表;对项目的功能有最后的巨鼎全;管事也管人;不一定做具体工作;
- Program Manager的职责
- 和大家平等工作,推动团队完成软件的功能;一个团队可以有很多PM;和其他团队成员一起形成决议;管事不管人;一定做具体工作;
- 企业对PM的需求是多种多样的,但在一个项目中,PM的具体任务如下:
- 带领团队形成目标,把抽象的目标化为具体设计;
- 管理软件具体功能的生命周期(需求/设想/设计/实现/测试/修改/发布升级/迁移/淘汰);
- 创建并维护软件的规格说明书,让它成为开发/测试人员的指导,而非障碍;
- 代表客户和用户的利益,主动收集用户反馈,预期新需求。协调并决定各种需求的优先级;
- 分析并带领其他成员对缺陷/变更需求形成一致意见,并确保实施;
- 带领其他成员确保项目保持功能/时间/资源的合理平衡,跟踪项目进展,确保团队发布令客户满意的软件;
- 收集团队项目管理和软件工程的各种数据,客观分析项目实施过程中的优缺点,推动项目成员持续改进,提振士气。
-
合格PM所需能力
- 观察、理解和快速学习能力
- 分析管理能力
- 一定的专业能力
- 自省的能力
1.4、团队讨论协作学习任务一学习内容的截图
-
1.4.1 PM、团队模式、开发流程等内容讨论(部分截图)
2、任务二:以团队协作学习方式,从B、C、D三个软件案例分析任务中选择一个课题来进行
2.1、软件案例分析任务选择--课题C
现在学习资料很多,但是很多同学在学习新技术的时候还是很茫然,有没有更好的学习路径? 大家可以体验一下“CSDN技能树”,这个软件包含了很多IT技能的学习资料(文章、课程)和练习题,可以边学边练,解锁全部知识点后,还可以获得一枚勋章,活动链接:https://bbs.csdn.net/topics/605609934。作为核心用户,CSDN技能树是否满足你们对类似软件产品的期待? 你们发现这些技能树有什么亮点?这个软件产品状态离预期还差哪些方面?
2.2、团队各位成员花几天时间至少使用 <被评测软件>5次, 成为<被评测软件>的持续使用者,记录每位成员使用的时间和时长;
成员 | 次数 | 总计(min) | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
毛玉贤 | 12 | 4.13 12:00 (86) 4.13 16:20 (50) 4.13 22:10 (30) |
4.14 10:00 (60) 4.14 15:00 (25) 4.14 18:30 (50) |
4.15 7:00 (50) 4.15 11:00 (60) 4.15 16:20 (85) |
4.16 8:00 (65) 4.16 14:30 (85) 4.16 22:00 (30) |
676 | ||||||
蒋敏敏 | 12 | 4.13 12:30 (30) 4.13 17:00 (120) 4.13 21:00 (60) |
4.14 7:00 (40) 4.14 14:00 (70) 4.14 17:30 (60) |
4.15 9:00 (90) 4.15 12:00 (30) 4.15 17:00(40) |
4.16 7:10 (90) 4.16 11:30 (30) 4.16 20:00 (50) |
710 | ||||||
张颖 | 12 | 4.13 10:30 (60) 4.13 14:00 (45) 4.13 19:30 (38) |
4.14 8:00 (30) 4.14 9:00 (60) 4:14 11:30 (55) |
4.15 10:00 (60) 4.15 13:00 (70) 4.15 16:20 (40) 4.15 18:30 (56) |
4.16 15:20(40) 4.16 16:10 (90) |
644 |
2.3、汇总<被评测软件> 解决了你们什么问题? <被评测软件>在数据量/界面/功能/准确度上各有什么优缺点? 用户体验方面有问题么?
2.3.1 测评软件的使用过程手机APP(Python技能树为例)
- 手机打开csdn软件,点击我的-技能树,进入页面,点击右上角的9点,请选择语言

- 选择Python技能树,进入页面,点击知识点3.2,有参考资料、练习题、讨论区,参考资料中有很多详细的知识点总结

- 参考资料理解完后,进行习题练习

2.3.2 解决问题以及用户体验
成员 | ||
---|---|---|
毛玉贤 | (1)python技能树:了解Python基本知识,理清了之前不清晰或错记、混淆的概念,对于基础语法能熟练应用; (2)CS入门技能树:了解了git工作的基本原理,系统化的学习了git的相关知识,能更熟练的使用github; (3)C语言技能树:重新复习了C语言的基础知识,重新回忆了关于C的细节,如C语言的发展简史、C语言标椎等;(以这三树为例) |
(1)用户体验感一般,在实际使用手机APP测试技能树的过程中,发现了一些问题(如:手机APP端并无视频学习与笔记功能); (2)过于直白的纯文字化表达,对于一部分用户来说可能会稍显乏味,回答完题目后没有解析,对纯小白来说可能不太友好; |
蒋敏敏 | (1)技能树是CSDN提供的系统化,面向实战的学习环境。它能帮助用户从初学者成长为合格的工程师; (2)CSDN技能树包含了完善的知识体系、相匹配的练习题、活跃的交流学习,可以有效的帮助编程者进行学习; (3)在对某一方面的知识点有疑惑或不明白的地方,可以直接在技能树上搜索,找到相关知识,内容详细且配备相应练习,能更好地理解这部分知识; |
(1)体验感不佳,存在许多问题,例如题库页面有点乱,跳转页面安排不合理,练习题没有答案解析,都是相对于其他软件的不足之处; |
张颖 | (1)在学习一门新语言时,小白可能没办法尽快入手,容易找不到方向,但是这款被评测的软件,就解决了我们“抓瞎”的问题,特别细致地从介绍这门新语言开始,循序渐进,使初学者更容易上手; (2)被评测软件在视频教学后,马上紧接着是对本节内容的测试,很好的帮助我们巩固了知识点,又对自己所学的理论知识加以运用; (3)被评测软件有交流讨论的广场,让我们可以畅所欲言,在交流中学习到更多的经验; (4)解决了我们学了就忘的毛病,在日后的学习中,还可以翻翻之前做的笔记,加深我们的理解。并且别的同学也可以看到笔记,可以对我们的总结能力进行评价,并且对我们自己也是一种激励; |
(1)有效性可以,对于用户最关心的必需功能,被评测软件具备,满足用户的基础需求; (2)被测评软件体验顺畅,交互顺畅,几乎是最高频、最刚需、最强感知的体验属性; (3)被测评软件的界面简洁,没有累赘的流程; |
2.3.3 优缺点
性能 | ||
---|---|---|
数据量 | (1)可练习大量题目,打好基础,迅速入门; (2)每门语言各有60个左右的知识点,知识点解释详尽,有100+参考资料; (3)技能树有多种可选,可根据自身需求选择; |
(1)数据固定,用户不能上传; (2)对于基础知识的考核,题目类型单一(只有选择); (3)考核题目数量略少,知识点覆盖不全面; |
界面 | (1)简单直观,一目了然; (2)排版合理,知识点界面美观,条理清晰,使读者易于理解; (3)大气、简朴、无过冗信息,适合静心学习,不易分心; |
(1)背景颜色单调,虽简单直观,但很难一眼抓住某部分章节的重点; (2)在电脑端的学习区域出现广告横幅,建议移至侧边栏处与学习区分开; (3)在答完题后,显示弹窗,虽可返回目录,但无叉号按钮,不合用户平时习惯; (4)有些弹窗,界面有待完善; |
功能 | (1)电脑端功能较齐全,应学生所求; (2)知识点全面,优学优练,两不误; (3)有笔记功能,方便初学者记忆重点,学习知识; |
(1)点击调试代码,会跳转到另一个界面,进去之后是gitcode网页,而非直接线上编译器; (2)对于编程题目,这块比较欠缺,造成的局面可能是知识点都懂,上手不会,易错; (3)在题目练习的功能上,没有章节测试,巩固前一阶段的学习; (4)没有发布题解的区域或者官方的题目解析; |
准确度 | (1)知识点准确度很高,介绍全面; | (1)在题目测试的准确度上有问题,当答错某一道题之后点击前往notebook调试代码,会跳转到gitcode官网,并没有直接到调试代码部分,此时直接返回上一个页面,会弹出已答对该题,但是目前并没有答对;建议线上调试代码部分可参照力扣放在练习题页面侧边栏,或可选择隐藏; (2)参考资料中同一节的内容,文章知识点介绍会大量重复,不精; |
2.3.4 关于2.3.3中缺点的详细例证
-
1.电脑网页端
- 界面-在学习区投放广告
- 界面-弹框显示有待优化
- 界面-答完题无叉号(不能再次看题)
- 若要再次看题,还需返回上级目录,重新进入,叉掉在此弹出的窗口后才可以,过程繁琐,体验感降低;
-
功能-无线上编译器
- 答题错误,点击前往notebook调试代码;
- 进入gitcode官网,而非线上编译器,操作相对不方便,建议线上调试代码部分可参照力扣放在练习题页面侧边栏处;
-
准确度-弹框显示错误
- 答错题后显示弹窗;
- 点击代码调试;
- 浏览器返回上级页面后,却显示答题正确(建议优化一下此处);
-
2.手机APP客户端
-
在手机端Python技能树知识点的学习中,有三大块,参考资料、练习题、讨论区,与电脑客户端相比,缺少了学习视频以及笔记功能;
-
这对于在手机上学习的用户来说,是不太方便的,大部分用户使用手机的时间相对较长,在平时查看知识点的过程中,视频与笔记功能同步到手机端是必不可少的;
2.4、将csdn技能树推荐给你们周围需要这样的软件朋友或同学, 记录你对这位用户使用体验的采访,记录采访提要如下:
2.4.1 用户的背景和需求 (他们为何要用这个软件/网站,有什么痛点,还有别的需求吗?);
用户 | |||
---|---|---|---|
朋友(小张) | 湖南工业大学,计算机科学与技术专业,大三在读 | 对于一些语言的基础知识容易遗忘,对于一些基本概念会记混淆 | 复习python基础语法,爬虫入门 |
2.4.2 请用户使用10分钟csdn技能树,上传用户使用照片;
- 技能树的基本功能有,选择要学习的语言,进入语言学习页面后,有详细的参考资料、基础的练习题、以及讨论区可以帮助我们巩固学习,交流讨论;
2.4.3 概述用户使用过程, 评判用户问题是否解决?
- 该位被邀请的用户是在手机端进行学习体验的,由于该用户也经常使用csdn来查阅资料,所以也比较熟悉上面的操作,进入软件点击我的-技能树-选择Python技能树进行学习;
- 此用户的痛点是对于语言的基础知识容易遗忘,对于一些基本概念会记混淆,对于这些问题,电脑网页端的笔记功能,能够很好地帮助用户解决痛点,及时查看,梳理知识脉络,方便快捷,常看常新,虽然没有在手机上方便(但问题还是可以基本解决);用户本次使用的目的是复习python基础语法,爬虫入门,由于手机上参考资料、文章知识点讲解较多,内容也比较全面,需求基本可以满足;
2.4.4 采访用户对产品的改进意见?
- 用户意见总结
- ①练习题少,对小白掌握知识点不牢固,建议多些练习题;
- ②题目类型单一,只有选择题,同上,不利于知识点的熟练掌握;
- ③编程题目几乎没有,学练不统一,达不到很好的效果,只能掌握些基础知识,建议有线上编辑器以及编程题目跟练,否则该技能树与其他学习软件相比,没有特别大的优势;

3、任务三:完成《实验五 团队作业2:软件项目案例分析》团队博文作业
3.1、博文作业发布在团队博客
3.2、记录完成《实验五 团队作业2:软件项目案例分析》各项任务实际花费的时间
任务 | 总计(min) | ||||||||
---|---|---|---|---|---|---|---|---|---|
任务一 | 阅读第五、六章内容 (40) | 在理解五六章的基础上,理解TSP原则 (15) | 阅读第九章 (30) | 团队谈论 (25) | 110 | ||||
任务二 | 决定课题组 (8) | 测试csdn技能树(团队平均时长)(676) | 统计成员对所测试软件的使用情况 (50) | 用户采访 (15) | 749 | ||||
任务三 | 完成博客 (120) | 统计任务完成时间 (5) | 感悟 (5) | 检查 (5) | 135 |
3.3、团队感受和体会
- 本次作业学习了《构建之法》的第五、六、九章节,了解到了多种多样的团队模式,如一窝蜂模式、主治医师模式、明星模式、秘密社团等等,在上次的实验中我们已经组建了团队,本次学到的知识恰好帮助我们更合理的调整团队内部的运行模式;同时掌握了一些比较重要的软件开发流程,例如:瀑布模型及其各种变形、渐进交付流程、敏捷过程模型等;在第九章中理解了PM的多种分类以及职责。在本次实验的任务二中,我们组选择了C,通过对csdn技能树的测评、体会,确实发现了一些使用过程中出现的问题,这些问题,同样也是我们开发软件过程中,在用户需求、功能体验、界面设计等多方面可能会产生的问题,所以本次测评不仅让我们团队认真的学到了一些知识,而且发现了一些别人在开发设计过程中,映射在我们自身所折射出的问题才是最重要的,让我们苟日新,日日新,又日新。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?