zoukankan      html  css  js  c++  java
  • [软工顶级理解组] 团队规划和任务拆解(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环境进行开发,遇到困难点由前端开发者进行指导。

  • 相关阅读:
    【数据结构】Trie树
    【算法】动态规划经典题之最长公共子序列
    【Leetcode】583. Delete Operation for Two Strings
    【Java】SpringBoot入门学习及基本使用
    【Java学习】调用ByteBuffer.getInt()方法得到808464432
    Install rapyuta Robot Cloud Engine on Ubuntu14.04
    Install rapyuta Robot Cloud Engine on Ubuntu12.04
    怎样下载youtube的字幕
    国内老版本ubuntu更新源地址以及sources.list的配置方法
    配置 ROS 的 apt 源
  • 原文地址:https://www.cnblogs.com/se2020djlj/p/12883294.html
Copyright © 2011-2022 走看看