Paparazzi

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

一、请回望开学时的第一次作业,你对于软件工程课程的想象##

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

  • 学习了软件工程的概念,懂得了一部分商业模式和如何创新。真真切切的参与了开发的过程(结对编程、团队项目)。增强了自己的实践能力、培养了个人团队合作的精神。
  • 不足之处:本学期课程较多,有些时间会安排不过来,有时候会感觉到开发过程中时间不够用了!

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

1)统计一下,你在这门课程中,完成了多少行的代码;

  • 代码量:5000行左右。
    2)软工的各次作业分别花了多少时间?(做一个列表)
作业 所花时间
软工网络15个人阅读作业1 6h
软件工程网络15个人阅读作业2-提出问题 8h
软工网络15结对编程练习 10h
软件工程网络15团队作业1——团队组队&展示 5h
软件工程网络15个人作业3——案例分析 6h
软工网络15团队作业2——团队计划 2h
软工网络15团队作业3——需求分析与设计 5h
软工网络15团队作业4——敏捷冲刺(Alpha阶段) 50h
软件工程网络15团队作业5——测试与发布(alpha阶段) 5h
软件工程网络15团队作业6——展示博客 4h
项目复审——Alpha阶段 8h
软件工程网络15团队作业7——alpha阶段之事后诸葛亮分析 3h
软件工程网络15个人作业4——alpha阶段个人总结 2h
软工网络15团队作业8——敏捷冲刺(Beta阶段) 5h
软工网络15团队作业9——项目验收与总结 1.5h
项目复审——Beta阶段 3h
网络15软工个人作业5——软件工程总结 5h

3)哪一次作业让你印象最深刻?为什么?
印象最深的就是Alpha阶段敏捷冲刺阶段的作业了,因为我们的团队成员是由两个班级组成,一开始又不太熟悉,需要很长的时间来磨合。对于项目,每个人各持己见,最后分配完任务后,就是忙碌的边学习边编程阶段,因为对我来说安卓开发就是一片空白。每天都在熬夜~

4)累计花了多少个小时在软工上?平均每周花多少个小时?
200个小时左右,平均每周12-15个小时

5)学习和使用的新软件:Git、JAVAEE(Eclipse)
6)学习和使用的新工具:JAVAEE(Eclipse)、安卓sdk
7)学习和掌握的新语言、新平台:java、Eclipse
8)学习和掌握的新方法:安卓开发工具
9)其他方面的提升:提高了自己的项目开发能力,团队协作能力

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

Android学习之前真的要把Java基础学好,掌握基础之后再学Android,还可以边学习Android边复习Java,一举两得。在团队项目中,一开始我并没有在开发,而是在学习。还好大二的时候java掌握得不错,学得也比较快。在后面的阶段中,开发得也比较流畅。

三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?对于后来人的期许。对于换人机制,有什么样的建议?##

建议:

  • 项目经验+总结+重复造轮子
    项目经验丰富你自然而然懂得就多,踩过的坑就越多,多总结你才能记忆更深刻,更加能够系统性的去归纳这些经验,重复造轮子你才能知道没做过你总会错过那么多的坑。多看优秀的源码,有可能的话重复造一遍也挺好的。

  • 多去混GitHub,目前最流行的开源社区,多参与开源项目,慢慢试着读牛人们的代码,时机到的时候自己也可以为开源社区贡献力量,可以这样说在GitHub上认真混一年,比你在大学四年学的东西要多的多;

对于换人机制:尽量在被更换成员的角度考虑,让他能到合适的团队。否则会影响被换成员的积极性。

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

  • 萌芽阶段:团队刚刚成立,没有很好的合作。
  • 磨合阶段:配合越来越默契,遇到争议大家也能求同存异。
  • 规范阶段:进入beta阶段时我们,PM能更好的分配任务,成员也能各司其职,能过按照计划完成任务,成功开发一个产品。
  • 创造阶段:没有达到。

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

1.研发出符合用户需求的软件

  • 必须公开发布,有实际的用户,一定的用户量和持续使用量 (3 天后能保持10 - 100个用户);而不是: 做没有用户使用的软件
    2.通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件
  • 有项目规划/需求/设计/实现/发布/维护,有定时的进度发布 ; 而不是: 通过临时熬夜,胡乱拼凑,大牛一人代劳,延迟交付等方式糊弄

3.并且通过数据展现软件是可以维护和继续发展的。

posted on 2018-06-18 17:23  Paparazzi  阅读(136)  评论(0编辑  收藏  举报