福大软工 · 最终作业 - 软件工程实践总结(个人)

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

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

    • 开篇博客对课程目标和期待:开篇博客链接

    • 已达到期望:软件工程这门课确实让我积累了一些项目经验,同时,在项目开发过程中,我认识了我们404 Note Found队其他10名队员,大家聚到一起为了同一个目标而努力,一起熬夜,一起Code的回忆确实挺“美好”的。

    • 存在的不足:由于缺乏经验的原因,我大部分时间用来负责完成自己的功能部分,对其他队员们负责的模块的了解较少,未能达到之前的期望“对项目的各方面都有一些了解”。

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

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

      在这门软件工程实践中,我大概完成了1800行代码。

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

      作业 花费时间(分钟) 博客链接
      自我介绍 10 自我介绍博客
      第一次作业 180 第一次作业博客
      第二次作业 840 第二次作业博客
      第三次作业 600 第三次作业博客
      第四次作业 60 第四次作业博客
      第五次作业 745 第五次作业博客
      第六次作业 180 第六次作业博客
      第七次作业 300 第七次作业博客
      第八次作业 300 第八次作业博客
      Alpha版本冲刺 8000
      团队现场编程 240 团队现场编程博客
      团队项目测评(福大助手) 180 团队项目测评博客
      Beta版本冲刺 1440
      最终版本展示 300 最终版本展示博客
    • 3、哪一次作业让你印象最深刻?为什么?

      Alpha版本冲刺作业让我印象最深刻。因为Alpha版本冲刺作业的持续时间最长,也是我们开发出Alpha版本的作业,在这个过程中,我与队员们团结协作,一起在福大的贡茶前、青卟和活动室等地熬夜打代码,其间酸甜苦辣不足道也。

    • 4、累计花了多少个小时在软工实践上?平均每周花多少个小时?同时贴出开篇博客“你打算平均每周拿出多少个小时用在这门课上”的回答

      累计220个小时在软工实践上,平均每周花10多个小时。

      大概每周十多个小时 -----> 实际与之前开篇博客的估计相符

    • 5、学习和使用的新软件;

      Axure -----> 原型制作

      Android Studio -----> app开发

    • 6、学习和使用的新工具;

      Sublime Text -----> 文档编辑

      StarUML -----> UML图绘制

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

      Java的一些基本使用、初步了解Android平台的开发

    • 8、学习和掌握的新方法;

      Android平台上AppWidget的基本开发,高德SDK实现定位当前所在城市,和风API获取JSON格式的天气预报信息,JSON格式的解析,使用UsageStatsManager获取用户使用app情况,Notification发送通知等。

    • 9、其他方面的提升。

      查找相关资料方面的能力有所提升,开发过程中通过阅读Android开发文档帮助理解网上的代码功能,团队协作方面及时和队友们沟通等。

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

  • 关于团队项目实践的经验总结:在团队项目实践的过程中,每个人的作用都是不可忽视的,我个人感觉这就像拔河一样,只有大家都往一处使劲,项目的进度才会快,如果有人进度严重落后就会影响到整个项目的进度。因此,项目团队的队内氛围是十分重要的,在一个积极向上的团队氛围里,队员们都会快速产出,积极沟通,遇到难以解决的问题也会相互帮助。幸运的是,我们404 Not Found队内的氛围很好
  • 举个例子,在艰难的Alpha版本开发过程中,由于我们队内没有大佬,所以大家一开始都很懵不知从何下手,这时候大家就各自向认识的学长或学姐请教,然后在群里面交流,最后将各自的任务分配好。项目开发的时候,我们队也经常找个活动室或奶茶店一起打代码,这样大家对各自的进度也有一定的了解,如果有人稍微有些落后也会相互提醒。因此在痛苦又快乐的日子后,我们的项目进度一步步按计划进行着,最终完成了我们的项目!
  • 我觉得我们项目的最终成果固然少不了队员们的努力,但其中队内的良好氛围也占了很大部分的原因,正是队内良好的氛围才能保证队员们互相帮助,互相鼓励,没有放弃最后坚持下来整个软工实践没有人掉队

三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,对于同期的TA们,对于后来的学弟学妹:

  • 1)你有什么想建议、告知和期许想要告诉他们呢?

    软工实践这门课虽然很难,确实很难,但是没有付出哪有收获,我希望你们能够选修这门课,然后坚持到最后。在整个实践过程中,你们如果始终抱着专注认真的态度,那么每一次作业你们都是在进步的,直到软工实践最终结束,你们会发现如今的自己与之前的自己有很大的不同。

  • 2)特别地,特别地,下一届要不要中途换队员(强制的、彻底的从一队换到另一队)?假设依旧是一个90+人数的大班

    我个人觉得中途换队员(强制的、彻底的从一队换到另一队)是可以的,但是需要选择一个合适的时机,如果在项目开发中期换队员的话,就很可能对各队的项目开发造成很大的影响。

  • 3)身在一个格外大的班级,竞争强劲,你认为一个组的人数应当在多少比较合适?

    我认为一个组的人数最好不要超过9个人,但是如果班级人数太多的话,一个组最多也就能11、12个人,再多任务不好分配且容易出现划水现象。

  • 4)个人/结对/团队作业应该控制在怎样的规模?

    个人/结对作业与这个学期差不多的规模即可,团队作业中间最好削减一些其他作业,给各团队更多时间开发各自项目。

  • 5)这学期下来,你最感谢的人是谁?有什么话想要对TA说呢?

    这学期下来,最感谢的是胡绪佩同鞋鸭。

    对阿佩同学说的话:
    答辩小能手,手动666。

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

  • 《构建之法》团队发展阶段
    • 萌芽阶段:就像小苗破图而出,柔弱但充满希望。团队成员刚刚接触到团队的宗旨,同时很有可能刚刚互相认识。团队的目标没有真正达成一致,而成员则非常依赖于团队领导的指导。
    • 磨合阶段:就像一个人的青少年时期,充满了对个人、同伴和团队的疑惑和冲突。团队无论大小都要客服困难,交付结果,大家不得不认真的面对问题,开展讨论了。这些冲突不一定都是技术问题也许是关于角色、职责、相互关系。甚至是各自性格、文化的冲突。不少人都想成为某个领域的“拥有者”(在软件项目中,谁负责哪个方面,每个方面要怎么做,等等)。同时也有一些人会以不同的方式进行挑战。
    • 规范阶段:从磨合阶段毕业进入到规范阶段的团队成员们就角色、职责定义和流程都取得了比较一致的意见。这一时期团队具有以下特点:
      1. 团队的工作流程和工作的方式得到大家的认可。成员之间互相更加了解,欣赏各自能力和经验,工作中相互支持。
      2. 领导主要扮演促成者和鼓励者的角色,有能力的成员也分担了一定的领导职责,并自然的获得大家的尊重。
      3. 随着项目的开展,一些成文的或不成文的规则逐步建立起来了。
      4. 作为一个整体,团队要做什么、不做什么,都更加明确。团队的信心更足,和其他团队打交道更有底气。
    • 创造阶段:经历以上三阶段后团队可以创造一些有意义的东西,并不是所哟偶团队都能到达这一阶段。拥有以下特点:
      1. 团队知道为何而战,并将注意力几种到如何创造、实现目标上。
      2. 高度自治,不再需要领导的时时教诲与介入。不同意见仍会出现,但成员都以一种积极的心态和方式解决。互相支持,互相依赖,并保持各自的灵活性。
  • 萌芽阶段:软工实践组队后刚开始的时候,我们队就是处于萌芽阶段,大部分人之间都是刚刚认识,对于团队的项目都还没有很清晰的定位。在Alpha冲刺前我们队应该都是处在萌芽阶段和萌芽阶段向磨合阶段过渡的时期。

  • 磨合阶段:在Alpha冲刺开始后,我们队就是处于磨合阶段。在磨合阶段,虽然没有对个人、同伴和团队的疑惑,但是一些小冲突也是会有的。这些小冲突主要是发生在对接过程中,由于对各自负责功能模块不是很清楚,所以在对接过程中就发生了许多麻烦,但最终都通过队员之间的沟通协作解决了问题

  • 规范阶段:在Beta版本的后期最终版本,我们队可以说处于规范阶段。队长主要扮演促成者和鼓励者的角色,我们队内已经有了一些成文规则(如开会纪要、学习成果反馈等)和不成文规则(如青卟开会等)。由于我们团队的进度按计划进行着,且获得的分数都位于榜首,所以我们团队的信心很足,和其他团队打交道也更有底气。

  • 创造阶段:尚未达到。

  • 团队成绩展示:

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

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

    • 我们的产品在开发前做过一次市场调研问卷调查(样本容量:线上93+线下110=203份),并完成了我们的记忆罐头商业企划书。其中包括用户对我们产品功能的反馈饼状图,我们产品功能十分符合用户需求

      需求展示

    • 在完成产品后我们邀请了86位用户进行内测试用我们的记忆罐头,并且收集了用户反馈问卷。

      体验指数展示

      期待指数展示

  • 2)通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件

    • 我们团队在软件工程实践课程的机会之下,通过团队合作完成了产品记忆罐头!分别在Alpha版本阶段完成产品的初始版本,Beta版本完善产品进行一定的bug修复,最终版本已经迭代13次完成产品的1.1.3版本,产品下载链接
  • 3)并且通过数据展现软件是可以维护和继续发展的。

    • 现软件的可维护性和是否可继续发展通过上面的用户反馈问卷截图便能看出。

      体验指数展示

      期待指数展示

    • 用户需求期待指数超过4分的比例在70%以上,证明我们的产品是可维护和可持续发展的。并且产品具有十分可观的盈利方式和前景,对不同手机(三星华为Oppo)应用市场的在线付费壁纸做了一个简单的调研:

      三星付费壁纸

      华为付费壁纸

      Oppo付费壁纸

    • 盈利点

      可以看出,我们的核心创新点锁屏壁纸展示如果能够达到美观、友好的前提下,还能展示出用户的备忘内容,那么便完全可以借助于付费壁纸已经广为人知的免推广的天然优势!在每种壁纸单价较为廉价的模式下,提高用户购买欲,相信可以很快的抢占付费壁纸的一块市场,这样也为后续的开发提供了条件和盈利希望。当然,这一切都需要在能够解决生成美观壁纸展示备忘的这一难点的前提下。也正所谓难点即卖点!

  • 4)对着这个检查表:http://xinz.cnblogs.com/p/3852177.html 检查一下,自己如果去企业面试,这些常见的问题是否都能回答,并在此总结。

    • 对照检查表,如果我去企业面试,这些常见的问题大部分我都不能回答。在之后的日子里,我应该对照检查表中的问题进行学习和总结。
posted @ 2019-01-06 12:52  Jeho  阅读(359)  评论(1编辑  收藏  举报