202206-WGYG 实验五 团队作业2:软件项目案例分析
项目 | 内容 |
---|---|
课程班级博客链接 | 2019卓越班 |
这个作业要求链接 | 实验五 团队作业2:软件项目案例分析 |
团队名称 | WGYG |
团队的课程学习目标 | (1)学习团队软件项目流程(TSP)、软件项目团队的角色分工,软件项目经理的职责。 (2)掌握敏捷流程原则及相关概念。 (3)软件案例分析。 |
这个作业在哪些方面帮助团队实现学习目标 | (1)学习到了PM是如何产生及其任务 (2)团队成员对软件团队的模式及开发流程有更深理解 (3)团队成员对软件测评进行了实践 (4)团队的交流更加深入 |
团队博客链接 | WGYG |
1|0任务1
1|1《现代软件工程—构建之法》第5章
-
软件团队的模式:
- 主治医师模式:这样的软件团队中,有首席程序员( Chief Programmer ),他/她负责处理主要模块的设计和编码,其他成员从各种角度支持他/她的工作。
- 明星模式:主治医师模式运用到极点。
- 社区模式:社区由很多志愿者参与,每个人参与自己感兴趣的项目,贡献力量,大部分人不拿报酬。这种模式的好处是“众人拾柴火焰高”。
- 业余剧团模式:这样的团队在每一个项目中,不同的人会挑选不同的角色。在下一个项目中,这些人也许会换一个完全不同的角色类型。
- 秘密团队:一些软件项目在秘密状态下进行,别人不知道他们具体在做什么。
- 特工团队:软件行业的一些团队由一些有特殊技能的专业人士组成,负责解决一些棘手而有紧迫性的问题。
- 交响乐团模式:当某个软件领域处于稳定成长阶段的时候,众多大型软件公司的开发团队就会采取该模式。
- 爵士乐模式:强调个性化的表达,强有力的互动,对变化的内容给予有创意的回应。类似敏捷开发模式。
- 功能团队模式:具备不同能力的同事们平等协作,共同完成一个功能。
- 官僚模式:这种模式脱胎于大机构的组织架构,几个人报告给一个小头目,几个小头目报告给中头目,依次而上。这种模式在软件开发中会出问题。
-
开发流程:
- 写了再改模式( Code-and-Fix )
- 瀑布模型( Waterfall Model)
- 如果产品的定义非常稳定,但是产品的正确性非常重要,需要每一步的验证
- 产品模块之间的接口、输入和输出能很好地用形式化的方法定义和验证
- 使用的技术非常成熟,团队成员都很熟悉这些技术
- 负责各个步骤的子团队分属不同的机构,或在不同的地理位置,不可能做到频繁的交流
- 瀑布模型的变形
- 生鱼片模型
- 大瀑布带着小瀑布
- 统一流程(RUP)
- 初始阶段:此阶段的目标是分析软件系统大概的构成,系统与外部系统的边界在哪里,大致的成本和预算是多少,系统的风险主要来自哪里。成功度过初始阶段的项目会达到生命周期目标( Lifecycle Objective )里程碑。
- 细化阶段:它的目标是分析问题领域,建立健全的体系结构基础,编制项目计划,按优先级处理项目中的风险。团队要确定项目的具体范围、主要功能、性能、安全性、可扩展性等非功能需求。同时为项目建立支持环境,包括创建开发案例、创建模板并准备工具。细化阶段结束时,项目到达了第二个重要的里程碑:生命周期结构( Lifecycle Architecture)里程碑。
- 构造阶段:在这一阶段,团队开发出所有的功能集,并有秩序地把功能集成为经过各种测试验证过的产品。构造阶段结束时是第三个重要的里程碑:初始功能( Initial Operational )里程碑。此时的产品版本也常被称为“beta”版。
- 交付阶段:这时候,团队工作的重点是确保软件能满足最终用户的实际需求。交付阶段可以有迭代 ( beta1,beta2等),基于用户的反馈,团队利用这些迭代对系统进行修改、调整。除了对功能的调整,团队还要注意处理用户设置、安装和可用性等问题。在交付阶段的终点是第四个里程碑:产品发布(Product Release)里程碑。
- 老板驱动的流程(Boss-Driven Process)
- 渐进交付的流程(Evolutionary Delivery) , MVP和MBP
- 渐进交付的流程(Evolutionary Delivery):[开发→发布→听取反馈→根据反馈做改进],重复这个循环,直到时间用完,钱花光,完成了计划的迭代次数,或者客户认为满意
- MVP:Minimum Viable Product,最小可行产品,又称为Minimal Feature Set,最小功能集。把产品最核心的功能用最小的成本实现出来(或者描绘出来),然后快速征求用户意见。
- MBP: Maximal BeautifulProduct(最强最美产品,MBP )。把产品最全、最美的形态展现出来。
-
TSP原则
- 使用妥善定义的流程,流程中的每一步都是可以重复、可以衡量结果的;
- 团队的各个成员对团队的目标、角色、产品都有统一的理解;
- 尽量使用成熟的技术和做法;
- 尽量多地收集数据(也包括对团队不利的数据),并用数据来帮助团队做出理性的决定;
- 制定切合实际的计划和承诺,团队计划要由负责具体执行的的角色来制定(而不是从上级而来);
- 增加团队的自我管理能力;
- 专注于提高质量,争取在软件生命周期的早期发现问题。最有效提高质量的办法是做全面而细致的设计工作(而不是在后期匆忙修复问题)。
1|2《现代软件工程—构建之法》第6章
- 敏捷开发的原则:
- 尽早并持续地交付有价值的软件以满足顾客需求
- 敏捷流程欢迎需求的变化,并利用这种变化来提高用户的竞争优势
- 经常发布可用的软件,发布间隔可以从几周到几个月,能短则短
- 业务人员和开发人员在项目开发过程中应该每天共同工作
- 以有进取心的人为项目核心,充分支持信任他们
- 无论团队内外,面对面的交流始终是最有效的沟通方式
- 可用的软件是衡量项目进展的主要指标
- 敏捷流程应能保持可持续的发展。领导、团队和用户应该能按照目前的步调持续合作下去
- 只有不断关注技术和设计,才能越来越敏捷
- 10.保持简明——尽可能简化工作量的技艺——极为重要
- 只有能自我管理的团队才能创造优秀的架构、需求和设计
- 时时总结如何提高团队效率,并付诸行动
- 敏捷开发的步骤:
- 找出完成产品需要做的事情——Product Backlog
- 决定当前的冲刺( Sprint)需要解决的事情——Sprint Backlog
- 冲刺
- 得到软件的一个增量版本,发布给用户。然后在此基础上又进一步计划增量的新功能和改进。
- 敏捷的适用范围
产品可靠性要求 | 需求变化 | 团队人员数量 | 人员经验 | 公司文化 | 实际的例子 | 用错方式的后果 |
---|---|---|---|---|---|---|
不高,容忍经常出错 | 经常变化 | 不多 | 有资深程序员带队 | 鼓励变化,行业充满变数 | 写一个微博网站 | 用敏捷的方法开发登月火箭控制程序,前N批宇航员都挂了 |
1|3《现代软件工程—构建之法》第9章
-
PM 的M就是Manager,但是Р有这几种:Product Manager、Project Manager、ProgramManager,在不同的行业和公司,他们的作用各不相同。
- Product Manager :产品经理—正确地做产品。目前国内公司大部分PM都是指这个职位。产品经理对一个或多个产品或产品线负责,而互联网产品涉及到这些方方面面:产品定位、市场发展、需求分析、运营、营销、市场推广、商务合作。产品经理横跨这些部门,寻找资源,持续推进产品。随着产品的发展,不同公司,对PM要求会不一样。核心要求是,根据市场和用户需求,协调各部门资源,正确地把握产品定位和方向,解决用户的痛点,持续优化产品。
- Project Manager :项目经理—正确地做流程。在某些公司,这个职位与产品经理分开单列。他们对项目流程负责,即项目从立项到上线按时完成。正确地协调团队内部外部,调配各部门资源和时间,有效进行风险管理,保证一个项目顺利按计划结项,是一个项目经理的核心价值。
- Program Manager :微软的职位名称。微软产品团队三足鼎立的角色分配就是PM、开发、测试。PM负责除产品开发和测试之外的所有事情。从某种意义上说,是前面两种角色的综合。微软通常有专门的产品策划( Product Planner ),他们和市场部门的专职人员一起,负责产品的长期发展和市场推广。
-
为什么会有项目经理?
随着软件复杂度的提高,用户需求的多样化,市场竞争的日益激烈,光有程序员和销售人员是不够的。销售人员当然可以把顾客的需求直接告诉开发人员,但是开发人员往往听不懂。我们需要专人来把市场/销售人员那一套MBA的套路语言翻译成程序员能懂的规格说明书(Spec )。也就是说,我们需要专门的人才来做下面的事,而这些事往往是程序员不愿意花时间去做的:
- 和客户交谈,组织用户调查,发现用户需求
- 了解和比较竞争对手的产品
- 怎么让软件变得可用(Usable)、有用( Useful )
- 怎么改进团队的流程
-
PM给团队带来的好处:
- 负责一个功能的开发/测试人员和相关的PM密切合作,再由PM代表这一小组去和别的小组或客户代表打交道,大大降低了交流的成本;
- 有专人负责开发/测试之外的许多事务和项目进度的管理,让开发和测试人员专注于技术方面的工作
-
Project Manager和Program Manager的区别
Project Manager | Program Manager |
---|---|
是团队的行政领导,带领大家在项目中工作 | 和大家平等工作,推动团队完成软件的功能 |
通常是团队和外界打交道的唯一代表 | 一个团队可以有很多PM |
对项目的功能有最后的决定权 | 和其他团队成员一起形成决议 |
管事也管人 | 管事不管人 |
不一定做具体工作 | 一定做具体工作 |
-
PM要具备的能力:
-
观察、理解和快速学习能力
-
分析管理能力
-
一定的专业能力
-
自省的能力
-
-
PM的具体任务:
- 带领团队形成团队的目标/远景,把抽象的目标转化为可执行的、具体的、优美的设计;
- 管理软件的具体功能的生命周期(需求/设想/设计/实现/测试/修改/发布/升级/迁移/淘汰);
- 创建并维护软件的规格说明书,让它成为开发/测试人员及时准确的指导,而不是障碍;
- 代表客户和用户的利益,主动收集用户反馈,预期用户新的需求。协调并决定各种需求的优先级;
- 分析并带领其他成员对缺陷/变更需求形成一致意见,并确保实施;
- 带领其他成员确保项目保持功能/时间/资源的合理平衡,跟踪项目进展,确保团队发布令客户满意的软件;
- 收集团队项目管理和软件工程的各种数据,客观分析项目实施过程中的优缺点,推动项目成员持续改进,从而提振士气。
- 有序的会议
1|4讨论截图
2|0任务2
被评测软件/网站
选择C,对“CSDN技能树”进行测评
C)现在学习资料很多,但是很多同学在学习新技术的时候还是很茫然,有没有更好的学习路径? 大家可以体验一下“CSDN技能树”,这个软件包含了很多IT技能的学习资料(文章、课程)和练习题,可以边学边练,解锁全部知识点后,还可以获得一枚勋章,活动链接:https://bbs.csdn.net/topics/605609934。
作为核心用户,CSDN技能树是否满足你们对类似软件产品的期待? 你们发现这些技能树有什么亮点?这个软件产品状态离预期还差哪些方面?
推荐评测以下CSDN技能树:
Python 技能树:https://edu.csdn.net/skill/python
CS入门技能树:https://edu.csdn.net/skill/gml
C 语言技能树:https://edu.csdn.net/skill/c
测评时长记录
成员 | 使用时长(min) |
---|---|
魏瑾川 | 30+52+30+35+44+30=221 |
郭清华 | 30+30+35+30+45+40=210 |
姚恪 | 40+20+55+40+50+35=240 |
古丽妮尕尔·阿卜力米提 | 36+30+35+35+55+45=236 |
产品测评
网页端
- 总体界面
- 功能:
① 目录
② 与目录对应的具体内容概括
③ 学习奖章及相关内容
- 优缺点:
- 优点
- 界面简洁明了,所有功能一览无余
- 对每个知识点是否学过进行了标注,方便用户使用
- 优点
- 加入计划
-
功能:
-
用户可根据自身情况合理安排学习时间
-
用户在创建计划后可查看自己的学习进度
-
-
优缺点:
- 优点
- 界面简洁明了,即使第一次使用也没有障碍
- 方便用户进行学习计划的安排,提升用户体验感
- 优点
- 具体学习界面
- 功能:
① 该模块的知识点
② 进行资料,习题,交流讨论及笔记的切换
③ 具体的学习资料,包括视频资料
④ 笔记编辑
-
优缺点:
- 优点
- 界面简洁明了,所有内容一览无余
- 缺点
- 右侧笔记用户不可关闭
- 优点
-
建议
- 笔记让用户选择是否开启
- 参考资料
- 功能:
- 进行该部分知识点的学习
- 优缺点:
- 优点
- 图文并茂,可帮助学习者更好地进行学习
- 缺点
- 教程的排版不够美观,如图2-5所示
- 笔记不可自主关闭
- 目录只有文章开始部分有,在浏览到其他内容时,如果想看前边的某一知识点得一点一点滑动去找,如图2-6
- 用户只能通过鼠标滚轮进行滑动阅读,如果用户要快速到文章底部只能一点一点滚动滑轮
- 优点
- 建议:
- 笔记让用户选择是否开启
- 在侧边添加目录导航
- 在图2-7红框部分可添加滚动条
- 习题
-
功能:
- 进行该部分知识点的练习
-
优缺点:
- 优点
- 帮助用户进行知识点的练习
- 缺点
- 点击图2-10的”前往notebook调试代码“会跳转到图2-11的页面
- 习题设置过于单一,只有选择题
- 优点
-
建议:
- 将图2-10的”前往notebook调试代码“删除
- 交流讨论
-
功能:
- 用户可在此对上一部分的习题进行讨论
-
优缺点:
- 优点
- 帮助用户了解到自己的错误
- 帮助各个用户进行交流
- 缺点
- 点击图2-10的”前往notebook调试代码“会跳转到图2-11的页面
- 优点
-
建议
- 删除”前往notebook调试代码“的选项
- 笔记
-
功能:
- 用户可在此对知识进行总结
- 用户可以阅读其他用户的笔记
-
优缺点:
- 优点
- 帮助用户学习他人的想法
- 帮助各个用户进行交流
- 优点
-
功能:
- 用户可在此对学到的知识进行总结
-
优缺点:
- 优点
- 采用markdown语法
- 缺点
- 无法完全关闭该界面
- 优点
-
建议
- 添加将该界面隐藏到侧边的功能,类似最左侧的目录
APP
- 首页
-
功能:
- 该部分知识的框架
-
优缺点:
- 优点
- 界面简洁明了,所有功能一览无余
- 对每个知识点是否学过进行了标注,方便用户使用
- 优点
- 资料
-
功能:
- 该部分知识的呈现
-
优缺点:
- 优点
- 提供多位用户提供的资料
- 缺点
- 如图2-19,和网页端缺点类似目录只有文章开始部分有,在浏览到其他内容时,如果想看前边的某一知识点得一点一点滑动去找
- 优点
-
建议
- 在侧边添加弹出目录按钮
- 习题
-
功能:
- 该部分知识相关习题的练习
-
优缺点:
- 优点
- 提供多道习题并附带解析
- 优点
- 功能:
- 查阅他人笔记
- 优缺点:
- 优点
- 提供多位用户的笔记
- 优点
总结
BUG位置 | BUG描述 |
---|---|
Django学习界面(图2-5) | 页面排版混乱 |
用户答题完毕后的弹出框(图2-10) | 点击”前往notebook调试代码“会跳转到一个已经下线的功能 |
讨论截图
解决的问题
- 在学习某个知识却很难找到相关资料的问题
- 在网上寻找资料找到的资料质量却参差不齐的问题
- 附带笔记功能,可以边学习边记笔记,比较方便
- 提供的资料很齐全,可以一站式学习各种教程
用户体验方面的问题
- 在用户答题界面点击图2-10的”前往notebook调试代码“会跳转到图2-11的页面
- 右侧笔记用户不可关闭
- 在阅读资料页面目录只有文章开始部分有,在浏览到其他内容时,如果想看前边的某一知识点得一点一点滑动去找,如图2-6
- 在阅读资料页面用户只能通过鼠标滚轮进行滑动阅读,如果用户要快速到文章底部只能一点一点滚动滑轮
总体来说该技能树是很不错的,资料齐全,很容易上手,而且使用起来也十分便捷。
被推荐的用户
背景及需求:
采访对象 | 身份 | 为何使用这个软件 | 痛点 | 其他需求 |
---|---|---|---|---|
王同学 | 20级学弟 | 巩固学习c语言 | 对于c语言有一定程度的遗忘 | 提升自身能力 |
- 采访对象体验测评软件画面
- 概述用户使用<被评测软件>的过程, 评判这位用户的问题解决了么
- 问题解决:该同学在使用完成之后,对于c语言有了巩固与提升,对于其中的内容都能够回忆有一定的理解
- 数据量:
- 优点:数据全面,几乎涵盖了所有c语言内容
- 缺点:知识比较单一,而且缺少前后联系,内容比较基础
- 界面:
- 优点:比较简洁清晰,能够让人迅速找到需要了解的位置
- 缺点:缺少人机互动,有点死板,界面不够精细
- 准确度:
- 优点:菜单内容,与基础知识内容基本准确
- 缺点:拥有大量重复内容,需要精简,或者做课外延伸
- 用户改进意见
- 数组安排在太后面了
- 部分章节内容过于详细,有些内容重复
- 重点不清晰,希望标注重点
3|0任务3
各项任务花费时间
任务内容 | 实际花费的时间(min) |
---|---|
任务1 | 150 |
任务2(测评+采访) | 904+70=974 |
任务3 | 140 |
总共 | 1264 |
感受和体会
通过本次任务,我们小组:学习到了PM是如何产生及其任务;团队成员对软件团队的模式及开发流程有更深理解;团队成员对CSDN的技能树进行使用并进行了测评;团队的交流更加深入。
__EOF__

本文链接:https://www.cnblogs.com/WGYG/p/16156119.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类