前言:逛知乎时,经常看见有大神将各种经历写成小故事,感觉特别有趣。咳咳,这次也自己来尝试下,将这学期的软工实践写成故事试试看,故事中均已第二人称来描述。故事中的人物均是化名。故事情节经过些许加工。
说明:故事情节并没有针对任何人,仅以此纪念自己的成长。
回顾上一章:详情请猛戳该链接:http://www.cnblogs.com/dasusu/p/5080157.html
第三章:项目编程前夕
课程已经进入团队合作开发阶段了,并不太糟的是你的团队组成了,成员个个也都很不错。首先是担当PM的瓜哥,是个学习能力特强的大神,曾经从年级排名一百多外加挂两科的位置突突突地飙升到年级第一。接下去是元哥,放弃暑期玩耍时间,留校自学的好学分子。还有一个外号BOSS,硬盘,平板,资源啥都有的“收藏家”。当然,还有一个你。
懂哥多次强调,他的软工课不是语言课,不是教你怎么编程,而是教你如何开发产品。因此,懂哥表示,团队任务并不会一开始就直接编程。那要做什么,当然是写文档。所以懂哥布置了团队的第一个任务,写需求规格说明书。
懂哥给的时间有一周,你觉得时间应该很充足了,可以慢慢来不用急。正好你跟瓜哥讨论该如何完成这次任务,你建议是先指派一个去查找并整理出来《需求规格说明书》到底需要写哪些内容。瓜哥同意了你的建议,并把这个任务交给了你。至于他们三个,则负责跟客户约谈,收集并理清需求。
你接受了瓜哥的安排,一开始你觉得这个任务应该很简单,不就是查一查资料,整理一下嘛。但其实,查资料简单是简单,但想要查到高质量,准确的资料却是需要一定的经验和技巧的。可惜的是你一开始根本没有意识到这一点。
懂哥要求文档的格式必须按照国际规范来书写,于是你上百度,输入关键字。渐渐的,你发现,你换了很多关键字,但搜出来的文档却有好多种格式,你开始疑惑到底哪个才是国际规范的格式。
休息了一会,你突然想起,助教多次强调不要用百度,用Google。虽然你并不知道为什么不能用百度,但你觉得或许可以试试用Google搜索试试。好在,给力的瓜哥整理了几种翻墙的方法,你不需要再多花时间去搞翻墙。
一用之下,你发现效果好像是比百度好多了,你不确定这到底是不是因为你的心理暗示的作用。因为你发现,搜索出来的大多数都是英文的,对于这种用英文提问,英文解答,英文官方文档的,你总觉得它们很高大上,觉得看英文是大神的专属特权。
你突然觉得,自己或许可以装一把大神看看。于是你强迫着自己一个词一个词的看着那些英文,虽然这样耗费了你很长时间。好在,最后你找到了。但你又疑惑了,因为你找到了一份国标,也就是国家规范,还找到了一份国际规范。
之所以会疑惑,是因为你很确定国标是从官方查找到的,你能保证它的格式就是国标。但国际规范的文档,只是文档的标题写了国际规范四个字,你并没有找到官方的文档介绍,所以你有点怀疑这到底是不是国际规范。想了想,你还是选择了那份国际规范的文档,把它整理了出来。毕竟懂哥的要求在那摆着。
当你整理完后,软工群里开始有人在吐槽懂哥要求的国际规范格式找不到。懂哥看到后,给大家提供了关键字,叫大家按照大概的关键字自己去搜索下载。这时又有人吐槽,都给了关键字,干嘛不直接把文档提供出来,这样岂不是更麻烦。其实,你自己也有这样抱怨过,但事后你才发现原来懂哥不直接提供文档就是要让你们自己去学习如何搜索,如何获取资料,但没想到大家竟让他这么失望,居然还要懂哥他来提供关键字。提供了关键字了居然还有直接要文档的,懂哥应该都快气哭了。当然,这是后话,暂且不提。
你比对着懂哥给的关键字搜出来的文档才发现,懂哥其实给的要求是国标,可是你之前整理出来的却是另一份。你突然意识到不好了,因为队员们已经在你整理出来的那份文档上面开始书写了。你急忙跟瓜哥汇报,瓜哥叫停了大家写文档的工作,叫你赶快抓紧时间改过来。
由于这时已经快临近任务提交的截止时间了,等你改完后已经耽搁了一段时间了。最后,你的团队为了能按时完成任务,在截止时间前一天晚上都熬夜到了凌晨三四点。事后,瓜哥表示很不满意你的表现。
你也觉得自己做得不够好,明明看着一份挺简单的任务完成的质量却还是那么差。当你在碰过疑惑时,如果自己搞不定,就应该向别人请教。是,你是害怕如果你问的问题太简单,会不会让对方有不好的印象。但事实却是,你总是想得太多,你要学会请教,这并不是什么丢人的事,有疑问时就应该提出来,让大伙一起解决。你总是没意识到这点,这很不好,要改。
好了,时间再稍微往前推点。当你整理完国际规范的文档出来后,瓜哥便开始按照你整理出来的文档分配任务给大家。你们花了一个晚上的时间,根据瓜哥第一次见客户时留下的录音资料,一起讨论、整理了一下客户的需求。并将一些有疑惑的地方都罗列出来。
瓜哥说,他准备再约客户一次。将有疑惑的地方都弄清楚,但你却有点害怕。因为客户其实是个教师,是负责学院某方面工作的负责人。要跟这种大人物打交道,而且你还只是个学生,并没有能力保证最后能做出个产品出来,现在就跟客户各种商谈最后做不出的话那该怎么办。
很明显,瓜哥在这方面表现的比你优越多了,也对,毕竟是团队的PM。跟客户约好时间后,做了些准备。第二天,元哥有课,所以你们三个带着资料就过去找客户了。客户来之前,你很紧张,虽然到时演示、交流,基本都由瓜哥负责,但你还是忍不住的紧张。
跟客户谈了大约有一个小时,具体谈了什么你基本都已经忘记了,只记得整个过程,基本都是由瓜哥跟客户交谈,你在旁边记录重点,偶尔当瓜哥意外卡顿时,赶紧插上话,给客户解释他的疑惑。然后,就没有然后了。你只记得到最后懂哥急急忙忙的跑过来,他说他以为你们会没钥匙开这个会议室的门进来,说完懂哥又急急忙忙的走了,走之前懂哥好像还笑了下,你偷偷的在心里想,懂哥不知道会不会吐槽你们这三个小兔崽子,瞒着其他团队偷偷见客户。
回到宿舍后,瓜哥找你要录音资料。你突然很意外,因为瓜哥并没有说要录音,所以你并没有去把交谈过程录下来。瓜哥说,这还用说嘛,他需要演示原型给客户,手机没法录音,他说他以为你们会自觉录音去。
你跟BOSS都表示,没关系,你们已经把重点都写下来了。但瓜哥表示,客户有时的描述前后都会矛盾,你们的理解也都是个人的,不录音下来好好讨论下有的内容还是会理解错的。无奈,你跟BOSS只能表示下次一定注意,不会再犯了。没录音资料,瓜哥也没其他的办法了,把记录下来的整理了一下,然后根据你之前整理的文档规范分配任务了。
好了,时间回到正轨。当你们熬夜完成文档后,第二天需要课堂演示文档内容,懂哥当场点评验收。你觉得你们文档完成的质量应该算是挺不错的,毕竟瓜哥曾约客户再次确认了客户的需求。其他一些跟你们做相同项目的团队并没有采取什么行动,只是在第一次由懂哥约客户让做这个项目的团队都到场听客户讲述需求。所以,瓜哥表示你们的团队已经领先其他组了。
一个早上,十几个团队都把文档演示了一遍。懂哥表示,大家都辛苦了,有的组确实完成的很不错,内容很详细,明确。有的组仍然有些地方需要修改,你们的团队虽然并没有哪个地方需要大改,整体上还算很好,但个别部分还可以改进。懂哥尤其表扬了你隔壁舍那一组,也就是你在上一章提到的开学初说好要一起组队的那几个同学所在的组。
看了他们的文档,你也表示特别惊讶,有部分内容你们只用了一页来描述,而他们用了整整8页多。刚好,懂哥表示,下次作业就是修改本次文档中不足的部分。于是,瓜哥计划参照被表扬的那组的文档,修改你们的文档。
懂哥给的新任务的时间有点长,有十来天的时间。元哥跟BOSS问项目要什么时候开始敲代码,瓜哥跟你都表示,不要急着敲,先把项目理清,前期准备做充足了再开始动手。虽然不管是书本,还是懂哥都是这样说的,你们也确实是这么做的。但你们还是嫩了点,你们确实是不急着敲代码,但你们根本不知道前期准备具体要做什么。
你记得懂哥说过,项目最好可以在框架上完成,不要所有代码都自己敲。你搜索了一些快速开发框架,知道了所谓的框架到底是什么鬼,没办法,你是这学期才刚接触的安卓,确实很多专业名词不懂。你建议瓜哥,项目可以选择在快速开发框架上完成,瓜哥表示他会考虑,但最后他并没有采取你的建议,当然这是后话,暂时不提。
懂哥布置的这次任务,除了修改文档,其他就是计划项目启动后的整体安排计划。由于这基本都属于瓜哥的工作,瓜哥也表示,这期间你们可以先抓紧学习。至于文档的修改,瓜哥只安排了你跟他来完成,因为你跟瓜哥对项目比较熟悉点,元哥和BOSS多给他们时间去抓紧学习下。
文档的修改因为有了参照,并不需要特别多的时间。所以,这十来天的时间内,瓜哥叫你要去学习MeterialDesign,他表示编码的话界面将由你负责。另外他安排元哥学习测试,安排BOSS学习服务器,至于他的话则去学习团队管理工具,安排接下去的计划,完成懂哥布置的其余内容。
一开始,大家的学习效果并不是很好,因为只给了一个学习方向,没有什么期限,没有什么要求,大家都学习得很慢。瓜哥跟你讨论说,这样不行。于是,瓜哥想出了一个办法,由他来给大家布置任务,限定大家在要求的时间内根据所学的内容做出一个小Demo,你表示同意。但你还是太高估你自己了,零基础的你要理解MeterialDesign是个什么鬼东西就要耗费你一段时间了,更不用说还要会用,会写个Demo出来。
结果,在瓜哥给的期限内,你并没有做出Demo来。在开会时,瓜哥发现,他给你们三个布置的任务没一个完成,他表示很不满意。你跟他说时间太短了,大家都是没基础的,实在是没办法完成。最后,瓜哥服软了,瓜哥表示可能是他布置的任务有点不合理。但其实现在想想,会不会是因为你们太懒了,还没激发出潜力,如果瓜哥当时坚持下去,或许你们的项目能更完美,当然这是后话,暂且不提。
本来瓜哥是想再换种方法,或者考虑要不要逼你们一把。但到这时才发现,已经没时间再去研究了。离懂哥给的任务期限已经很近了,重新看了下懂哥布置的任务要求,瓜哥表示他估计错误了,在截止时间前瓜哥得加班加点可能也才能勉强赶完工。而且由于大部分内容都是瓜哥的任务,你跟元哥反而闲了下来。
看着瓜哥在那急急忙忙的赶工,你也不好意思去打扰他。想帮着完成点什么,可是任务基本都是PM的相关工作,你也不知道你可以做什么。想了想,你决定还是去上课吧。对,上周为了赶上一次作业,你们团队四人均翘了一节课。这周看样子瓜哥还得继续翘,毕竟截止时间就是晚上了。你跟元哥还有BOSS也不知道能做什么,只好上课去,即使是一门很水的课。
BOSS还好,懂哥给的任务还有要求要设计数据库的,这属于BOSS的工作范围内。但BOSS可能觉得时间够了,他也跟着你和元哥上课去。就这样,你们团队就只留下了瓜哥翘课赶工去。或许你们这是很不团结的行为,但没办法,还是雏鸟的你们,碰到这种情况确实没多少经验。
上课时,其实这是一门特水的课,你也听不下去老师讲的内容。之所以过来上课,一是因为你发现自己似乎很闲,二是因为上次的翘课,有学院派人抽点,你被点到了旷课,害怕的你只能乖乖的来上课。想了想,你觉得就留瓜哥自己赶工去似乎真的很不好,重新翻看起了懂哥布置的任务,你想看看自己能做点什么。
懂哥给的任务要求PM学会github的issue及燃尽图等工具,这些瓜哥都在赶工中,你插不上手。懂哥还要求设计数据库,这个交给BOSS。但似乎只靠BOSS解决不了,所以你在课堂上拿了张纸在上面不停地涂涂画画。最后跟BOSS讨论了下,敲定了数据库的设计,接下去就是用懂哥要求的工具实现出来了。于是,BOSS在课还没结束时就匆匆忙忙赶回去赶工了。
人的潜力都是被逼出来的,为了能按时完成懂哥的任务,再难的问题也得上。最终,瓜哥在过了截止时间2分钟后将作业提交了上去。
你看了瓜哥汇报大家的本次任务贡献里,你和元哥贡献均为零。你突然觉得很奇怪,难道瓜哥生气了?也对,毕竟你们三曾扔下瓜哥独自一人翘课赶工。但其实是瓜哥连续几小时的赶工,忘掉了原来本次任务还包括之前他跟你修改文档的工作。事后瓜哥修改完后,在团队里敞开了心扉说,如果对他的汇报有疑问,别憋心里,勇敢说出来。
在这次敞开心扉的谈话中,你发现,瓜哥身上确实有很多需要你学的。你曾想,如果是你作为PM,就算队友的贡献度确实很低,但毕竟是同学一场,你下不了手去真实记录下来,或许会给点感情分。但瓜哥严肃的表示,这是做项目,不是感情用事的时候!你突然惊住了,如果你有瓜哥这种价值观,或许之前就不会因团队人选而烦恼了。
也正是经过这一次的谈话,在日后你们团队中碰到各种分歧时,你们均能勇敢的提出自己的观点,而不是一味的接受瓜哥的安排,这让你们的团队比有的团队更有活力,当然也多了很多冲突,这都是后话,暂且不提。
本次的任务也算是解决了,你们团队的得分属于前列,瓜哥表示很欣慰。懂哥表示,给大家留的前期时间已经结束了,接下去就是开始编程冲刺了。终于要开始敲代码了!
你发现,对于写文档你还是更喜欢敲代码,明天就要开始Alpha版冲刺了,你突然很想大声喊,“Alpha,我来了!”
但你还是没喊出去,毕竟那样太逗比了。元哥问你,要开始编程了吗?你突然觉得这句话怎么似曾相识,对了,十几天前元哥曾问过你一次,你叫他不要急,先学习。你跟瓜哥会先把框架搭好,架构设计好大家再动手。想了想,你突然意识到,又出大事了!
你们这段时间总感觉时间够用,顾着浪,忘记设计架构这事了!你似乎看到了“Alpha”正变成一个带着邪恶笑容的小恶魔,对着你大喊着,“For The Dream,我来了!”
(本章完,预知下章,请猛戳该链接。如果你总是觉得时间够用,总是觉得可以再拖一拖,那么,不好意思,你该醒醒了)