201771010116 马凯军 实验一 软件工程准备 <习读《构建之法—现代软件工程》>

项目 内容
软件工程 https://edu.cnblogs.com/campus/xbsf/nwnu2020SE
作业要求 https://www.cnblogs.com/nwnu-daizh/p/12369881.html
作业学习目标 通过学习了解软件工程的相关知识
这个作业在哪些方面帮助我实现学习目标 这个作业通过看课本去了解软件工程知识自己博客园的新编辑方法
问题一:一个团队要经历哪些阶段?
在之前的很多课程中会有小组的形式来做一个小型的课题,但不知道一个团队在整个项目过程中会走过这么多的阶段,慢慢的成熟起来,也更加的又默契。
1 萌芽(Forming)阶段
就像小苗破土而出,柔弱但充满希望。原因:大家都是来自五湖四海,项目还处于萌芽状态,每个人的能力/弱点还没有得到体现。
在这一时期,领导要回答很多问题:我们要做什么,怎么做,如何才是成功,和其他团队是什么样的关系,等等。由于百废待兴,没有太多时间进行详细讨论,得到一致共识,因此,要快刀斩乱麻地决定一些重要的问题。
这个阶段最重要的就是让成员明确地了解团队的目标。正确的目标设定应从整个团队的最终目标开始,然后在成员的参与下,将这一最终目标分解成为一系列相互关联,易于操作的短期目标。
2 磨合阶段
就像一个人的青少年时期,充满了对个人、同伴和团队的疑惑和冲突。
团队中的一团和气只能维持一小段时间,大家不得不认真地面对问题进行讨论。随着讨论的深入,有些人会沉不住气,小的意见分歧和冲突会出现。这些冲突不一定都是技术问题,也许是关于角色、职责、相互关系,甚至是各自性格、文化的冲突。
这时会出现成员之间的竞争,不少人都想成为某个领域的“拥有者”(在软件项目中,谁负责哪方面,每个方面要怎么做,等等)。同时也有一些人以不同的方式进行挑战。也许会形成小团体,甚至有权力斗争。
有人专注于解决问题,有人喜欢“与人斗,其乐无穷”,有人想回到当初一团和气的阶段。冲突的结果是有人觉得自己“赢了”,有人反之。不管每人的输赢如何,大家都想从体制上、流程上避免冲突持续发生。
有时即使大家有相同的论点,还是有争论(因为大家想充分表达自己)。这个时期最可能出现谣言和误解。
原因:在该阶段,团队成员们开始逐步熟悉和适应团队工作的方式,并且确定各自的存在价值。在这个阶段,矛盾会层出不穷,主要包括团队成员之间的矛盾,项目远景和成员理解程度的差异,个人习惯和企业文化的矛盾,个人的价值取向和企业规则之间的矛盾。
3 规范阶段
从磨合阶段毕业,进入规范(Norming)阶段的团队,成员们意识到光争吵是没有用的,大家还是要协同作战。成员们就很多事情取得了一致。角色和职责定义得非常清楚。团队还进行过有趣的团队建设活动。
在这一阶段,领导主要扮演促成者和鼓励者的角色,协调成员之间的矛盾和竞争关系,建立起流畅的合作模式。
要注意到,并不是当团队进入到了规范阶段,就万事大吉了。经验表明,很多情况下团队会由规范阶段回到磨合阶段,或者在两个阶段间徘徊。团队成员们必须努力工作,才能使团队保持在这一阶段, 他们同时还要抵御外界的压力,以免使团队分裂,或者回到磨合阶段另外,一个人要是刚刚加入一个有一定历史的团队,要注意了解这个团队的“Norm”是什么,入境随俗。正如西方谚语说——When in Rome,do as the Romans do。
4 创造阶段
经历了萌芽、磨合、规范阶段,现在团队终于可以创造一些有意义的东西——这就是创造阶段(Performing)。当然并不是所有的团队都能达到这一阶段。
领导在这一阶段,要实践“充分的授权”这一原则,委派得力的人员解决问题,并按期检查。在“磨合”阶段的经验和教训让大家明白不少道理,在“规范”阶段形成的流程让团队能高效的工作。
在创造阶段,团队减少了对上级领导的依赖。成员们相互鼓励,积极提出自己的意见和建议,也对别人提出的意见和建议给出积极评价和迅速反馈。
问题二:软件工程是什么?
软件在之前见过很多,自己也曾经做过一些。但是对软件工程这四个字并没有深入的理解。
数据结构+算法 = 程序
软件=程序+软件工程。
软件工程是把系统的,有序的,可量化的方法应用到软件的开发,运营和维护上的过程。
软件工程包括下列领域:软件需求分析,软件设计,软件构建,软件测试和软件维护。
航空 软件
玩具, 基本知识:纸飞机/航模 写程序练习数据结构/算法影响自己,如果失败, 会减少对这类知识的兴趣。这类知识也有比赛,如航模比赛,程序算法比赛,但是比赛之后,这些算法高手写的程序的可维护性怎样? 有人会拿着程序去发布为商业软件么?
爱好者的尝试:气球+沙滩椅升空 用Javascript, Asp.Net, Ruby 写写网站
先行者的探索:莱特兄弟飞行 软件业的创新
成熟的工业:飞机制造业 民航Taobao, Ali-pay, Win7

问题三:在项目中怎么样才能提出有用的建议?
每次有项目总是不能根据项目提出有价值和跟项目关联性好的建议。如果从以下几个方面考虑会更多的提出有用的建议。

N (Need 需求) 我们要充分了解用户的痛苦, 他们对已有软件, 服务不满意的地方。深入用户之中, 了解他们的需求
A (Approach 做法) 找到了用户的痛苦, 下一步, 得看看你有什么招数, 特别是独特的招数, 来解决用户的痛苦。
B (Benefit 好处) 你这个产品/服务会给客户/用户带来什么具体好处呢?
C (Competitors 竞争) 市场有多大, 目前有多少竞争者在瓜分?
D (Delivery 交付, Data 数据) 怎样把你的创新产品交到用户的手中?

实验总结:
通过本次实验了解和实践了markdown编辑器的一些用法。在通过邹欣老师的《构建之法——现代软件工程》这本书对软件工程这门课有了初步的了解,并学习到了一些基本的技巧,也解决了自己在以前遇到的一些不解,这本书读上去还是挺不错的,里面还有部分内容需要通过实践才能掌握的更好,希望通过后续的软件工程这门课能检验一下里面的一些内容。

posted @ 2020-03-04 22:30  流年消遣  阅读(139)  评论(1编辑  收藏  举报