这个作业属于哪个课程 | 2020春|S班 (福州大学) |
---|---|
这个作业要求在哪里 | 软件工程实践总结&个人技术博客 |
团队名称 | 如果有一天我变得很有钱 |
这个作业的目标 | 实践总结、技术博客 |
作业正文 | 本文 |
其他参考文献 | 百度,CSDN博客、《构造之法》 |
一、回望
(1)对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强软件工程专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
在开篇博客中,我曾希望通过软工实践来促进自己学习python爬虫相关的知识和技术,但是在整个实践过程中并未使用到python,所以这方面的学习规划其实是搁置了的,反倒是因为开发时我被分配到安卓端,因此学习到了一些安卓开发的知识。
开发中我在开发协作方面的能力得到了提升,掌握了git的使用,并提升了和队友交流沟通的能力。不足之处则体现在开发技术的不足,由于安卓开发是边学边做,对于相关技术的掌握不熟练,开发经验更是一点没有;另外代码中的注释也比较杂乱,并没有严格地按照代码规范调整代码。
(2)你在第一次作业的个人简历中描述了这门课程结束后,你预期你将增长的能力、技术、技能,并绘制了学习路线图。对比当前你的所学所得,你达到了当时的预期值吗?
由于实际开发中所使用的技术与简历中描述的目标技术不一致,故仅在工程能力方面大致达到预期目标。
(3)哪一次作业让你印象最深刻?为什么?
印象最为深刻的是第二次团队开发中的alpha冲刺,那时需要边学习新技术边开发,且持续时间也比较长,压力较大。
(4)在课程问卷中,我们统计了你在课程上花费的精力和提升;现在请你再次将这些数据罗列出来,作为个人的记录。
- 统计一下,你在这门软件工程实践中,一共完成了多少行的代码
alpha和bata两次冲刺阶段的代码量合计大约为7500行,其他次的作业未来得及计算。 - 软工实践的各次作业分别花了多少时间?
作业 | 时间(h) |
---|---|
寒假作业(1/2) | 3 |
寒假作业 疫情统计(2/2) | 15 |
结对第一次 (原型设计) | 10 |
结对第二次 (可视化实现) | 16 |
团队作业第一次—团队展示 | 3 |
团队作业第二次——团队Github实战训练 | 12 |
团队作业第三次—项目需求分析 | 12 |
团队作业第四次—项目系统设计与数据库设计 | 2 |
个人作业——软件评测 | 15 |
团队作业第五次——站立式会议+alpha冲刺 | 45 |
团队作业第六次——beta冲刺+事后诸葛亮 | 30 |
个人作业——软件工程实践总结&个人技术博客 | 7 |
(以上时间估计值为集中敲代码或工作的时间,其实真实情况远不止于此,比如某天实际工作时间为4小时,但是中途查资料,交流沟通等等也花费大量时间,并未计入其中)
- 累计花了多少个小时在软工实践上?平均每周花多少个小时?
共计170小时,每周大约10小时(这些数据应该在课程之初告知需要统计这方面的数据,现在课程将要结束这些数据也只能大概估算,偏差很大,此处为16周的估算值) - 学习和使用的新软件。
Axure、GitHubDesktop、IntelliJ IDEA 、Android Studio - 学习和使用的新工具。
git、JUnit - 学习和掌握的新平台,新语言。
android(学习了一些基本的开发知识,谈不上掌握)、GitHub - 学习和掌握的新方法。
远程交流协作;单元测试 - 工程能力的提升。
对软件开发的整个设计开发过程有了一个实践意义上的了解;文档编写能力有所提高;原型设计 - 团队合作上的提升。
能够在较短时间内和组建的团队成员协作开发 - 其他方面的提升。
自学能力有所提升。
二、团队总结
(1)你是组员还是组长?你觉得你自己在哪些地方做得好?你觉得自己还有什么可以改进的地方,具体可以怎么改进?
我是组员,我觉得我在团队例会中的讨论参与方面做得比较好,遇到问题也都会及时地询问大家的意见,但是我在解决困难方面比较偏向于通过自己上网查询资料解决,这样效率可能较低且有些问题并不是自己这个初涉安卓开发的人能够解决的,其实组内有开发过安卓的组员,只是不太好意思请教。
(2) 你觉得你的组长(组员们)在哪些地方做得好?你觉得ta(ta们)还有什么可以进一步提升的地方,有什么具体的建议吗?
组长的工作分配还是挺用心的,了解每个人擅长的方向后进行了任务分配,但是我们组有三个端,工作量较大,人员分工也较为分散,其实可以集中力量做好某一个移动端,这样最后的成品可能会更加尽善尽美一些。
(3)《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)
《构建执法》之中团队的几个阶段为萌芽阶段,磨合阶段,规范阶段,创造阶段。我觉得我们的团队基本符合规范阶段的特点但是还未达到创造阶段的程度。
(4) 从开发的角度,你在团队中担任了什么角色?你是否完成了该角色的任务?现在你觉得你适合该角色吗?
我担任的是编程人员的角色,并没有出色地完成本角色的任务,因为到最终属于我开发的某些功能还是存在问题的。我觉得就我目前的能力和心态而言我适合这样的角色。
三、人月神话
1、怎样证明你学会了软件工程?以下要求你们的团队达到了哪几个?请在随笔中用数据证明上述内容或侧重选择之一。
- 通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件。
我们的项目历时三月,经历了需求分析、原型设计、系统设计、数据库设计、alpha冲刺、bata冲刺每次设计或冲刺都进行了答辩,在团队博客上也有博客记录,是有计划有次序地项目发展,整个项目的代码(安卓端)可从GitHub平台获取。
2、写下属于你自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析,字数不限,开放命题,可以使用你自己喜欢的方式表达。
第二次结对合作中,我们采用了Springboot框架实现功能,采用GitHub平台进行代码管理,但是其实当时这两方面的使用都是不熟练的,多少有些忐忑,尤其在前后端数据交互上,整个作业差点就因为前端无法拿到后端数据的问题无法按要求完成了,幸运的是后来还是再ddl之前找到了解决的办法。可见在技术的选择上还是不宜太过乐观,尽量选择自己有把握的技术会更有底气一些。
四、建议
- 对于下一届同学,或者大一的同学,我想说:
平时要花时间熟练地掌握一门技术,这样才能在软工实践中真正发挥自己最大的贡献。
- 对于自己今后,你有哪些建言?
要认识到自己的能力不足,尽力充实自己。
- 对于助教工作,你有哪些建议?
我觉得助教应该多和同学们在一起交流,也要稍微了解一下同学们的情况,而不是单纯地发布一下作业,评论一下同学们的博客。当然,可能对于助教来说要面对平日里的课业压力,花时间发布作业和评论博客主持答辩已经是很大的工作量了,但是站在学生的角度来看,助教与学生的交流确实有点少。
- 对于软工实践课程,你有哪些建议?对于软工实践课程的上课形式和内容,你有什么具体的意见和建议?在哪儿需要强化或者剔除?
首先,最重要的一点建议是课程的安排,是否可以考虑将其安排在大三上学期,大三下学期大家考研实习都是十分重要的事情,还要时时挂念软工实践,心态上多少有些焦虑,学院老师也说,软件学院的升学率不高,从个人本学期的经历来看,可能和课程安排有一些关系吧。以前好像也看到有学长提到希望这门课能安排在大三上,不知为何建议没有被采纳,可能学院有学院的考虑,但是到了我们这里还是想再次建议,调整课程的安排吧!
其次关于最初团队组建时的随机组队,个人觉得可以保持,并且在alpha冲刺后不必进行组员调整。
五、个人技术总结
个人技术总结—列表搜索
概述:利用数据适配器实现列表数据过滤,搜索功能。