201871010116-祁英红 实验四 团队作业1:软件研发团队组建

项目 内容
课程班级博客链接 班级博客
这个作业要求连接 作业链接
团队名称 这是个小队
团队的课程学习目标 (1)对完成质量较高的小组项目成果进行学习反思
(2)阅读学习《现代软件工程—构建之法》第5章和第12章内容
(3)开通并加入团队博客,建设团队文化,了解团队成员,建立团队目标
这个作业在哪些方面帮助团队实现学习目标 (1)通过对完成在质量高的小组项目成果学习和运行,对背包问题有了更深的理解,发现同伴的不足以及对自己遗留的问题进行解决
(2)通过阅读学习《现代软件工程—构建之法》第5章和第12章内容,体验任务三实现软件功能,理解软件的使用功能
(3)与团队成员交流沟通,共同建设团队
团队博客链接 团队博客链接

任务1:浏览班级博客园中提交《实验三 软件工程结对项目》作业,任选一个你认为完成质量较高的小组项目成果,继续以实验三结对学习方式完成以下任务,具体要求如下:

  • (1)对博文作业进行阅读,并结合评分要求进行评论,评论要点包括:博文结构、博文内容、博文结构与PSP中“任务内容”列的关系、PSP中“计划共完成需要的时间”与“实际完成需要的时间”两列数据的差异化分析与原因探究,给出这个结对小组在进度计划方面可以提高的具体建议。将以上评论内容发布到博客评论区。

  • (2)克隆任务3项目源码到本地机器,阅读并运行代码,参照《现代软件工程—构建之法》4.4.3节核查表复审项目代码并记录。
    进程代码复审,未发现大的语法问题,对一些细节问题进行了改进。
    代码复审核查表:

复审要求 是否满足
概要部分
1)代码是否符合需求和规格说明么?
2)代码设计是否考虑周全?
3)代码可读性如何? 可读性好
4)代码容易维护么? 容易
5)代码的每一行都执行并检查过了吗? 已检查
设计规范部分
1)设计是否遵从已知的设计模式或项目中常用的模式?
2)有没有硬编码或字符串/数字等存在? 没有
3)代码有没有依赖于某一平台,是否会影响将来的移植(如Win32到 Win64 ) ? 没有
4)开发者新写的代码能否用已有的Library/SDK/Framework中的功能实现?在本项目中是否存在类似的功能可以调用而不用全部重新实现? 没有
5)有没有无用的代码可以清除? 没有
代码规范部分
修改的部分是否符合代码标准和风格?
具体代码部分
1)是否对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常?
2)参数传递有无错误,字符串的长度是字节的长度还是字符(可能是单/双字节)的长度,是以0开始计数还是以1开始计数? 没有
3)边界条件是如何处理的?switch语句的default分支是如何处理的?循环有没有可能出现死循环? 试运行时没有出现死循环
4)有没有使用断言(Assert)来保证我们认为不变的条件真的得到满足? 没有使用
5)对资源的利用,是在哪里申请,在哪里释放的?有无可能存在资源泄漏?有没有优化的空间? 对空间的优化较好,无数据库的访问链接
6)数据结构中有没有用不到的元素? 未发现
  • (3)阅读《现代软件工程—构建之法》第12章内容,完成以下分析任务:
    A. 体验任务3实现软件功能,简要描述软件的使用过程,上传使用软件的照片;
    克隆源码:





B. 总结任务3要求的功能软件解决了吗?软件在数据量/界面/功能上各有什么优缺点?对该软件产品功能有什么改进意见?

  • 答:任务三要求的功能软件基本解决。数据量和界面比较完善,遗传部分未完成。希望后面可以完成遗传那块的功能。

C. 从职业、学历、年龄、专业、爱好、收入等方面概括实验三任务3所研发软件产品的典型用户群特征,他们表面需求,潜在需求是什么?

  • 答:职业:学生或相关算法研究人员
    学历:本科及以上(或者一些相关爱好者,如OI选手等)
    年龄:13-45
    专业:与算法设计相关的专业
    爱好:算法爱好者
    收入:不限
    表面特征 :D{0-1}算法求解以及可视化分析
    潜在需求:回溯算法、动态规划算法以及遗传算法的对比分析

  • (4)经过(1)—(3)的工作,你们一定有充分的理由给评价作业选择一个结论: a) 非常不推荐 b) 不推荐 c) 一般 d) 好,不错 e) 非常推荐

    • 答:经过我自身使用,发现其有点麻烦,不利于用户体验,所以我给的结论是c).
  • (5)结合(1)—(3)的评论体会,迭代改进本小组实验三的任务3。

任务2:团队组建

在实验三结对基础上,结对小组两两自由组合,组建软件项目研发团队;
申请开通团队博客,点击以下链接提交团队信息,将团队博客加入到班级博客;(3分)
已按要求完成:

阅读《现代软件工程—构建之法》第5章内容

  • 团队共有的特点
    (1)团队有一致的集体目标,团队要一起完成这目标。一个团队的成员不一定要同时工作;
    (2)团队成员有一定的分工,互相依赖合作,共同完成任务。

  • 软件团队的模式
    (1)主治医师模式:首席程序员负责主要模块的设计与编码,其他成员从不同角度提供支持;
    (2)明星模式:主治医师模式运用的极点,团队“明星”的能力掩盖了团队所有人的缺陷与优点;
    (3)社区模式:成员分布不受时间空间的限制,所有人根据喜好选择项目进行开发,一般不要求报酬;
    (4)业余剧团模式:没有固定的团队,且成员在不同的项目中没有固定的工作分配,所有成员由“中央指挥”指示;
    (5)秘密团队:秘密状态下进行,无外界干扰,团队肩负独特使命,内部成员自由度与热情较高;
    (6)特工团队:团队由专业人士组成,负责一些紧急问题的解决;
    (7)交响乐团模式:较多大型软件公司采用,成员与领导者能力较强且有相似的项目开发经验,所有成员各司其职但统一受领导者指挥;
    (8)爵士乐模式:与交响乐团模式对立,较为松散,领导者完成框架,其他成员在此基础上创作,最后再由领导者收尾;
    (9)功能团队模式:没有固定的团队,由不同能力的成员进行组合,协作完成某一项目,项目完成后成员重新组织进行其它不同项目;
    (10)官僚模式:脱胎于大机构的组织架构,几人向小头目报告,小头目向大头目报告。容易形成恶性竞争。

  • 瀑布模型以及各种变形

    • 特点:重计划、重事先设计、重文档表达。
    • 统一流程工作流:
      业务建模——需求——分析和设计——实现——测试——部署——配置和变更管理——项目管理——环境——初始阶段——细化阶段——构造阶段——交付阶段
    • TSP原则
      使用妥善定义的流程,流程中的每一步都是可以重复、可以衡量结果的;
      团队的各个成员对团队的目标、角色、产品都有统一的理解;
      尽量使用成熟的技术和做法;
      尽量多地收集数据(也包括对团队不利的数据),并用数据来帮助团队做出理性的决定;
      制定切合实际的计划和承诺,团队计划要由负责具体执行的角色来制定;
      增加团队的自我管理能力;
      专注于提高质量,争取在软件生命周期的早期发现问题。最有效提高质量的办法是做全面而细致的设计工作。
  • 1.队名;(3分)

    • 这是个小队
  • 2.团队成员组成,按以下列表形式给出,个人博客地址需加超链接,在备注中标记团队组长(PM);

成员学号 成员姓名 个人博客地址 备注
10116 祁英红 https://www.cnblogs.com/qyhq/ 组长
10119 帖佼佼 https://www.cnblogs.com/-8tjj/
10110 李华 https://www.cnblogs.com/LH-18110/
10108 高文利 https://www.cnblogs.com/gwlg/
  • 3.成员风采:介绍每位队员的风格、擅长技术、编程兴趣、希望的承担的软工角色(文档、开发、测试、PM等)、一句话宣言等;
成员 风格 擅长技术 编程兴趣 希望承担的软工角色 宣言
祁英红 行事有计划,动手能力强 web前端 python PM 环境不会改变,解决之道在于改变自己
帖佼佼 擅长文字撰写工作,文采好 c++ web前端 文档 只要路是对的,就不怕路远
李华 仔细认真,擅长测试检查 c语言 Java 测试 做正确的事,再把事情做正确
高文利 编程能力好,逻辑思维能力较强 python Java 开发 出门走好路,出门说好话,出门做好事
  • 阅读《现代软件工程—构建之法》第7章,理解MSF的9点基本原则
    MSF基本原则:
    1、推动信息共享与沟通
    此原则要求是将所有信息都保留并公开,讨论要包括所有涉及的角色,决定要公开并告知所有人。在此过程中可能会有技术机密的问题,要注意保护。信息共享和沟通是其他原则实行的基础,无论是被修改了的错误,还是发生了任何变化的过程,团队中的每个人都应该对此了解。宁可过分沟通,也不能使团队合作中的一个部分不透明公开。这会影响之后的学习。
    2、为共同的愿景而工
    “共同的远景”是指产品的远景,此原则要求指定产品的最终目标,要求所有的工作人员朝着这个目标努力。如果没有搞清楚项目的目标,或者朝着与目标不同的方向努力时被认为是在做无用功。这是一个项目的关键,是项目第一阶段要达到的主要目标。无论做什么类型的软件都要明确我们项目的目标是什么。
    3、充分授权和信任
    此原则要求所有成员都应该能得到充分的授权和信任,他们有权在职权范围内按照自己的承诺完成任务,同时他们也充分信任其他同事的承诺。成员之间、团队之间是平等协作的关系,形成网状团队结构。这样做的好处:1.被授权的人会承担自己对项目的责任,同时也期望同事们也同样对项目负责;2.MSF提倡自下而上的计划,每个人有充分的权利估计自己的任务需要多长时间,每个人按照自己的估计去完成任务。人人支持项目计划和时间表。
    4、各司其职,对项目共同负责
    团队中的每个角色都有自己的职责,每个工作人员尽职尽责,各司其职,并且当要做一件事情,周围人有不少意见时,对此事负责任的角色要自己拿主意。团队的各个角色合起来,对整个项目的最终成功负责任。任何角色的失败都会导致项目的失败,各个角色的工作都是相互渗透、相互依赖的。
    5、交付增量的价值
    虽然我们都是搞技术的,但是同时我们也是一个商业实体,我们的项目都应该出于商业目的。商业项目需要重视市场和用户。技术处于第三位。“用户体验”,“产品管理”,这两个角色我们都要尊重。要重视商业价值,将目标和商业价值联系起来。此过程并不是功利的,任何产品,都应该注重商业价值。
    6、保持敏捷,预期和适应变化
    要求注意预期变化,而不是期望变化,意思是适应需求的变化、技术的变化、人事的变动。软件工程,唯一不变的是变化。所以客户的需求不会在第一时间很明确,然后保持不会变。除开客户的外部原因,团队内部也在不断的变化,这就要求团队保持敏捷的身段。
    7、投资质量
    要求用适量的时间去提升产品质量,但是没有说质量第一,应该把解决用户的问题第一,提高用户的满意度放在第一。团队成员应该有共识:防止缺陷的发生成为团队质量控制的首要任务,所有的角色都应该对质量保障负责,及时发布能够解决用户问题的软件,并能够及时修改软件中的问题。
    8、学习所有的经验
    强调做到经验总结和分享经验两个方面。MFS在每一个里程碑结束时都要做一个里程碑回顾,而不必等到项目结束后,因为大家对最近的成败都记忆犹新,能提供比较准确和全面的反馈。也是为了让团队成员从别人的成果和失败的例子中学到东西。如果发现了错误,可以马上研究解决办法,在下一个里程碑中通过实践来验证。
    9、与顾客合作
    MSF强调产品团队与顾客的交流与合作,并不是产品团队拿到合同就开始闭门造车。项目的商业价值要由用户说了算,及早和用户沟通,通过讨论将模糊的需求共同变得具体,当用户不清楚自己的需求时,先和用户一起做出需求分析,项目是由项目团队人员做出来和用户喜欢的先决条件下的产品。

  • 4.组建团队企业微信群,给出群成员截图;(2分)

  • 5.团队特色描述,言简意赅的描述团队特点或核心竞争力;(6分)

    • 有清晰的目标、相互的信任、相关的技能以及良好的沟通和恰当的领导

任务3:完成《实验四 团队作业1:软件研发团队组建》博文作业

记录完成《实验四 团队作业1:软件研发团队组建》各项任务实际花费的时间;:

任务 完成时间(h)
任务一 5
任务二 3
任务三 0.5

总结:通过此次的团队组建,我从中学会了挺多,了解到了什么是团队和非团队、TSP原则,以及绩效管理等各种关于团队的内容。在组建团队的时候,我们要重点考虑的几个因素有:1.目标:任何团队,在组建之初的时候,都离不开目标这个要素。2.定位:这个定位指的是团队在企业中是处于什么样的身份。3.权限:是指团队负有的职责和相应享有的权力大小。4.计划:就是对团队成员的工作进行分配。5.人员:团队的最后一个要素是人员问题。等到目标、定位、权责、计划都确定好后,具体的执行还在于人。以上这几个因素都是构建一个高效的团队所必需的,只有考虑清楚了每个要素背后的意义,做好详尽的计划,才能保证团队的运转,因此要想组建一个好的团队是不容易的,这需要下一定的功夫,我们要对每个团队成员都有一定的了解,每位成员都有各自的特色,通过组建团队,也让我从中更进一步的了解了自己的能力,也从中了解到自己的不足之处,以后要多加注意。

posted @ 2021-04-20 23:09  祁英红Q  阅读(65)  评论(0编辑  收藏  举报