第一次迭代思考总结

第一次迭代已经结束,总的来说收获很大。小组每个人都学习了自己从未接触过的语言,从一开始的试探性编程,到后面逐渐理解,想到一个功能知道从何下手,大家的收获还是很大的。

设想和目标

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

我们软件要解决的问题和目的在需求阶段已经定义明确:统计实时噪声数据,绘制区域噪声地图,提供给用户需要的信息,政府也可以根据噪声数据采取针对性的措施,首先我们选取学校作为试验点。

典型用户:在校学生

典型场景:人行道,马路等人的活动区域

2. 我们达到目标了么(原计划的功能做到了几个?  按照原计划交付时间交付了么? 原计划达到的用户数量达到了么?)

原计划功能:用户可查看实时噪声分贝,实时噪声折线图显示,查看所选择时间的噪声地图

实现情况:

    • 实时噪声分贝功能已基本实现,
    • 除实时折线图的绘制还有难度未实现
    • 查看所选择时间的噪声地图功能因为涉及的算法比较多,实现起来也很有难度,还未实现

交付和用户:软件功能的核心功能-噪声地图显示还未实现,暂时无法投入使用

3. 和上一个阶段相比,团队软件工程的质量提高了么? 在什么地方有提高,具体提高了多少,如何衡量的?

暂未投入使用,用户实际接受成度未知

产品完成度一般,和开始的啥也不知道比起来,离目标当然更近了

4. 用户量, 用户对重要功能的接受程度和我们事先的预想一致么? 我们离目标更近了么?

由于我们的项目需要开发Android客户端,ios客户端和服务器网页,整体工作量比较大,而大家都是之前没有开发经验的,所以项目开发起来相对缓慢。这就导致我们第一次迭代计划实现的功能较少,后续开发压力比较大。

如果历史重来一遍,我一定在创新课程开始之前就把相关知识学好,不然边学边做太慢,而且非常痛苦。后面还有两三周要实现难度比较大的β版本,压力也比较大。

 

计划

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

整个创新课程的团队项目时间不太长,计划的时间也不会太长。而且计划总是赶不上变化,最开始的计划也是根据进度不断调整。

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

计划阶段讨论很顺利,大家的意见都很统一。

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

第一次原计划的内容比较少,alpha版本的计划都做完了

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

设计交互界面的过程中采用了好几种方式结果最后还是没有用上,结合之前的学长SIT项目的经验,结合了他们的数据库设计了一下上传数据的模块结果也没有太大作用。

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

小组开会讨论比较多,还是比较明确的。

6. 是否项目的整个过程都按照计划进行,项目出了什么意外?有什么风险是当时没有估计到的,为什么没有估计到?

组内没有太理解老师所说的第一次迭代的定义,相对来说,开发进度也有一定滞后

风险的话就是熬夜+时间

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

留有缓冲区,第一次迭代差不多在验收前一个星期已经实现,这一周应该可以算做缓冲区。

缓冲区主要是放松,毕竟开发比较累。劳逸结合,才能事半功倍。

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

  在计划中可能要更加细致,第二次迭代需要的功能比较多,因此计划中的完成时间要提前预想并定义好。


我们学到了什么? 如果历史重来一遍, 我们会做什么改进?

如果历史重来一遍,我们会将第一次迭代开发计划调整,更多地关注功能,尽量多实现功能,有选择地忽略布局,在后期补充。


资源

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

时间和资金的资源限制,alpha版本任务也基本实现。

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

时间主要是按任务量估计,时间按各自的安排估计

精度还不错,课本能保持高效且时间安排还比较合理

3. 测试的时间,人力和软件/硬件资源是否足够? 对于那些不需要编程的资源 (美工设计/文案)是否低估难度? 

测试没有系统、详细的安排,做了简单的测试,没有花费很多时间

人力资源比较少,不太足够。

美工做了一些尝试,在后期因为时间限制有选择地搁置了,各种文档的撰写也需要花一些心思,需要全盘考虑整个项目,做一些技术上的预想。

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

没有,有问题大家就讨论,什么问题当场就解决了,不存在滞后的问题。

 


有什么经验教训? 如果历史重来一遍, 我们会做什么改进?

 分工不够仔细、明确,很多时候没有给每个人分配好周任务,对大家配合效率有一定影响。

人员分配有些不合理,对服务器端的工作量有些预估失误,如果历史重来一遍,我们会让正在学javaee的同学去配合做服务器端。


 

变更管理

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

  我们组每周都会多次开会,在着手开发以后只要一有时间大家就都在公寓内咖啡店集中开发,所以沟通比较多。

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

  在第一次迭代计划中有设置功能优先级。

3. 项目的出口条件(Exit Criteria – 什么叫“做好了”)有清晰的定义么?

  应该还比较清晰,主要是根据之前的原型设计和需求文档,基本功能和UI设计好了就算OK。

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

没有提前制定应急计划,小组计划也没有出现大的意外。

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

 大家的及时调整都很棒,对于意外的发生也能做出迅速的反应。

 


我们学到了什么? 如果历史重来一遍, 我们会做什么改进?

我们小组的沟通非常多,这样就能互相了解到相互的进度等,互相促进提高。

改进的话就是希望大家在自己一个人的时候也能有集中开发时的效率。


 

设计/实现

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

整个模式的设计是在项目初期,由pm和老师沟通商定的。

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

开始时有一点模棱两可,后来大家一起讨论得以最终确定

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

网上大量的资源和相应的软件,所以绘图不是问题,主要是要理清之间的逻辑关系和相关的联系

腾讯敏捷开发平台帮助管理项目有巨大的便利性

这些工具都非常有效,帮助巨大。

4.比较项目开始的 UML 文档和现在的状态有什么区别?这些区别如何产生的?是否要更新 UML 文档?

文档更加丰富了,会在项目推进中,不断完善、更新文档。

4. 什么功能产生的Bug最多,为什么?在发布之后发现了什么重要的bug? 为什么我们在设计/开发的时候没有想到这些情况?

目前完成的功能比较少,所以bug还没怎么发现

还没有发布

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

代码复审主要是小组之间互相检查,而我们组在检查其他组时是分文件进行分工,各司其职

严格执行了代码规范。函数命名,成员命名,代码注释,代码组织等都严格查看了。

 

测试/发布

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

没有一个完善的测试计划

受时间和资源的限制

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

我们组由边老师亲自进行了第一次验收,虽然结果不是很满意但是应该也算完成了。

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

暂未考虑。

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

暂未考虑。

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

噪声地图显示功能未解决,暂时不考虑发布。


我们学到了什么? 如果重来一遍, 我们会做什么改进?

 因为还是第一次做项目,经验还不太够,测试方面暂时没有精力、时间考虑。


团队的角色,管理,合作

    1. 团队的每个角色是如何确定的,是不是人尽其才?

小组比较民主,按照大家自己的意愿和特长分配角色,基本人尽其才。

    2. 团队成员之间有互相帮助么? 

两个客户端各分配两个人,这样更加便于沟通交流。同时客户端也和服务器端有协作。

    3. 当出现项目管理、合作方面的问题时,团队成员如何解决问题?

合作问题基本没有,大家都很包容体谅对方。小组成员之间也互相帮助,我们是一个很有爱又可爱的集体~

 

总结:

1.你觉得团队目前的状态属于 CMM/CMMI 中的哪个档次?

应该属于可重复级(Repeatable)

2.你觉得团队目前处于 萌芽/磨合/规范/创造 阶段的哪一个阶段?

磨合基本完成,接下来是规范

3.你觉得团队在这个里程碑相比前一个里程碑有什么改进? 

大家彼此更加熟悉,互相的配合会比之前更有效率。

4.你觉得目前最需要改进的一个方面是什么?

任务分配。

需要将Android客户端的一位同学分配给服务器端开发。

5.对照敏捷开发的原则, 你觉得你们小组做得最好的是哪几个原则? 请列出具体的事例。 

我们组做的最好的我觉得就是小组沟通很多,每周都会多次开会,在着手开发以后只要一有时间大家就都在公寓内咖啡店集中开发。

在团队内部,最具有效果并且富有效率的传递信息的方法,就是面对面的交谈。

猜你喜欢

转载自www.cnblogs.com/gifted35/p/10106447.html
今日推荐