[软工顶级理解组] 团队规划和任务拆解(Beta)

需求再分析

在Alpha阶段,我们的产品得到了用户的广泛好评,但是还是存在一些问题。

  • 登录不稳定,登录速度慢等问题:这是北航VPN本身的不稳定和服务器带宽性能的限制导致。
  • 功能太少,没有核心功能:我们规划的核心功能“课程评价”在Alpha阶段没有上线,因为我们是完全从头开始开发的软件,需要一些时间对软件进行“打地基”,牺牲了课程评价的时间去开发了版本更新等功能。
  • 界面不够美观:设计层面上存在一些不美观的地方,用模拟器展示的效果也不太好,画面比较模糊。

Beta阶段我们会针对以上三个问题进行改进,完善我们的软件。

功能增减

Beta阶段,我们不会删除原有的功能,而是会新增一些功能,新增功能如下:

类别 功能 说明
面向用户 DDL截止推送 当用户课程中心DDL即将截止而作业还未提交时,软件会在用户的手机上进行消息提醒,从而提醒用户提交作业。具体的提醒时间可以设置。
校历功能 显示北航校历,显示教学周和自然周的对应关系,显示节假日日期,与DDL功能有机结合
课程评价 对于数据库里的所有课程,用户可以对课程进行评价,打分,发表评论,分享意见,且意见可以得到其他人的赞或者踩。大家的评论全部匿名。
意见栏 在软件中设置意见反馈,如果用户对软件有改进建议可以实时反馈。
iOS适配 将软件移植到iOS端,并尝试上架App Store。
界面美化 听取用户建议,将界面打磨的更好看
面向开发者 爬虫重构 使用requests来取代如今的selenium来重构爬虫,加快响应速度,减少请求量,减少内存占用
爬虫状态监控 爬虫无论正常运行还是出现异常,均将信息返回给后端,让开发者知晓爬虫状态

管理改进

上一阶段,我们的项目管理有许多不足的地方,也有许多制定了但没有完全执行的规则。这次借着新人的加入,对之前的项目管理进行一定的反思和修改,再次重申管理制度。

  • 代码风格

    • 前端

      基于Android Studio进行开发,而AS又使用了IDEA的框架,有Checkstyle插件,但是没有Dart语言的现成的配置,所以前端在编程时自觉遵循OO课程中Checkstyle的相关规则。

    • 后端&爬虫

      基于Python进行开发,引入pylint和pylint-django进行代码风格检查。pylint的代码风格审查非常严格,对文件、类、方法的注释也有要求,请尽力修改代码,成为拥有良好代码风格的程序。

  • 目录管理

    • 完善.gitignore和README.md,保证代码中不存在无用文件(如缓存文件、数据库迁移文件等)。
    • 文档放在GitHub Wiki中,并建立Wiki目录,设置好对应的跳转链接。
    • 文档包括但不限于:编译运行指导文档、接口规格文档、错误信息文档、更新日志文档(前端Release时更新)
    • README.md中存放的内容:Introduction,How to Start,Wiki Link,这些信息需要能帮助项目无关者在一无所有的环境下配置成功。后端提供的信息需要能够满足持续部署/集成的条件。
  • 代码签入

    • 无论前端后端,master分支都是不能直接进行push,PM在GitHub上也进行了对应的设置,任何成员都无权直接修改master分支。
    • 所有代码签入全部使用Pull Request进行。每个Pull Request由修改代码的开发者亲自开启,经过郭骏或单彦博的代码复审后签入。根据Alpha阶段助教的意见,我们需要在Pull Request中体现出有Review,可能是多次commit,亦或是一些comment。
    • 如果PR是在仓库中进行,每次合并后会删除原有分支。
  • 任务管理

    • 所有的任务以Issue形式发布。每个Issue至少带有两个标签:bug/enhancement,以及size,分别标记Issue的类别和工作量。非计划阶段,而是后期加入的Issue也需要设置size。
    • 如果Issue的任务精确到人,请设置Assignee。
    • 如果Issue的任务需要通过签入代码来完成,请将PR与Issue进行绑定。
  • 错误处理

    • 前端、后端、爬虫务必同一错误处理格式。
    • 错误处理信息有必要写入Wiki文档,注释中仅建议提及。因为错误信息是给不同部门的开发者看的,其他开发者不会看源代码的具体实现。
    • 对于认为“不可能”发生的错误也需要处理,例如http参数错误。调试bug的阶段,任何bug都有可能出现,需要将错误信息局部化、最小化,且有明确的信息提示。磨刀不误砍柴工。

任务分解

任务分配依然延续之前的分配规则,以下是GitHub上的Issue分配图。

人员管理

本阶段不尝试新的分工。新加入的同学直接接手离开同学的前端开发工作。

由于前端开发本身由3个人进行,所以即使少了一个人,也没有什么不可或缺的技术被带走。新人入会培训有两位老开发者进行指导培训,入门上难度相对较低。

新人入会的学习,主要是重复Alpha阶段前端开发者的学习经历,学习Flutter框架和Dart语言的使用,配置Android Studio环境进行开发,遇到困难点由前端开发者进行指导。

posted @ 2020-05-13 16:42  软工顶级理解组  阅读(293)  评论(2编辑  收藏  举报