【BUAA软工】第一次团队作业——团队介绍
项目 | 内容 |
---|---|
班级:北航2020春软件工程 | 博客园班级博客 |
作业:团队介绍与采访往届团队 | 团队作业-团队介绍和采访 |
Part I 团队成员介绍
有图有真(jia)相 | 大名 | 个人介绍 | 角色意向 |
---|---|---|---|
李PX | 来自高工大三计算机专业的小笨比,比较熟悉python,Java,写过c++。参与过计组测试数据构造,但梦想是做做开发。课余时间喜欢看剧看电影。希望在软件工程课程里能够和团队组员们完美配合,制作出出色的项目 | 开发,测试 | |
向WL | 来自高工大三计算机专业的中笨比,十分讨厌Visual Studio(看看人家VS Code!)。精通查找和阅读C++ Reference。喜欢用代码说话,课程设计永远比理论课高10分。梦想是十八般武艺能精通一半。希望在软件工程课程里能真正实践《构建之法》提到的各项酷酷的组织和工程方法。 | PM,测试 | |
韩WZ | 来自楼上隔壁宿舍的大笨比,PPT架构师10级,擅长画饼吹水,对Java后端和数据库有一定的研究,优点是消息秒回,从不咕咕咕 ,希望能和大家一起做点有意思的事情 | 开发,PM | |
孙XD | 来自高工大三计算机专业的老笨比,会使用python,C++,Java等编程语言,具有爱运动和死肥宅的双重属性,喜欢社交,为人友善,希望能在软件工程这门课上学到新知识,交到新朋友。 | 开发,设计 | |
万ZF | 1706一名普通大三生,前端自学过html、css、javascript,对后端知识也有一些了解,希望能在团队里承担开发工作,并和大家共同开发出有意思有价值的产品。Fighting!!! | 开发、测试 | |
韩FJ | 来自大三计院的底层群员小菜鸡一只,平时喜欢打排球和听音乐。目前了解的编程语言有C、Java、Python和非常微小的前端的知识,不敢说比较熟练,一般是需要用什么学什么。之前基本没有什么工程和项目经验,虽然非常菜但是一直在慢慢努力学习点亮技能树,希望能在这次课程中向团队大佬们学习,共同进步,我一定会尽我所能不咕的。 | 开发、测试 |
Part II 团队采访
采访一
采访对象:2016级 北航红太阳 团队成员马振亚,团队项目为为北航校内社团和同学服务的社团小程序,团队博客链接。
Question I:
首先能不能请您大概介绍一下你们团队的软工项目呢?
我们做的是一个为北航校内社团和同学服务的社团小程序。对社团端支持管理、信息发布等功能,对学生用户支持信息查询等功能。
Question II:
请问下您当时的项目有多少人使用,巅峰的时候大概有多少,课程结束后后续还有人使用吗?
当时这个项目巅峰的时候,我们当时统计了一下,应该大概有1000,2000人左右的使用量,然后课程结束之后有一个问题就是我们的服务器租期到期了,然后我们团队也没有资源继续维持后端的服务器的运行,所以现在这个项目就处于一个停了的状态,但是他的代码都有,现在服务器部署之后还是可以重新使用的。
Question III:
那这个项目最后是停留在了作业级还是产品级呢?
项目的话,我自己感觉应该算是处在了产品级,因为当时真的还有挺多人使用的。
Question IV:
想了解在初期如何规划的这个项目最终的规模和体量,从而做技术选型呢?或者说是在后期做了升级,升级的时候有什么困难吗,或者前期如何准备会有利于这方面的问题?
因为类似于这种管理系统的话,它是有一些特点的,比如说,对于他来说,就是你实现两个功能跟实现三个功能,也就是说实现n个功能跟2n的功能,其实他中间所花费的时间是差不多的。所以我们在初期规划的时候,基本就是考虑一个大致的范围,就是只规划大体的,我们的架构要实现的功能,但是里面比较细节的,我们具体要实现哪些接口和一些小功能,我们就是做了一个初步的规划,后期调整的还是比较多的。然后技术选型的话,我们主要考虑到就是希望做到的,就是组里面就每项技术,有个同学能够掌握某项技术,这样的话,不至于我们所有人都是迷茫的。就比如我们组来说,我们的张少昂同学在这个网页前后端开发比较熟悉,我们其他人的话,其实之前是没有后端的经验的。所以说在他的指挥下,我们就选了选学的Ruby这门语言,就是Ruby on rails这个后端框架。
针对前期准备跟后期的话,我觉得还是要看你们的选题,如果你们的选题类似于我们这种管理系统,就是说他的可拓展性比较大,就是可伸缩性比较大的话,那么在前期准备的时候就是把握好大体的框架。比如说我需要实现哪几块大的核心功能,大方向定下来就好,然后小的细节就先不需要管。但是如果你们是那种比较一个核心的,那些会有一两个核心功能点的项目的话,那么你们就一定要把这个核心功能点,一定要调查清楚。调查清楚这一两个核心功能,你们实现它的可行性到底有多大。
Question V:
请问一下学长您当时担任的是哪一种角色(测试,开发,PM),您对这个角色有什么经验或者建议可以分享一下吗?
我的角色是开发人员,而且我从始至终一直就是一个后端开发人员。为什么选择做后端开发?因为虽然之前做过一些前端开发,稍微有一点了解,但是并不是很熟练,然后我希望在课程上学到一些新的技能,所以我就选择了加入后端组。我觉得做后端是一个非常讲究规范的过程,这种规范就是包括你存到文档,从接口定义来说,一定要做到非常规范。
关于建议,我觉得自己的一个教训就是:一定不要着急写代码。其实你会发现代码是非常快的一件事情。你首先要做到,事先和另一个开发人员商量好,把接口给定义好,定好之后你实现起来会很快。如果你草率的就直接把接口随便定义,然后没有双方校对的话,那到后面就会经常出现不停的反复修改的过程。
Question VI:
请问一下您当时的开发的时候有进行明确的时间规划吗,规划的频率大概是多频繁,是一周一次还是一天一次,会不会出现说计划赶不上变化的情况,您大概是怎么调整的呢?
我个人开发的时候是会立一些flag,定好时间点。因为团队工作的话,你每个人的工作其实会影响到其他人的工作的,所以尽量要保持保证按时完成。然后基本上是也是一周(开一次例会),然后我们组内会定一下下周要做什么,每个人要做什么东西。这个有一点我个人的习惯,因为任务基本都是以周下发下来的,然后我的话就比较喜欢尽早先把任务给安排上,所以很少出现计划赶不上变化的情况。因为如果就是任务发下来之后,你赶紧把完成之后,你后面就会有很多容错(改bug)的时间。
Question VII:
想了解一下你们在开发过程中有什么经验和教训,有什么特别推荐的团队模式嘛,或者您认为在一个团队里什么因素至关重要呢?
我认为一个比较好的团队,是需要合作加上分层。合作的意思就是,每个组内的成员,有经验的人要去多带带没有经验的人。然后分层的话就是不要让一个人掌握所有的事情。如果一个人要掌握很多很繁琐的事情,是很累的,所以一定要分成各个小组。比如说我们的话就是整体项目,然后PM管大负责,后端组的话要有一个负责人,前端组有一个负责人。PM尽量去跟前端组跟后端组的负责人对接,在组内的话,就是各个小组长去负责和小组员协调和沟通。
Question VIII:
想问一下学长您们的项目课程结束后还有继续进行维护更新吗,您觉得您的项目是否还能继续交给下一个团队(比如我们)开发,是否还有相关源代码和文档?
这个项目课程结束之后。我们没有继续进行维护和更新了,因为团队成员大部分没有那个精力。关于这个项目的传递性,我自己的自我评价,我感觉我们组项目的工程质量,文档质量还是不错的。我们的项目目前是放在gitlab上,然后文档跟代码都在上面,我觉得继续往下开发应该是没有问题的。
Question IX:
您在软件工程课中最终体验和实践到了多少软件工程的方法和技术,几乎都应用了《构建之法》书中的技术吗?是否有后悔没有尝试的工程方法,或是与想象中的软工不一样的地方?
在最终体验跟实践当中还是用到了许多《构建之法》中间的技术,发现这些技术在实践上还真的是挺有帮助的。对于比想象中的软工不一样的地方,我原来以为软件工程就是非常engineering,非常工程化的东西,就是需要码很多很多代码,就是码代码会占掉百分之六七十的时间。但是实际操作发现,做接口设计跟互相讨论思路,做设计这一步,不管你是开发还是测试还是干什么的,都是远远要比你码代码的时间要长很多。
Question XI:
您对学好软件工程这门课有什么建议?
软件工程这门课的话,我觉得首先需要勤动手,多实践。然后在实践中不断地扩宽自己的技术栈的深度和宽度,要对多种技术都有比较好的掌握和了解。然后其次的话就是培养自己的合作能力。一定要学会跟团队成员之间相互沟通,因为这个项目你自己一个人是不可能完成的。所以你一定要学会能够协作他人,也能让别人更好的协作你,共同地完成一个软件工程的开发。
采访二
采访对象:2016级 Water_T 团队成员白世豪,团队项目:小小易校园,团队博客链接
Question I:
当时的项目有多少用户,给用户多少价值? 现在还有人用吗?
当时项目最多的时候有四百多人,价值的话,感觉当时大家都是在上面发需求发着玩,没咋真正的使用起来。现在的话没啥用了,因为这个项目的来源是我一个湖南大学的同学他们系想要弄一个这种校园需求发布小程序,我们就直接以这个立项目了,后来这个项目黄了,就没人用了。
Question II:
这个项目能否给我们团队继续开发,源代码/文档还有么?
源代码和文档虽然还在,但是建议不要继续开发了,一个是这上面没啥可扩展的 了,另一方面我估计也不会有啥人在会用了。而且类似的东西也不少北航。所以建议自己想个别的比较有意思的题目。
Question III:
项目开发有什么经验和教训?
项目开发的话,一个好的经验就是一定要在开始前明确好大家的分工,哪些人搞前端,哪些人搞后端,哪些人搞文档,只有一开始就分工明确,才能正常往下推进,不然容易拖拉。 项目接口文档也很重要,明确好接口,大家直接按照接口文档开发就行了,可以省下来很多沟通的时间。
Question IV:
对学好软件工程有什么建议?
建议就是程序功能多样化一些,除了程序的开发,博客也很重要,想最终分数比较高,博客一定要好好的写。
博客作业耗时
采访一耗时60min,采访二耗时20min,博客撰写耗时80min。