Alpha阶段事后分析

时间:2022-11-28 16:50:50

Alpha阶段事后分析

设想和目标

我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?

我们软件要解决的问题在我们的项目功能规格书中定义得很清楚。对典型用户和典型场景也有比较清晰的描述。但是问题在于我们在并没有优先去实现课程评价网站的最核心功能,所有工作任务的优先级并没有定义好。

是否有充足的时间来做计划?

我们团队花费了充足的时间来计划每个任务,具体在项目管理可见。我们预估了每个项目的完成所需时间。

团队在计划阶段是如何解决同事们对于计划的不同意见的?

主要通过每日例会和微信群进行沟通,有不同意见时互相讨论最后总结出一套解决方案交付PM并且实施。

计划

你原计划的工作是否最后都做完了? 如果有没做完的,为什么?

我们Alpha阶段的计划的工作最后都已经完成。

有没有发现你做了一些事后看来没必要或没多大价值的事?

这个并没有发现,我们所做的事情都是比较有价值的。

是否每一项任务都有清楚定义和衡量的交付件?

后端的任务有清楚的定义和衡量的交付件。但是前端的任务在这方面来说较难确定,在网页设计的细节和美化方面缺少相关的人员来鉴定。

是否项目的整个过程都按照计划进行?

整个项目按照计划进行。

在计划中有没有留下缓冲区,缓冲区有作用么?

我们Alpha阶段的设定的截止日期为4.18,留下了一周左右的时间用来缓冲。在缓冲区这段时间里,修复了不少测试发现的BUG和用户反馈的BUG,缓冲区还是起到了非常重要的作用。

将来的计划会做什么修改?

在将来的计划中会把UI设计和美工加入到管理中,这是我们Alpha阶段所缺失的。

资源

我们有足够的资源来完成各项任务么?

不管是时间,人力,设施的资源都比较充足。

各项任务所需的时间和其他资源是如何估计的,精度如何?

各项任务的所需时间是各个小组一起商讨确定的,算是比较精确,稍微有点出入但是不会预估太远。

用户测试的时间,人力和软件/硬件资源是否足够?

我们留了一周左右的时间用于推广和处理用户的反馈。在此期间有100多用户参与了产品的使用,这部分的资源比较充足。

你有没有感到你做的事情可以让别人来做(更有效率)?

网页的UI设计和CSS设计让专门的人来做会比较有效率。

变更管理

每个相关的员工都及时知道了变更的消息?

我们采用了石墨文档和issues来管理,每个成员都能很快地知道变更的消息。

我们采用了什么办法决定“推迟”和“必须实现”的功能?

开例会的时候确定了“必须实现”的功能,如果要“推迟”,那么则需要和PM进行商讨才能确定。

项目的出口条件(Exit Criteria)是否得到清晰的定义?

首先,项目中每个任务的交付条件有三:

1,实现理想情况下的所有功能。

2,试用所有典型用户。

3,覆盖所有的边界条件。

其次,在每个任务都按照如上的交付条件完成后,交付给内测用户使用。在处理完内测用户所有的反馈之后,项目即可“出口”。

对于可能的变更是否能制定应急计划?

Alpha阶段并没有考虑到这种情况,不过我们在处理应急情况的时候,会由相关方面的负责人和PM商讨如何解决。比如在网站被攻击的时候,我们小组前端和后端的负责人都和PM进行了紧急商讨,制定了一系列方案来处理应急情况。详见网站被攻击记录

员工是否能够有效地处理意料之外的工作请求?

留给员工们的缓冲时间足够,大家都有充足的时间去处理意料之外的请求。

设计/实现

设计工作在什么时候,由谁来完成的?是合适的时间,合适的人么?

设计工作在我们正式动工完成任务之前就已经确定好了。是由PM,测试,前后端的负责人一起完成的。

设计工作有没有碰到模棱两可的情况,团队是如何解决的?

有很多模棱两可的情况,比如是否需要有“超级用户”等情况,每次遇到这种情况时,团队在微信群中会一起商讨解决。

团队是否运用单元测试(unit test),测试驱动的开发(TDD)、UML, 或者其他工具来帮助设计和实现?这些工具有效么?

有用单元测试和UML图来帮助设计和实现。这些工具是十分有效的,我们可以很精确地找出BUG所在地,方便开发成员找出BUG所在并且修正。

什么功能产生的Bug最多,为什么?

产生Bug最多的是身份验证功能,即登录注册功能。这一项功能是我们在原来的基础上新加的,需要做的工作比较多。

代码复审(Code Review)是如何进行的,是否严格执行了代码规范?

代码复审主要是由前后端负责人进行,按照规范文档执行。

测试/发布

团队是否有一个测试计划?为什么没有?

有总的测试计划,但细节部分因为我们产品本身在做之前缺少一个细的设计,所以得做完才能制定细的测试计划。

是否进行了正式的验收测试?

测试验收目前就是看issue的解决程度和代码覆盖率。alpha阶段做得并不好,验收水平并不高,覆盖率刷得不够高。

团队是否有测试工具来帮助测试?

基本只在用自动化测试工具来进行测试。

团队是如何测量并跟踪软件的效能的?从软件实际运行的结果来看,这些测试工作有用么?应该有哪些改进?

我们通过服务器,CDN,验证码认证的控制台和服务器上的日志测量追踪软件的效能,其截图如下:
Alpha阶段事后分析
Alpha阶段事后分析
Alpha阶段事后分析
Alpha阶段事后分析
Alpha阶段事后分析

我们alpha阶段虽然有基础代码,但基本也是从0开发,开发人员在完成开发工作后,首先会自己测试。但在后续开发中是有用的,能快捷地进行回归测试。改进之处就是需要一套更简便的编写测试样例的手段,不然纯粹的体力劳动太多、太严重了。

在发布的过程中发现了哪些意外问题?

在发布的时候遇到的第一个比较重大的问题便是中文用户名无法登录的问题。

第二个问题是网站在安全性方面欠考虑,被恶意注册过。

总结

总的来说我们组在Alpha阶段项目管理做得比较好,大家各司其职。需要改进的地方在于需要引入专门做CSS和UI设计的同学,来弥补网页美观性方面的不足。

照片

Alpha阶段事后分析