软件工程实践总结

点我


1. 回望第一次作业,曾经对于软件工程课程的想象


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

1.1.1 能力

能力,肯定是增长的(看下文),没有增长的话就非常苦逼了- -。但是我感觉我学到的东西好像很不牢固的样子。我素来不是什么经验学习者,主要是节奏控制的不好,通过经验学来的东西很容易忘掉。在时间比较紧张的时候,能把任务做完已经不容易,很难及时整理这些知识。事实上,碎片知识管理一直是我的一个大毛病。所幸,实践让我养成的习惯却不是那么容易消散的。

1.1.2 合作

在团队里面工作和单干,真的不一样。各种格式统一,各种例程什么的,很多,但是这些都是表面。真正震撼的是,思维的碰撞。。你永远不知道你的队友现在到底在想什么。。

1.1.3 心态

我搞懂了一个问题:“这个项目,到底属于谁?”。我的答案是:整体属于整体,部分属于部分。项目属于团队,我只有部分的所有权;换句话说,我只需要部分的精神依赖,而这种依赖可以由我自己来掌控。我也说不清这是一种什么感觉。以前我竭力推行我自己的想法,把项目当成我的孩子,受到打击之后也有彻底放弃、不闻不问的,后来就看淡了,该做什么做什么。后来要搞换人,对我丝毫没有什么精神打击。

1.2 软件工程实践为我带来的提升

1.2.1 总代码量

记不清了,期间应该有数千行了吧,包括我自己做的一些小东西。

1.2.2 各次作业的耗时表

有些作业因为某些原因,耗时并不准确,请注意。

作业 简要描述 用时
第一次 开班博客 4
第二次 数独 18
第三次 部门管理软件设计 13
第四次 部门管理软件实现 12
第五次 团队作业 约100+
第六次 个人技术博客 4
第七次 华为软件云评测 5
第八次 课程总结 5
总计 约180+

1.2.3 印象最深刻的一次作业

当然是数独那次啦~
那次作业布置在暑假快要开学的时候,deadline又恰好卡在去学校的那个点上。更糟糕的是我有拖作业的习惯,那个时候本来有10天的时间可以完成,硬是让我拖到剩下2天才去做。我编程能力又不好,疯狂肝了两天。那个时候我第一次真正体会到了被软工实践支配的恐惧。
后来的作业中,这种感觉就没那么强烈了,因为我学会了计划与放弃。

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

累计约180小时,每周平均13小时。

1.2.5 新软件

  • Android Studio
  • Eclipse
  • Code::Blocks
  • Visual Studio

1.2.6 新工具

  • 墨刀
  • Github
  • Teambition

1.2.7 新语言、新平台

  • Java
  • Android
  • JSON

1.2.8 新方法

  • UML设计
  • 一些代码编写的小技巧

1.2.9 其他方面的提升

  • 大佬队的做法真是让我大开眼界
  • 学会活用Excel作时间管理
  • 学会活用高级搜索寻找资源
  • 活用UI素材库
  • 软件开发流程
  • 非合作博弈(误)

2. 属于我自己的人月神话:个人或结对或团队项目实践中的经验总结+实例/例证结合的分析


无限坑了。。


3. 各种建议


3.1 对软件工程实践菜鸟的tips

  • 你想当码农么?
    大计算机系无所不包,以后想做什么的人都有,在计算机系什么机会都有。你想当码农么?想这个问题,一直想,想通了再决定报不报软工实践。你的时间很宝贵。
  • 选跟你实力相近的人组成队伍。
    不解释。
  • 第一时间把团队管理框架搞起来。
    最方便的做法,直接把大神的框架copy过来,慢慢适应。管理先行,否则你一定会后悔的。
  • 学会放弃。
    建议阅读微观经济学。

3.2 要不要中途换队员

可以换,但是绝对不能草率地换。
换人这件事情的重要性甚至可以和Alpha、Beta冲刺比肩,教案不应该厚一点么o( ̄︶ ̄)o。


4. 我的团队经历过么哪些阶段(《构建之法》17章),最后是否到达“创造”阶段?


我认为我们团队也就只是进到规范阶段的初级阶段而已。我们一开始激情高涨,但是大家各自为战,后来就越来越没有激情,讨论也冷下来了,后来才开始整理烂摊子,开始真正做事情。我们也不是没有规范的想法,但是工作已经开始了这么久,总是会有问题的。
我看那些大佬团队,一开始就制定了相当细致的规范,真是令人羡慕。他们已经有过很多次合作的机会,一开始就能进入稳定的规范阶段起飞期,然后很快就进入创造阶段。一开始老师说什么“厉害的人在一个队很容易闹矛盾”什么的,我当时就觉得不对。因为这个世界上,有一种团队叫做特种部队。


5. 我是否学会了软件工程了?


5.1 要求

  • 研发出符合用户需求的软件:必须公开发布,有实际的用户,一定的用户量和持续使用量 (3 天后能保持10 - 100个用户)。
  • 通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件。 有项目规划/需求/设计/实现/发布/维护,有定时的进度发布。
  • 通过数据展现软件是可以维护和继续发展的,而不是找不到源代码,代码无文档,代码不能编译,没有task/bug 等项目的发展资料

5.2 达成情况

  • 我们的软件只有在课堂上发布,还没有真正推向市场。用户也就我们这些人而已。
  • 我们的项目管理做得还不是很好。
  • 我们的代码和文档记录都放在我们的Github库里面,童叟无欺。

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


我一直不明白,这么牛逼的东西怎么就销声匿迹了呢?
我们至今仍为砖头所奴役

posted @ 2017-12-27 11:35  Metak  阅读(317)  评论(1编辑  收藏  举报