网络15软工个人作业5——软件工程总结
一、请回望开学时的第一次作业,你对于软件工程课程的想象
-
对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
希望这门课学完之后能够提高自己的实际动手能力,能够编写出有价值的程序,而不是仅仅编写的是能运行的程序。希望在这门课程结束后,自己的编程水平能够有所提高,能够增加自己的就业几率。希望能够锻炼自己的思维能力,让自己思考问题能够更加全面。大概每周至少会拿出十多个小时用在这门课上吧,而且在后面几周需要进行编程,所花费的时间将会更多吧。毕竟,对于计算机类的专业来说,我们需要对它付出大量的耐心,大量的精力,才能够实现我们所要达到的目标。这就像从《辜新星:时刻调整方向 找到人生的蓝海》中所说的那样:计算机专业需要大量时间,需要付出大量精力,也需要极大的耐心。只有当我们为之付出了什么,认真地做了什么,我们才能从中获得我们所希望获得的,才能够提升自己的能力,让自己能够实现自己的目标。只有在这门课程中投入了精力,投入了时间,这样我们才能够有所收获,才能够实现我们的目标。
- 在开始时的第一篇的博客,我也有就自己对于课程目标和期望进行了阐述,目前来说我在这门课程中锻炼到了自己的编程能力,在两次冲刺阶段中,每天都在写代码,学习新的知识,在冲刺阶段结束后,实际编写出了可以使用的程序而不是仅仅是个运行的代码,是已经发布的程序了。也在这段时间的课程和编程中锻炼自己的思维能力,让自己思考问题能够更加全面。每周也至少有二三十个小时用在软工课上,用在编程上。
- 但是不足之处在于,可能自己考虑问题不够全面,开发出的软件没有考虑到一些情况,自己逻辑和思维的能力还是有着不足之处,并不是很全面。然后的话,就是自己的软件测试方面没有考虑很全面,有些情况没有考虑到,使得软件在用户使用时出现了一些问题。因为自己开发软件的能力还是不是很高,开发软件也是头一次,经验不足,从而导致我们考虑问题不是很全面,需要我们在工作、学习中不断锻炼自己,不断累积,才能够达到考虑问题全面。
-
总结这门课程的实践总结和给你带来的提升,包括以下内容:
1)统计一下,你在这门课程中,完成了多少行的代码;- 我在这门课程中,完成了大概1400行的代码。
2)软工的各次作业分别花了多少时间?(做一个列表)
作业 所花时间 软工网络15个人阅读作业1 6h 软件工程网络15个人阅读作业2-提出问题 9h 软件工程网络15结对编程作业 24h 软件工程网络15团队作业1——团队组队&展示 1.5h 软件工程网络15个人作业3——案例分析 10h 软工网络15团队作业2——团队计划 6h 软工网络15团队作业3——需求分析与设计 10h 软工网络15团队作业4——敏捷冲刺(Alpha阶段) 76h 软件工程网络15团队作业5——测试与发布(alpha阶段) 5h 软件工程网络15团队作业6——展示博客 4h 项目复审——Alpha阶段 2h 软件工程网络15团队作业7——alpha阶段之事后诸葛亮分析 5h 软件工程网络15个人作业4——alpha阶段个人总结 5h 软工网络15团队作业8——敏捷冲刺(Beta阶段) 56h 软工网络15团队作业9——项目验收与总结 6h 项目复审——Beta阶段 2h 网络15软工个人作业5——软件工程总结 5h 3)哪一次作业让你印象最深刻?为什么?
- "软件工程网络15个人阅读作业2-提出问题"让我印象最深刻。
- 因为那次作业真的是无从下手,时间很紧迫,又得翻看整本书,了解好整本书才可以根据自己的理解提出自己关于这本书的疑问和自己的不同理解之处。但是提问题真的好难啊,有时候就觉得这部分我有问题,但是又不知道自己应该怎么表达出来。这次作业真的是绞尽脑汁才写出来的,还各种上网找资料来证明自己的观点和说明自己的疑惑点。
4)累计花了多少个小时在软工上?平均每周花多少个小时?
- 累计花了232.5小时在软工上。平均每周花15个小时。
5)学习和使用的新软件;
- 知晓云、leango、微信web开发者工具、问卷网、墨刀
6)学习和使用的新工具;
- 微信web开发者工具
7)学习和掌握的新语言、新平台;
- 学习和掌握的新语言:WXML,WXSS,JS
- 新平台:微信web开发者工具
8)学习和掌握的新方法;
- 像是微信小程序的开发流程,应该使用的语言,应该怎么运用,怎么进行开发,开发完后怎么进行发布等等。还学会了知晓云的数据库的相关用法和使用语句。
9)其他方面的提升。
- 提高了自己的抗压能力,能够在时间很紧迫的状况下,抗住压力将软件开发出来。锻炼了自己的团队协作能力,使得自己能够和他人更好地协同合作。锻炼了自己解决错误的能力,知道了在遇到问题的时候怎么进行解决。
二、写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析
- 在进行项目之前,我们应该先进行项目相关的前期工作,像是软件的安装或者是项目的相关性的知识学习。
- 在本次项目的Alpha阶段中,我们的项目出现了一个重大的意外,就是我们在安装Eclipse的SDK插件时,安装过程出现了错误,导致软件不能运行,整个项目的进度都被耽误了,并且后来为了项目可以正常进行,我们只好更换了微信小程序平台来开发项目。
- 在团队项目进行中,我们要做好团队成员之间沟通交流工作。
- 对于处理团队团员之间的意见不同时,我们先让每个团队队员先讲清自己的意见想法,然后采取少数服从多数的原则,确定最终的决定。
- 团队项目在开发过程中,我们要先做好时间进度的安排,按时间进度表进行,这样才能更好的完成项目,不容易出现项目完不成的情况。
- 在本次项目中,我们一开始就安排好了相关的项目进度和任务安排,然后根据实际进展进行小幅度的调整,使得我们的项目进展顺利,并且按时完成了我们的项目。
- 在项目定项时,最好先进行前期的调查,看是否你可以承担这个项目,是否能够完成,是否有你不能够做到的事情。
- 在我们的这次项目中,因为前期的调查和准备不足,一开始选择做个安卓程序,但是我们的项目差点因为安装不上SDK插件,导致项目出现“空窗”了,导致最后为了完成项目临时更换了项目实现的平台,改为了微信小程序平台。
三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?对于后来人的期许。对于换人机制,有什么样的建议?
- 对下一届实践的建议
- 在进行项目的时候,要提前学习好相关的知识,要提前准备项目所需要的东西,例如项目所需要用到的软件、工具、插件等都应该提前安装好,所要用到的编程语言也应该提前学好,这样才可以更好地完成项目,才可以顺利进行项目,不会出现项目完不成的项目。在决定自己团队的项目的题目时,应该和自己团队的成员讨论,要一块决定,要选择适合自己团队的项目,要是自己的团队有能力可以承担的,要是符合自己团队的水平的项目,别一味选择高大上的项目,然后自己做不出来,项目失败就不好了。选择了项目之后,就好好做下去,别去抄袭他人的代码,也别中途放弃,一旦完成了项目会有很大的收获的,就算做得不是很好,也是你自己真正做出东西来了,一定可以从中有收获的。在项目开发过程中,一定要学会和团队成员相互沟通,学会协同合作,别自己一个人闷头写代码,写完后才发现自己的代码和其他团员的代码合不上就不好了。在进行项目开发前,最好将项目的进度安排和任务分配确定好,这样就不会出现有人写同样的功能,出现白做工的情况。
- 对于开学初的我
- 好好学习,天天向上。好好学习好知识,好好进行实践,为自己的今后开发打好基础。要学会专心一件事,这样才可能会有所收获,不会荒废时光。好好学习好老师教授的知识,别在大学中荒废时光,在课外时间,可以在学有余力的情况下,好好学习其他知识,为自己的未来打好基础,做好自己可以做的一切事情。
- 对于换人机制
- 说实在的,其实这个换人机制真的没有什么意义。因为原来在的项目团队才刚经历一段时间的项目开发,这时候团队成员之间已经通过项目的ALpha阶段的项目开发磨合好了,这时候又得将磨合好的团队拆散,再引进一位新的成员,这就又需要我们进行新的一轮的磨合,实在太浪费时间了。而且每个团队编写的代码都不同,新加入的团队成员就得花时间了解新的团队的项目的代码和项目的开发要点,才能够进行团队的项目开发,这太费时间了,而且新加入的团队成员对加入的项目不熟悉,甚至有可能前期应该学习的知识就没有学习,这就会导致新加入的团队可能不会将重要的任务交给新成员,毕竟我们的开发时间有限,不能够将时间都浪费在为新成员熟悉我们的项目上。
四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)
- 萌芽阶段:我们将自己的团队组建起来了,也确定好我们团队的项目了,但是对于项目的进行还是不知所措的,不知道自己应该怎么去做,从哪里开始。团队之间的配合还是刚刚起步,没啥默契。
- 磨合阶段:团队成员之间都相互熟悉了,对于每个团队成员之间的个性都没有了解,有不同意见也可以进行开会协商,求同存异,团队之间的默契也在慢慢培养了。
- 规范阶段:经过Alpha阶段,团队的每一个人都互相了解,PM分配任务也会考虑每个人不同的情况,根据每个人的强项去安排,每个团队成员之间都有了默契,可以各司其职进行团队项目的开发,都可以根据分配给彼此的任务进行开发,相互之间进行配合。
- 创造阶段:我们的团队目前来说,并没有达到这个阶段。目前还是在规范阶段中。
五、怎样证明你学会了软件工程?
-
研发出符合用户需求的软件
- 必须公开发布,有实际的用户,一定的用户量和持续使用量 (3 天后能保持10 - 100个用户);而不是: 做没有用户使用的软件
-
项目用户量
-
项目二维码
-
- 必须公开发布,有实际的用户,一定的用户量和持续使用量 (3 天后能保持10 - 100个用户);而不是: 做没有用户使用的软件
-
通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件
- 有项目规划/需求/设计/实现/发布/维护,有定时的进度发布 ; 而不是: 通过临时熬夜,胡乱拼凑,大牛一人代劳,延迟交付等方式糊弄
- 项目规划
https://www.cnblogs.com/coolgirls/p/8728951.html - 项目需求
http://www.cnblogs.com/coolgirls/p/8823909.html - 项目设计
http://www.cnblogs.com/coolgirls/p/8823909.html
http://www.cnblogs.com/coolgirls/p/8869839.html - 项目实现
https://www.cnblogs.com/coolgirls/p/8996095.html - 项目发布
https://www.cnblogs.com/coolgirls/p/9127612.html - 项目维护
http://www.cnblogs.com/coolgirls/p/8996901.html - 项目进度
http://www.cnblogs.com/coolgirls/p/8869849.html
https://www.cnblogs.com/coolgirls/p/9069893.html
- 项目规划
- 有项目规划/需求/设计/实现/发布/维护,有定时的进度发布 ; 而不是: 通过临时熬夜,胡乱拼凑,大牛一人代劳,延迟交付等方式糊弄
-
并且通过数据展现软件是可以维护和继续发展的。
- 而不是 找不到源代码,代码无文档,代码不能编译,没有task/bug 等项目的发展资料