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)
总计(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)
总计(min)
任务一 阅读第五、六章内容 (40) 在理解五六章的基础上,理解TSP原则 (15) 阅读第九章 (30) 团队谈论 (25) 110
任务二 决定课题组 (8) 测试csdn技能树(团队平均时长)(676) 统计成员对所测试软件的使用情况 (50) 用户采访 (15) 749
任务三 完成博客 (120) 统计任务完成时间 (5) 感悟 (5) 检查 (5) 135

3.3、团队感受和体会

  • 本次作业学习了《构建之法》的第五、六、九章节,了解到了多种多样的团队模式,如一窝蜂模式、主治医师模式、明星模式、秘密社团等等,在上次的实验中我们已经组建了团队,本次学到的知识恰好帮助我们更合理的调整团队内部的运行模式;同时掌握了一些比较重要的软件开发流程,例如:瀑布模型及其各种变形、渐进交付流程、敏捷过程模型等;在第九章中理解了PM的多种分类以及职责。在本次实验的任务二中,我们组选择了C,通过对csdn技能树的测评、体会,确实发现了一些使用过程中出现的问题,这些问题,同样也是我们开发软件过程中,在用户需求、功能体验、界面设计等多方面可能会产生的问题,所以本次测评不仅让我们团队认真的学到了一些知识,而且发现了一些别人在开发设计过程中,映射在我们自身所折射出的问题才是最重要的,让我们苟日新,日日新,又日新。
posted @ 2022-04-16 21:40  发际线跟我作队  阅读(129)  评论(1编辑  收藏  举报