高级软件工程实践总结作业

一、请回望第一次作业,你对于高级软件工程课程的想象

1)对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?

我希望自己能通过这门课,学习更多关于软件工程的知识,比如需求分析、设计模式、开发方法等等,本科虽然也有开设这门课,但学得比较粗浅,另一方面自己总想抱别人大腿,所以很多知识并未真正运用其中,也并未真正知其所以然。每周我打算拿出十个小时用在这门课上,当然我会根据当周的作业量和难度进行相应调整,以达到自己期待的学习目标。

  • 在开篇的博客中我的期待内容如上,对当前的所学所练所得,基本都达到了自己的期待和目标,而且还有一些其它的收获。从开题报告到需求分析,自己动手设计原型,从一头雾水到后面的赶超进度、成员之间从陌生到熟悉彼此。团队在慢慢进步,而自己作为团队的一员也在不断成长。项目应用了上课学习的五个设计模式,老师提出修改建议后,也确实发现自己应用的不是很流畅,有些模式应用起来也比较生硬。遗憾大概就是对设计模式的应用能力不强,虽然每次作业都能完成,但真正在实际运用中还有所欠缺,在以后的开发实践中,会继续去学习和应用来增强。

2)总结这门课程的实践总结和给你带来的提升,包括以下内容:

1、统计一下,你在这门高级软件工程实践中,完成了多少行的代码;

  • 大概有八千多行

2、高级软工实践的各次作业分别花了多少时间?(做一个列表)

作业 花费时间 作业 花费时间
高级软件工程第一次作业(准备) 2h 测试随笔 5h
团队展示(团队) 3h 事后诸葛亮(团队) 7h
项目选题报告(团队) 6h Beta冲刺预备 7h
项目需求分析(团队) 5h Beta冲刺Day1 5h
项目Alpha冲刺Day1 12h Beta冲刺Day2 8h
项目Alpha冲刺Day2 10h Beta冲刺Day3 6h
项目Alpha冲刺Day3 7h Beta冲刺Day4 6h
项目Alpha冲刺Day4 9h Beta冲刺Day5 6h
项目Alpha冲刺Day5 10h Beta冲刺Day6 9h
项目Alpha冲刺Day6 8h Beta冲刺Day7 10h
项目Alpha冲刺Day7 9h Beta冲刺总结随笔 6h
项目Alpha冲刺Day8 7h 用户使用调查报告 3h
项目Alpha冲刺Day9 8h 高级软件工程实践总结 5h
项目Alpha冲刺Day10 5h 第一次作业 1h
项目Alpha冲刺Day11 6h 第二次作业 6h
项目Alpha冲刺Day12 10h 第三次作业 5h
Alpha冲刺总结随笔 5h 第四次作业 5h
第五次作业 6h

3、哪一次作业让你印象最深刻?为什么?

  • Alpha阶段结束后的 事后诸葛亮(团队)那次作业让我印象最深刻。在Alpha阶段开始时,我们还在为搭建框架而头痛,每次的会议都有很多问题和困难,本以为Alpha阶段的目标可能要达不到了,没想到最后真的完成了项目的大多基本功能点,大家一起回顾整个冲刺阶段,发现了一些看似很简单的环节,却是重要需要去耗费精力的,比如测试。另外这次讨论也发现了系统的一些BUG,我们在整理这些问题的时候,也为Beta阶段提供了一些思路。Alpha阶段结束后,整个团队更有凝聚力,大家从这一阶段学到了很多,同时也彼此欣赏成员之间优秀的一面,比如某人演讲能力很突出,有人ppt做的很精美、有人文档写得很好,有人编码能力很优秀。

4、累计花了多少个小时在高级软工实践上?平均每周花多少个小时?

  • 总共累计200小时左右,Alpha冲刺+Beta冲刺阶段大概持续了三周的时间,平均每周大约花了67h

5、学习和使用的新软件

  • 原型制作:Axure RP
  • 开发工具:MyEclipse
  • 数据库:MySQL

6、学习和使用的新工具

  • MyEclipse 单元测试
  • startUML

7、学习和掌握的新语言、新平台

  • javaScript
  • 版本管理Github

8、学习和掌握的新方法

  • SSH框架:Struts+Spring+Hibernate
  • BootStrap前端框架
  • 设计模式

9、其他方面的提升。

  • 团队之间最重要的就是沟通,通过这次实践,让我明白沟通是解决矛盾最有效的途径,学会沟通、经常沟通能从别人身上了解新知识,学习新方法,同时还能了解团队其他成员的进度与遇到的困难,提高效率。

二、写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析

  • 善用新软件,提高开发效率。很多人在接触一些新平台或软件时觉得很陌生操作很复杂,就会懒得学,比如我们这次使用的Github,刚开始成员中都不懂怎么操作,还得去看视频资料学习,但到了冲刺阶段,就明显感受到这个平台的便利之处,解决冲突,代码共享,Alpha冲刺的前期基本都完不成当天的计划,但到了熟悉之后,进度开始赶超且效率也在提高。

  • 学会沟通,及时解决问题。刚开始组队时,成员之间可能都不大熟悉,也不清楚每个人的擅长之处,学会去主动交流,敢去交流,不要觉得自己能力弱,这个问题很简单,不敢问之类的,及时解决自己的问题,后面才能及时跟上。我们团队在刚开始时,有的人还不太熟悉,很多东西没学过,但他会经常提出自己的疑问,及时去解决,虽然之前没接触过开发,但后面也渐渐跟了上来。

  • 今日事,今日毕。不要总想着今天完不成就拖动明天,明天也是会有新的任务的,可能还会有一些计划之外的事情在等着你,拖延只会让工作堆积起来,今天堆到明天,然后堆到大后天......永远都在赶,及时完成任务,提高效率,才能不慌不忙。

  • 提高团队积极性。开发不是一个人的工作,不要只沉浸在自己的世界,要与团队接轨,团队的气氛会影响每个人。如果一个团队松松散散没有凝聚力,就没有活力,队员也提不起干劲;团队活跃,每个人都参与进来,就会有一种归属感。如果一开始团队就比较散,可以找个时间团建一波,比如一起吃饭,队员之间就会熟悉起来。

三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?

  • 在开始接触这门课时,大概都会从上一届那听说这门课作业很多,自己体验了一个学期,作业相较其它课程的确会多一些,付出多那么相对你获得的也会多。从组队到选题到需求分析、详细设计,以及Alpha冲刺阶段、Beta冲刺阶段,到最后项目验收,整个项目开发流程完整走一遍,你可以从中了解并参与不同阶段的任务,找出自己感兴趣的点,比如测试、比如需求分析,以后也可以朝着这个方向去更深层学习。不仅仅是锻炼自己的开发能力,还可以锻炼你沟通能力、团队协作能力。

  • 可以多逛逛博客,与同行交流,看技术大佬的贴子,多去学习,提升自己。

  • 培养自学能力,学会自己找资料来解决问题。

  • 借用开篇中L博客所说的一句话来送给大家 “踏踏实实做好今天的事,炼好自己的内功,注重经验的积累和总结,等待一个能让你量变引发质变的机会”

四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)

  • 《构建之法》中说团队的发展有四个阶段:萌芽阶段磨合阶段规范阶段创造阶段

  • 我们团队大概经历了萌芽阶段、磨合阶段、规范阶段三个阶段。

  • 首先萌芽期阶段。团队成员确定之时,每个人都刚开始适应这个团队、角色、一些日常流程、虽然每个人都会去琢磨这个项目任务、对结构提出不少看法,但注意力并没有集中在解决问题上,遇到一些问题,也并不会立马提出讨论,成员之间还存在一些距离感。很多时候依靠组长来决定任务的分配工作。

  • 磨合阶段。主要在团队需求分析阶段到Alpha冲刺阶段的前期这一时期。在项目之前,有些成员已经是在公司有实际项目经验的人,而有成员之前并没接触过软件开发,在遇到问题有争议时,我们一般会让有经验的成员提出她的想法和一些可行性措施,然后进行讨论。到Alpha冲刺阶段的后期,成员之间更加熟悉,之前不熟悉开发的同学也渐渐熟悉整个流程。

  • 规范阶段。随着项目的开展,我们每天都会抽出中午或晚上时间讨论当天或明日的安排,并对各自负责的部分说明进度和遇到的困难,然后一起讨论解决的方案。 通过聆听、讨论,成员互相之间更加了解,认识到并欣赏各自的能力和经验,建立起更加流畅的工作模式。

五、怎样证明你学会了软件工程?

1)研发出符合用户需求的软件
必须公开发布,有实际的用户,一定的用户量和持续使用量 (3 天后能保持10 - 100个用户);而不是: 做没有用户使用的软件

  • 我们软件虽然没有发布至外网,但我们开放了局域网的网址,供我们使用同一校园网的同学使用,并征集了他们的建议和意见。

2)通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件
有项目规划/需求/设计/实现/发布/维护,有定时的进度发布 ; 而不是: 通过临时熬夜,胡乱拼凑,大牛一人代劳,延迟交付等方式糊弄

我们团队在开发过程中经过了选题、需求分析、原型设计、详细设计代码实现、用户测试到最后项目,每个冲刺阶段有定时发布进度,所有人都参与到项目当中:

六、个性发挥,包括图文、照片和创意等

posted @ 2018-12-15 22:45  小呀么小花生  阅读(178)  评论(2编辑  收藏  举报