团队任务收获及个人感想
团队任务已经进行了一个多月的时间,我很荣幸能和软剑攻城队的小伙伴们度过这一个月的开发时光。在这一个月的时间里,我亲身经历了一个软件从想法到实现,从创意到实体的过程。同时我也在和组员的共同探索中渐渐明白了如何用工程化的方法去完成软件开发的任务。现在的我对之前读过的一些软件工程方面的文章有了更深刻的见解,一些以前不明白的道理在有了这次小组软件开发的经历之后渐渐有了一些体会。下面就结合之前读过的一些软工方面的文章谈谈我的理解。
个人认为,在团队软件开发的过程中最重要的事情就是团队的分工和协调。一个好的软件开发团队,不仅要有综合素质过硬的队员,更要有良好的团队管理机制,个人认为这种机制主要有三个最重要的方面:队员的分工,队员间的配合以及团队进度的安排。前两个方面是安排的好坏直接决定了整个团队的进度安排。由于之前大家都没有团队开发的经验,对于团队管理并不是很了解,所以一开始在这方面走了一些弯路。项目经理刘乾同学原本想将开发工作与管理工作尽量分开进行,让PM尽可能承担统筹安排的任务而不要涉及具体的开发任务。然而由于小组成员能力的问题,一些关键的技术问题还是需要他来解决,这在很大程度上分散了PM作为管理人员的注意力。针对这个问题,我们小组进行了一定的分工调整,将一些具体进度安排工作交给开发人员去协调,PM只掌握总的进度,同时PM也兼任一些攻坚任务,这样PM既随时了解了组员的开发状态,又能够发挥其在程序开发方面的能力,可谓是一举多得。经过此番调整,我们开发人员有了更大的自由度,尤其对于一些工作量较大的任务,我们可以根据重要程度自由安排完成时间(在不影响团队整体进度的情况下),这使得团队自下向上有了更高的自由度,从而增加了团队软件开发的效率。
同时队员间的配合也是一个团队工作质量的重要决定因素。我们小组开发的项目是物理实验报告生成网站,在这个网站下,用户可以根据自己输入的实验原始数据生成一份自己独有的实验报告。这就要求我们掌握每一个物理实验的具体信息(包括预习报告,数据处理,配图,公式等),这个信息采集的过程式十分漫长的,因此我们决定先重点做好部分基础实验。在实验信息的采集中,我们采用了并行式的任务分配模式,即多个组员同时处理一个报告的不同方面,我负责整理文字,黄雨萌同学负责处理公式及表格的内容,这就要求我们两个人在任务时间协调上要尽量保持一致。在实际工作中,我发现这样的协调是比较困难的,这就考研了组员间的配合能力,如果组员间缺少沟通,就极易导致因为沟通不畅而引发的任务衔接不当问题,例如有时候实验公式已经处理完但是我的报告还没有写完。在经历了几次教训之后,我们决定在两人开始任务之前先确定好各自的完成时间,一有变化及时通知对方一遍做出调整。在经过一定的磨合之后,这样的配合机制保证了我们两人任务都能够顺利完成。
软件的工程化开发是一个系统性的过程,仅凭这一个多月的学习是远远不够的,我希望自己能在今后的开发过程中继续加深对软工的认识,掌握更多工程化方法。长路漫漫,我很庆幸能够有软剑攻城队的小伙伴相伴!