胆大妄为[DDWW]队 实验五 团队作业1 软件研发团队组建与软件案例分析

胆大妄为[DDWW]队 实验五 团队作业1 软件研发团队组建与软件案例分析

项目内容
课程班级博客链接 班级链接
这个作业要求链接 要求链接
团队名称 胆大妄为【DDWW】
团队的课程学习目标 (1)组建软件项目研发团队(2)团队协作学习
这个作业在哪些方面帮助团队实现学习目标 软件案例分析
团队博客链接 https://i-beta.cnblogs.com/posts/edit

一、团队组建

  1. 在实验四结对基础上,结对小组两两自由组合,尽量按照男女搭配组队要求,组建软件项目研发团队;
  2. 申请开通团队博客,点击以下链接提交团队信息,将团队博客加入到班级博客。(3分)

(1)先简单了解下我们吧

     团队名称:胆大妄为【DDWW】

     团队口号:胆大妄为,敢做敢拼,团结一心。

     团队logo:   (注:两条红色代表两个人D(达拉草)D(狄慧),两条黄色代表W(王海珍)W(王燕))

(2)团队成员组成,在备注中标记团队组长(PM)

成员学号 成员姓名 个人博客地址 备注
201771010124 王海珍  https://www.cnblogs.com/ 组长
201771010126 王燕 https://www.cnblogs.com/wy201771010126/p/12762959.html  
201771010104 狄慧  https://www.cnblogs.com/dhlll/  
201771010105 达拉草  https://www.cnblogs.com/dalacao/  
 

 (3) 成员风采:介绍每位队员的风格、擅长技术、编程兴趣、希望的承担的软工角色(文档、开发、测试、PM等)、一句话宣言等;

来吧!现在看看我们多优秀,嘿嘿。

NO1.

姓名:王海珍

个人风格:活的不随性,就不像王海珍

擅长的技术:C 语言编程,调试程序,文档编辑,排版。

编程兴趣:C语言

希望承担的角色:文档编辑,语言调试,工作安排

宣言:希望小白赶快变身

NO2.

姓名:王燕

个人风格:抛梗王and接梗王
擅长技术:调试程序
编程兴趣:c语言
希望承担的角色:程序修改及调试
宣言:我爱编程,我爱敲代码!!!

NO3.

姓名:狄慧

个人风格:熟了都好办

擅长的技术:C 语言编程,撰写文档

编程兴趣:C语言

希望承担的角色:作业检查,查缺补漏

宣言:摆脱小菜鸟

NO4.

姓名:达拉草

个人风格:看起来高冷,其实不是

擅长的技术:编程一般,撰写文档

编程兴趣:Python

希望承担的角色:编程测试

宣言:努力、开心

(4)理解MSF的9 条原则

  1.推动信息共享与沟通:

开展一个项目的时候,需要大家都了解一个项目,对项目的所有信息都要保留,并做到公开;讨论包括所有需要知道的人员,决定要公布给项目的所有成员;最好的设想是随着项目事件的发生自然地传递到关心这些事情的人那里。

信息共享和沟通是其他原则实行的基础,如果信息不能共享,也就谈不上“授权”,或“建立清晰的责任和共同的职责”,以及“保持敏捷,预测变化”。这就是为什么“信息共享于沟通”是第一基本原则的原因。

  2.为共同的远景工作

“共同的远景”是指项目的远景,团队的所有成员都应该同意项目的远景。

我们无论做什么类型的软件都要明确我们项目的目标是什么:目标必须是明确的,无二义性的;目标不是当前就能达到,需要通过努力才能够达到;目标不是“口号”,应该对项目成员每天的工作都有指导作用。项目成员如果发现你做的事情和项目的远景没有帮助,你应该跟老板提出来。

远景一般由“有远见的人”提出,通过公共讨论来形成,在讨论的过程中,可以消除误解,凝聚共识。这是项目的关键,也是项目第一阶段要达到的主要目标!

 3.充分授权和信任

授权有两层意思:一是给某人权利和权威;二是给予某人更多的自信和自尊。在一个高效的团队中,所有的成员都应该能得到充分的授权,他们有权力在自己的职权范围内按照他们自己的承诺完成任务,同时,他们也充分信任其他同事也能实现各自的承诺。

授权的好处有两点:

1、被授权的人会承担起自己对项目的责任,同时也期望同事们也同样对项目负责;

2、MSF提倡自下而上的计划,每个人有充分的权力估计并决定自己的任务需要多长的时间,而不是上级交给的时间,这意味着让真正做这件事的人按照自己的估计去完成任务,这样做的结果是人人都会支持项目的计划和时间表,因为这个时间表是每个人自下而上订出来的。

授权不等同于放任不管,领导者在授权之后,要为手下的成功提供各种必要的帮助——技术上的陪训、策略上的提醒,以及各方面的信息和资源。

 4.各司其职,对项目共同负责

每个角色都有自己的职责(见下表),如果出了问题,这个角色就要负责任。

团队模型和关键质量目标

关键质量目标

小组角色

出口条件

按约束条件交付产品

程序管理

我们的项目是在时间/资源的条件内交付的么?

按产品规格说明交付产品

开发

我们是否按照功能说明完成了各项功能?

保证所有问题都得到处理

测试

我们发现了所有的问题,而且都有处理方案吗?

产品部署和后续管理

发布管理

客户是否能快速方便地部署产品和进行后续管理?

让产品更好用

用户体验

产品是否适应用户的使用习惯?易用易学?

让客户满意

产品管理

客户是否(在总体上)满意我们的项目

与此同时,各个角色合起来对项目整体最终的成功负责。每个角色在其职责范围内的失败都会导致整个项目的失败,而且各个角色的工作都是相互渗透、相互依赖的。这种互相依赖的方式也鼓励团队成员在自己本职之外为其他领域做贡献。

另外,人物的责任人需要自己决定意见,别人的意见都只是参考。责任人的责任是巴事情做出来,而不是讨好所有的人!

在项目进展的过程中,对于每一项任务,每个人要明确以下几点:

Who:谁负责;

What:做什么,具体的执行方案,什么叫做“做好了”;

When:什么时候开始,什么时候结束;

Why:为什么是这样安排,在什么情况下可以变更?

 5.重视商业价值

项目应该是出于商业目的的,如果没有商业的需求,再酷的技术也没有用。商业项目需要重视市场和用户,技术是处于第三位的。

一个团队项目如果没有经得起考验的商业价值,没有明确的远景是很难坚持下去的。当项目遇到困难的时候,当项目看不到尽头的时候,商业价值比激情更能够保证项目的发展。

国外对创业有这样一个观点:

如果你还没有能说清楚你的产品解决了什么问题,为谁解决问题,为什么你的产品会解决这些问题,以及客户怎样付钱让你解决问题,那你就不应该贸然创业。

 6.保持敏捷,预期变化

软件工程,唯一不变的是变化。所以别幻想客户的需求会在第一时间很明确,然后保持不会变。除开客户的外部原因,团队内部也在不断的变化,这就要求团队保持敏捷的身段。

 7.投资质量

对质量的重视,引起对质量的投资,引起对人、过程和工具的投资。之所以叫“投资”,而不叫“全面的质量管理”是有其道理的:

1、投资要讲效率。我们要重视质量,但并不是要不惜一切代价达到最高的质量标准,提高质量是要花成本的,而不是为提高质量而提高质量。

2、投资要讲时机,就和股票一样。

3、投资是长期的。真正的投资者看重的是长线的收益;人的成长,团队的成熟都需要时间,不可能短期内立竿见影;

商用软件只有在其发布以后才会体现它的商用价值,但是面对软件缺陷的无休止出现,我们做商用软件要找到一个平衡点,及时发布能够解决用户问题的软件,并能够及时修改软件中的问题。好的公司便能够做到这两个“及时”。

 8.学习所有的经验

这一原则有两个含义:

1、把经验总结出来;

2、分享经验;

为什么要坚持总结和分享?是为了——

1、让团队成员从别人的成果和失败的例子中学到东西;

2、帮助新项目重复以往成功的做法;

3、培育团队总结的习惯和“批评与自我批评”的文化;

对于大型的团队项目,可以进行里程碑回顾;这样既保证项目进行时间不久,大家对项目中发生的事较清晰,也可以帮助在项目后续中去改正这些问题。整个项目结束后,可以举行由外部团队参与的“事后诸葛亮”会,来保证对项目评估的客观以及团队之间的相互学习。

以上便是MSF的8条基本原则。在中国本地的项目开展中可能都不会完全做到,但是这些意见的内容可以记住并在以后的项目中间进行一些方面的应用,相信会给你的项目带来一些变化。

 9.与顾客合作
  MSF强调产品团队与顾客的交流与合作,并不是产品团队拿到合同之后,就闭门造车,直到产品完成才告诉用户,给他们一一个惊喜(通常“惊"大于“喜”)。项目当然是项目团队成员,做的,但是项目的商业价值要由用户说了算,那些“我觉得用户会喜欢”的东西要及早和用户交流。因为“我觉得”和“用户觉得”是两码事。

 4. 组建团队企业微信群,给出群成员截图;

以下是团队所建企业微信群,与此同时我们还邀请了助教学长。

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

我们团队由四个人组成在做实验的过程中各司其职,每个人都是团队的核心,这是我们团队最大特色,我们首先采用部分进行分工,其他的都是每个人做一遍,当遇到问题时一起合作,最后将每个人做的一起做个综合,我们团队能力各不一样,各有各的特色。将四种不一样的蔬菜做出一盘美食,是我们最高的希望。

二、:软件项目案例分析

        现代社会,人们很多时候要和软件打交道,手机游戏、微信、QQ、中国铁路12306等等。软件工程学习中,通过这些软件案例的分析、 评测、辨析和总结,我们就能看到软件工程的原理和原则在工程实践中的种种体现和应用,从而加深对软件工程知识内容的理解,帮助我们在软件项目实践中做得更好。

       以下是本次作业候选分析案例:

案例1:博客园班级博客

请对博客园班级博客中针对院校+班级为对象的班级管理、作业管理、互相交流的功能进行分析,这一方面的参照对象是:CSDN

另外,班级博客的作业管理、班级管理等功能在手机上做得如何呢?有什么可以改进的?

案例2:  VS和VS Code

微软公司有两个代码编辑器:Visual Studio、VS Code,它们的目标用户,主要功能有何不同?为何要有两个编辑器和开发环境?请用这两个编辑器/IDE写出一个简单的C/C++/Python程序,记录程序耗时多久运行成功?描述你的发现。给出程序和运行结果截屏。

 Visual Studio (Community)社区版指的是可免费提供给单个开发人员,给予初学者及大部分程序员支持,可以无任何经济负担、合法地使用的版本,官网下载链接:

https://visualstudio.microsoft.com/zh-hans/?rr=https%3A%2F%2Fwww.microsoft.com%2Fzh-CN%2Fdownload%2Fdetails.aspx%3Fid%3D48130

VSCode发布站点:https://code.visualstudio.com/

 VSCode源代码git地址:https://github.com/Microsoft/vscode

VSCode作为一个开源的项目,github平台有许多IT人士在为此项目做出贡献,参照本篇博文后ffl((范飞龙老师)的建议可以学习github协作开发的技巧和方法。

 

老师所给的两个案例中,我们所选的是案例2.我们选择案例2.的原因主要有以下两点:

1.小组成员投票选择所得:

2.第二个是编程的两个不同的软件,可以进行对比,刚好我们也可以多了解几个编程软件。

(1)阅读《现代软件工程—构建之法》第8章、第12章内容,完成以下案例分析任务:

       A.下载、部署并体验案例软件的功能,使用10–30分钟这个软件的基本功能(上传使用软件的照片);

       B.描述使用案例产品的过程,产品解决了用户的问题么?软件在数据量/界面/功能/准确度上各有什么优缺点?用户体验方面有问题么?

       C.对产品有什么改进意见?

       D. 除了定性的结论,还可以定量地评价一个软件?请看这个链接http://www.cnblogs.com/xinz/p/3308608.html,并尝试进行定量的测评。

       E. 经过以上工作,你们一定有充分的理由给这个软件选择一个评价结论:

         a) 非常不推荐     b) 不推荐   c) 一般  d) 好,不错  e) 非常推荐

我们选择A

(1)通过博客要求中所给的链接,我们下载了Visual Studio、VS Code。

并且我们了解了使用方法因为第一次下载而且这个不像之前使用的eclipse,code Blocks。dev等的使用这个刚打开的瞬间真的 是一脸的茫然,只有通过了解下才能了解如何使用。

由下载测试以及网上寻找资料做出以下简介

微软公司有两个代码编辑器:Visual Studio、VS Code,它们的目标用户,主要功能有何不同?为何要有两个编辑器和开发环境?

  从本人角度去看,Visual Studio能够为编程人员提供一套完整的语言环境,包括编码、测试、代码分析和度量以及发布,软件开发的一套流程都可以在这款软件上实现,我认为它的目标用户应该是开发项目级软件的团队或个人。此外,Community,Professional和Enterprise三种版本也适应了不同群体的需要。

  VS Code则是一个轻量级、跨平台、可个性化拓展的开发工具。最广受褒奖的是VS Code的开源插件,这些插件很好地满足了个性化的需求,比如编写Markdown文档可以安装“Markdown ALL in One”插件,编写python脚本可以安装“python”插件以及其他辅助插件等等。此外,内置的git也让版本管理变得十分方便。我认为它面向的用户应该是轻量级开发的小团队和个人编程爱好者。下面是软件简介:

  两个编译器的存在是为了满足不同人群的不同开发需要。举例来说,如果想要利用WPF框架开发window界面程序(本次团队项目工作),在VS Code中不知从何处下手,需要十分费劲地搜索开发的环境依赖与插件、可用的模板等,而使用Visual Studio可以很轻松地创建一个WPF应用项目,直接就能够进行开发;但如果只是想要调试一份C++算法题的程序呢?VS Code中只要有“C/C++”插件,创建一个新的.cpp文件即可开始编码,而Visual Studio需要经历“新建项目->解决方案->源代码->新建项”,才可以开始编码,步骤繁琐的同时还会带来许多冗余文件。

(2)测试体验

使用10–30分钟这个软件的基本功能(请上传使用软件的照片)描述使用这个产品的过程,解决了用户的问题么?软件在数据量/界面/功能/准确度上各有什么优缺点?

1.使用Visual studio 2019 Community进行WPF应用开发

  1.   在使用Visual Studio进行开发的过程中,直观体验是十分顺手,更具体的描述是:代码补全完善、调试功能齐全、项目管理清晰、界面美观大方、各种工具应有尽有。当遇到错误、警告时,可以快速定位到有问题的代码行,并提供完善的官方文档解答,非常人性化。

      其中存在一点界面上的不足是,解决方案资源管理器作为项目管理最重要的栏目,个人直觉是点击关闭后会停靠在侧栏,再次点击还能够弹出。而Visual Studio中的处理是直接关闭,没有提示,不熟悉的用户还需要到上方工具栏中逐一寻找才能在“视图”中找到并还原,体验不是很好。虽然资源管理器上有“自动隐藏”按钮,但是点击后又会带来尺寸的变化,且只要不操作就会自动隐藏也会带来重复的点击操作。

  2. 使用VS Code进行C++编程
  3. 编写C++程序时有内置代码高亮,如果缺少相关插件VS Code还会给予提醒,只需傻瓜式点击即可安装。编码完成后,使用快捷键Ctrl+Alt+N即可编译运行。此外,为了展现VS Code插件的优越性,本人还展示了插件的使用。通过Todo Tree,可以很直观地展示程序中未完成、待修改以及其他标注事项。
  4.   此外,内置的git也可以很直观地展示版本差异

      总之,VS Code的使用体验非常棒,这也是得到业界认可的。无论是代码高亮、界面设计、还是开源插件,都很好地满足了轻量级开发的需要。美中不足的一点是,代码补全和查错的反应速度有点慢,有时已经修改好的错误,在对应代码行的红色波浪线还是会停留一会。建议对代码补全和查错这两个功能进行性能优化优化(如果是插件的影响,也可以通过官方渠道将主要编程语言的开源插件收录并进行优化)。

    3 功能性bug分析

    1. Visual Studio中CPU使用率的bug

        在使用性能探查器的CPU使用率分析功能对程序进行分析时,CPU使用百分比能正常显示,但各个函数的CPU使用率详细分析结果无法显示,取而代之的是出现“在所选时间范围内没有代码运行”字样,没有任何错误或警告提示(经测试,该bug与程序无关,且重装或修复Visual Studio无法解决)。

    2. Visual搜索栏不显示下划线bug

        在代码编辑界面使用Ctrl+F打开搜索界面,输入带有下划线的名称进行搜索,在搜索框中不显示下划线,但能够匹配对应的段落。

4 评价

经过调研工作后,我的总体评价是:

  • VisualStudio: d)好,不错
  • VS Code: e)非常推荐

定量评价:

 类别Visual StudioVS Code
功能 核心功能 9 9
  细节 8 8
  用户体验 7 9
  辅助功能 8 10
  差异化功能 8 8
  软件效能 9 9
体验 软件适应性 10 10
  成长性 9 7
  用户有控制权 10 8


   (3)阅读《现代软件工程—构建之法》第8.6、14.1节内容,完成以下案例分析任务

       A. 使用此软件的所有功能,估计这个软件/网站做到这个程度大约需要多少时间,并说明估算理由(假设团队人数6人左右,计算机大学毕业生,并有专业UI支持)。

        对于Visual Studio这个迭代了20余年的IDE老怪物来说,团队6个人开发到支持其所有功能的程度难于登天。首先需要完成基本编辑器的核心功能,支持代码编辑、项目管理等基础功能;然后需要完成对各语言环境的支持,如C++,.Net桌面开发等等,并完成项目编译、调试、测试等基本开发功能;之后是辅助工具诸如代码分析、性能分析以及插件实现。综合这些工作应该需要3-5年甚至更长的时间开发。

  VS Code已经开,理论上完成时间与网速相关(/狗头)。拥有开源项目的指导,VS Code的开发速度应该能加快速度,估计开发时间在1年左右。但是数以万计的开源插件的开发就是不可衡量的了,还需要依靠热心网友的支持,或者对现有插件做移植。

       B. 和同类软件相比分析,这个软件目前的优劣,这个产品的质量在同类产品中估计名列第几?

   网上查到的排名信息如下:

可以看到,VS高居榜首,VS Code也在大步向前。

C. 综合判断,给出这个软件团队在软件工程方面可以提高的一个重要方面(具体建议)。

Visual Studio为开发者准备的功能十分齐全,但也有不少身边的用户反映:看着C盘被占用的空间心在滴血,最后在某些课程项目完成后,为了缓解C盘空间而卸载VS。所以,我认为可以在储存空间方面进行提高,适当地将一些功能作为可选项,或是删除、压缩某些功能,减小系统盘的占用量。

(3)阅读《现代软件工程—构建之法》第8.5节、第9章内容,完成以下案例分析任务:

      这个软件/网站有很多可以提高的部分,如果你是该软件新上任的项目经理,你一定非常希望所负责的项目在竞争中胜出,请思考以下问题:

       1.首先,市场有多大?潜在的用户有多少?

      在“第二部分 分析”一栏中有列出,据今年三月的最新数据,Visual Studio占IDE市场份额的24.08%,居高不下,VS Code占6.49%,有明显的上升趋势。Visual Studio面向大小型开发团队、个人开发者、学生等群体,其潜在用户还有编程初学者、需要编程的实验人员等,以及其他平台的开发人员;VS Code作为跨平台的轻量级IDE,其文本编辑功能配合插件也十分受众,其潜在用户可能有文字工作者、进行轻量开发的编程爱好者等。

      2.目前市场上有什么样的产品了,它们的优势劣势在哪里?和它直接竞争的产品在那里?

目前市场上与Visual Studio这种工程级别IDE竞争的产品有:

  • Eclipse
    • 优点:很适用Java,更新速度快,插件功能强大
    • 缺点:大工程的内存、CPU消耗大
  • IntelliJ IDEA
    • 优点:对重构的优越支持,GUI简洁易用
    • 缺点缺乏技术文章,同一页面只支持单工程开发
  • NetBeans……
    • 优点:人性化,功能强大
    • 缺点:界面设计存在不足

此外,VS Code作为轻量级编辑器,其竞争对手有:

  • Sublime Text
    • 优点:体积小、运行快,内嵌python解释器,主流前端开发工具
    • 缺点:收费闭源,同时编辑多项目存在缺陷,多插件影响使用
  • Atom
    • 优点:bug修复迅速,稳定,插件生态圈发展快
    • 缺点:启动速度慢,技术不成熟

      3.作为新上任的项目经理,这个产品的核心用户群是什么样的人,典型用户长什么样?学历,年龄,专业,爱好,收入,表面需求,潜在需求都是什么?

       核心用户是计算机编程爱好者,计算机专业的大学生,大小型开发团队、个人开发者,其潜在用户还有编程初学者、需要编程的实验人员等。典型用户主要是团队开发者以及个人开发者,学历:中专以上,年龄:20岁以上,专业:计算机方面,爱好:编程开发,收入:月收入W以上,表面需求:项目开发。

      4.功能:你要设计什么样的功能?为何要做这个功能,而不是其他功能?为什么用户会用你的产品/功能?你的创新在哪里?可以用NABCD分析.

      我认为可以设计“编程初学者支持”功能,作为VS/VS Code的插件或可开关的功能选项。这个功能是为了解决编程初学者编码困难的需求,现有的IDE或代码编辑器只支持代码补全、高亮等编码基本辅助功能,或是对编码风格的提醒约束,但这款功能可以为编程初学者提供相关语言的编码提示或知识的深入引导,比如编写二维数组遍历时,可给出不同遍历顺序造成的性能影响;使用容器时,给出其他可选容器的使用方法等等。该功能可以有效地帮助编程初学者熟悉相关语言的编程知识,了解性能更高的编程方式以及规范的编码技,从而让软件能够吸收编程初学者用户,扩大市场,在从事IT事业人员迅速增长的环境下占据有利地位。同时,高影响力的发布会和成熟的官方平台也可以让用户更快地了解我们的功能,进一步扩大传播。

       5.如果你有钱可以招聘6个人,有4个月的时间,你作为项目经理,应该如何配置角色(开发,测试,美工等等)?

       三个人进行项目开发两个半月交稿,一个人进行测试半个月交稿,一个人负责美化半个月交稿,一个人负责全面检查漏洞以及bug半个月出项目。

三、实验总结

    本次实验是由之前的两个小组 合并成一个大的小组进行完成作业的,就像我们的题目一样,我们四个一起合作,一起完成作业,在本次的实验中也体会到了很多合作的意义,而且每个人我相信都从小组成员的身上学到了很多东西,也是一个相互学习,共同进步的过程,而且作为本次实验的小组组长, 我觉得整个过程合作非常轻松,大家都很积极。实验分工也是完成的我自己认为很完美。

原文地址:https://www.cnblogs.com/ddww/p/12763003.html