开放原子开发者工作坊 Postmortem of SendsLab

Postmortem of SendsLab

设想和目标1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?  我们的项目解决的问题是校园内部大量学生开发的成果没有发布的地方,无法让更多的同学能够方便的使用到它,同时又有大量的学生在使用校园网内部资源的时候由于信息的匮乏,难以找的自己所需使用的工具的矛盾。  我们的项目的定义是一个适宜学生的项目开发生命周期管理与协作平台以及创新产品集中...

设想和目标

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

  我们的项目解决的问题是校园内部大量学生开发的成果没有发布的地方,无法让更多的同学能够方便的使用到它,同时又有大量的学生在使用校园网内部资源的时候由于信息的匮乏,难以找的自己所需使用的工具的矛盾。
  我们的项目的定义是一个适宜学生的项目开发生命周期管理与协作平台以及创新产品集中发布平台。
  对于典型的用户场景我们在项目早期便进行了充分的描述

 

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

  我们在需求调查和项目计划的过程花费了大量的时间。做了很充分的准备

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

  在计划阶段,我们主要采取的是通过定期会议讨论协商不同意见的处理。每次会议结束都会对提出的问题确定决议。


计划

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

  一直到计划阶段的工作中,除了项目设计文档只完成了初稿之外其他几乎都完成了。没能完成项目设计文档的主要原因有两个。其一,设计方面在即将开发的时候开发者仍然提出了大量技术选择的变动。而开发者声称用旧技术“没有激情”致使不得不在此有所妥协。其二,本项目开发者相比文档,更喜欢用EMail来解决问题,因此没有完成该设计文档。

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

  有,本次项目在技术选择上变化太大,现在看来,初期的技术变化完全没有必要,在这一方面作为PM,当时正确的选择是预留一段时间予以思考,并且在确定之后强硬的贯彻。 

3. 每一项任务都有清楚定义的和衡量的交付件?
  
  对于每一项任务,有着清楚的定义,但是存在的问题是,作为一个第一次合作的团队,我们之间的磨合往往缺乏一些认识层次上的匹配,致使往往在一位要求某种任务定义的时候,令我一位给予的定义是过于抽象层次或者过于具体层次的。
  而衡量的交付件方面做的不好,没能每次都定义好交付结果 

4. 在项目的整个过程都按照计划进行?
  
  项目的需求分析和计划阶段发生太多意外情况导致几乎拖延了一个半月。而项目的开发阶段,几乎是彻底的失败。

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

  预留了缓冲区,但是不够用。而缓冲区的时间是合理的。所以证明是项目过程管理的失败。

6. 将来的计划会什么修改? (例如: 缓冲区的定义,加班)?

  几乎是由PM提出问题,之后召集众人讨论。这一方面有疑惑,肯定有好的多的解决方案。

 
资源

1. 我们有足够的资源来完成各项任务么?
  
  结果证明开发者是极度匮乏的。而在需求分析方面的人员正好,并且适度的通过各种手段调用校内能够利用的人力资源。

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

  PM提出当前任务,对各人进行分工,由个人自行估计时间长短,最后PM约定一个交付时间。精度往往偏差较大。 

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

  空

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

  有,我认为我可以把其中的一部分工作完全交付,但是自己没能充分发挥好队员的特长。

 
变更管理

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

  是的 

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

  在需求阶段有每周定期会议讨论决定,开发阶段使用eMail联系。

 

3. 项目的出口条件 (Exit Criteria)是否得到清晰的定义? 到底什么叫 “做好了”?

  没有清晰的定义。做好了的标准由PM判定能够使用为准。此处是一个漏洞。

 

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

  需求分析阶段虽然效率不高,但是很好的处理了变更。
 

5. 员工是否能够有效地处理意料之外的工作请求?
  
  是的
 
设计/实现

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

  设计工作是在需求调查的基础上完成的。由PM负责,理论上这是不合适的,应该由架构负责,但是对于我们小团队来说PM同时负责架构是可以的。

2. 设计工作有没有碰到模棱两可的情况,团队如何解决的?
  
  设计方面存在太大的疑问,主要源于开发者和架构对于各个层次的定义的预期不同。 

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

  没有,开发未完成

4. 什么功能产生的bug 最多,为什么?

  没有,开发未完成

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

  没有,开发未完成
 
测试/发布

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

  有一个很粗略的用户黑盒测试。

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

  没有
 

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

  准备好了使用一些常用的压力测试工具。
 

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

  没有 

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

  没有,开发未完成

 

转载于:https://blog.51cto.com/morningspark/274863

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐

  • 浏览量 49
  • 收藏 0
  • 0

所有评论(0)

查看更多评论 
已为社区贡献13条内容