在这学期的软件工程课中,我们的团队项目是做一个APP,主要的功能是做一个校园二手交易平台。这是经过我们团队讨论之后的决定。说到这我就想提一下我们的团队人员。我们的团队建立的时间比较晚,基本在大家团队都建得差不多的时候我们才建立的,所以剩下的人就比较少了,最后只有5个人。
在M1的开发阶段我在团队中担当PM和开发人员的角色。在一般的软件工程中PM是不会参与开发的,但在我们团队中由于人少,所以我只好兼职开发。在最初的时候大家的兴致都是比较高的,做什么事都会积极去完成。虽然说团队实际上也只有两个人做事,但是团队的管理,比如任务发布,任务分配等做的都比较好。其中有一点不足的是团队的任务关闭做的不好,导致燃尽图不是很好看,我觉得最主要的原因是因为我们两个人开发太忙了,加上其他各科的作业,没有多少时间去管这事。
在M2的开发中,我不做PM了,因为我觉得太忙了,我觉得在M2中我们的团队管理就比较差了。我们把PM换给了另外一个人,但是他只是前期做一点事,后来就什么也不做了,团队的管理几乎全轮到我们两个开发人员身上,包括博客,团队任务分配什么的。说到这个问题我觉得需要吐槽一下我们团队为什么只有两个人开发,其中一个同学是在M2换过来的其他班的同学,我们让他来拍个团队照片都不来,还有另外两个同学也不知道在干什么,我给他们分配代码任务,他们说不会,然他们学,他们也不学,即使让他们写博客他们也不做,最后只能是我们两个开发人员把左右事情全做了。这让我吸取了一个教训,那就是别和太熟悉的人组队,他们不做事,到最后他们还要让我们给他们安排一些虚假的任务,当然我否决了。
在M1/M2中我吸取了教训,但我也有收获,至少我和另一个同学开发了一个项目。同时在M1中我作为PM也学到了很多团队项目管理的知识。最后我觉得如果团队人员是老师随机分配的话我觉得我应该能做的更好。
在学期之前,我快速阅读了课本,提出了一些自己的问题。
原文博客:http://www.cnblogs.com/dycaly/p/4829972.html
原来具体的问题以及解答如下:
对于这个问题我觉得我已经明白了,PM是团队的管理者,其他的开发人员都是根据PM分配的任务进行代码编写的,他不需要编写代码,但是他会负责整体项目,他可以说是最了解这个项目的人,所以它能够做到管理。
这个问题我觉没有搞清楚。但是我觉得如果以后想在软件工程师这个行业一直混下去,那么有比没有好。
这个问题我觉得自己已经明白了,开发人员只是负责开发,团队中有其他人来做这些事,开发人员只需要按照PM的要求进行开发就行了。
这个问题我觉得自己也已经明白了,团队中会定义许多的文档,比如接口文档什么的,就是来解决这些问题的。
这个问题我觉得是我问错了。测试人员有时是需要写测试代码的,所以他们也需要有一定的编程能力。
新的问题:
其实经过M2之后我想提出一个问题:如果在一个团队中PM分配的任务,下面的人不做或者超时怎么办,还有就是如果一个PM是一个很水的PM怎么办?
8篇软件工程相关的论文或博客新体会
在之前的博客中我觉得对于其他方面的体会我提过了,在这里我想说一下软件工程这个问题的本身。一个软件工程,一个团队,我觉得最重要的还是团队中每个队员对这个团队的参与度和PM的凝聚能力。在商业软件的开发中,大家共同维护着一个团队机器正确高效地运行下去,我觉得这其中很大一部分是利益的驱使,虽然不否认有部分人是因为有着共同的兴趣爱好而坐在一起共同工作,但大部分还是大家在一起工作能够更好地获取物质财富。这样的团队每个人都能够为了自己的利益而努力工作,PM的凝聚能力也能有所体现。可能是因为我们团队在M2中出现的问题,我觉得在同学之间的合作中并没有体会到真正的软件工程。
在各个阶段中学习到的知识点:
阶段 | 知识点 |
---|---|
需求 | 在需求阶段我觉得我学到的主要是对典型用户的分析 |
设计 | 在设计阶段我觉得最重要的是需要对用户体验多加考虑 |
实现 | 我学习了Java Web和Android开发 |
测试 | 测试不仅仅是人工测试,还有代码的测试,比如JunitTest都是在项目中需要做的 |
发布 | 我们写的APP不能直接发布,还需要加密以保证自己的APP不被破坏 |
维护 | 在编写代码的时候注释很重要 |