73
社区成员
本次博客负责记录团队对软件工程项目FellowEd的反思以及alpha阶段的贡献分分配。
C4996团队选择的项目为基于Vscode的多人代码实时编辑插件,我们先从选题出发,回顾之前选题的流程。
该选题于alpha第一次线下会议由吴牧禧同学提出,当时的情境为:团队需要急切提出一个选题以完成项目书的发布(组队较晚且第一次会议被推迟),团队成员对于该领域并不了解,所以并没有太多思考与意见提出(这或许也与其不高的参与积极性有关)。当时提出的仅仅是一个概念,也就是团队项目是一个可以让用户实时编辑的插件,对于其中涉及的技术栈,工作量,是否易分工合作,并无太多了解。或许这就是导致项目失败的一大原因。
从事后来看,项目的选择与评定对于成功十分重要,这往往决定了后续项目走向与风险。团队在草草选定项目选题后,并没有快速地通过查询资料来获得大致的技术路线,而是在选定后的后续阶段,甚至于到了alpha阶段收尾时,具体使用的框架才被最后敲定好。这或许也和项目的困难度有关,项目中使用的技术栈与校课程方案并无任何联系:
团队使用Typescript而非Javascript来保证项目类型安全,使用语言内容高度工程化,团队内成员只有吴牧禧同学能够熟练使用该语言进行开发。
框架底层技术困难,直接调用框架导致的透明性让开发过程变得比较困难。实时共享编辑主要基于OT
与CRDT
两种技术,团队选择的框架yjs
主要基于CRDT
,这是一种基于数学与分布式的数据结构,尝试学习会妨碍项目进度。
使用框架多且复杂,组合难度大,文档少。在所有框架敲定之后,团队使用了yjs
,zed
,nedb
,vscode
,vue
,websocket
,webview
等框架技术,在事后团队分析认为工作量太大,且比较复杂,之前未曾接触过。
总结如下:
项目复杂且涉及颇多,团队未曾接触相应技术。最重要的是,在项目选题敲定时,并没有快速地对项目具体细节进行敲定,这就导致了后续即使需要更换项目,也无能为力。项目难可以换一个,重点是做到一半才发现做不下去。团队对自身所处情况没有正确的认识,对于团队成员过度乐观,抛弃了现实限制,从而埋下了项目失败的根,或许项目的存在仅仅是现实与需求的trade-off,项目依赖的技术并非最重要,如果脱离了现实,或者脱离了瞄准的需求,是不可能会成功的。
团队按照课程组组队要求,分为alpha阶段与beta阶段两阶段进行开发。由于缺乏对软件工程的认识,团队没有对alpha阶段与beta阶段的职责进行细分,而是粗浅地认为这仅仅只是两个相同的开发阶段。事实上,这只是原因的一部分,只是就开发流程这一部分而言,确实是重要原因。
alpha阶段
课程组要求每个阶段必须召开七次会议,团队成员保留有应付的情绪,所以部分会议线上召开,认为即使少开一两次也是没关系的。这就导致了团队成员不能很好的沟通,并且对推进项目进度产生了极大的困难。在项目难度极大的基础上,更是为项目开发雪上加霜。
事实上,七次会议是远远不够的,按照项目难度与组员情况,应该尽可能做到每日线下会议,在时间冲突时,可以考虑线上会议以及会议记录等选项。将会议全都搁置线上是组织人极其不负责的行为,这样会将每位成员的团队反馈时间拉长到至少两到三天,从而导致团队成员在alpha阶段后都不能很好地明白项目的组成以及自己应做的工作。
beta阶段
beta阶段收到了课程组与助教的帮助,在之后将事务细分给了所有人,但是项目推进的非常缓慢,除去之前所说的原因以外,还包括了部分团队成员不做出任何贡献,核心成员一周无法联系,团员群体摆烂等原因。在beta阶段,除去修复alpha阶段遗留的问题外,提出了 代码评注 与用户评论和对话 功能,在敲定web框架为vue之后,将任务分配给了在alpha阶段贡献较少的成员,在这些成员中,部分成员做出了一些代码贡献,其余成员没有做出任何代码贡献,甚至有成员到结束为止还没有对项目仓库做出过任何提交。
C4996团队是被临时拉起来的队伍,里面什么人都有。😂
C4996团队是剩下的同学被动组织起来的队伍。甚至于绝大部分成员完全不认识其他成员。并且团队中成员类型多样,代码水平并不相同,选择该课程的目的也尽不相同,故而对项目的想法也不相通。由于之前提到的诸多原因,绝大部分组员其实只是被动地接收该选题,被动地接受安排,并没有主动地参与与思考,这其实是一种不负责任的行为(不含贬义)。团队中仅仅举行了少数3至4次线下会议,除此以外没有任何沟通,这在项目管理与开发中是非常严重的问题,并且在beta阶段结束展示时,全队人员总计只有3人到场,beta阶段的展示则是在当天早上草草完成。
在经过分析之后发现,吴牧禧同学是项目的提出者,也是项目的技术负责人;戴波同学是部分阶段项目的管理者,其他同学主要负责项目具体开发。吴牧禧同学技术水平较高,但是由于个人原因导致事务繁忙,从而很多时候无法联系上;戴波同学并不擅长项目的管理与人员沟通,甚至抱有摆烂的心态,事实上这是一个极其容易摆烂不负责任的人,并不关心项目是否实现,将希望寄托在了项目提出者,并且在认为项目人员群体摆烂后选择了彻底的摆烂,导致了后续并没有严格地执行任务分配与管理,甚至没有beta阶段的展示。
一个项目的成功与否,与每一位团队成员相关,也与项目本身相关。从项目的开始,到六周的开发时间,其中充满了太多的错误。同时也希望课程组以后能够在课程中大致地描述往年的项目情况。
经过和部分组员的协商后,C4996团队在alpha阶段贡献分分配如下:
说明: 下面的分数以百分制进行分配,总计占比100。
组员姓名 | 贡献分百分比(%) | 贡献细由 |
---|---|---|
吴牧禧 | 25 | 项目提出者;技术负责人: |
郭骐鸣 | 17.5 | 贡献部分代码;负责部分团队事务; |
戴波 | 17.5 | 贡献部分代码;负责部分团队事务; |
蒋季初 | 10 | 参与项目讨论; |
司亦菲 | 10 | 参与项目讨论; |
王翼博 | 10 | 参与项目讨论; |
易畅 | 10 | 参与项目讨论; |
统计图如下: