做这个项目的背景、意义是什么?要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?
项目的背景是随着现在网络普及,社交变成了年轻人的一大重头体验,在众多社交平台中,注重隐私性和私密性的社交平台很少,我们要做的就是单纯性和隐私性并存的社交平台。
意义:意义在于能够提供一种隐私性的社交平台,当今的社交平台其实并不是一个完全开放的世界,人们在公共空间越来越大的同时,也愈加需要自己的个人空间。
解决的问题(按特性来定义):
①交互性:用户不仅仅只是能够发表帖子、点赞、评论,还可以使用时间轴记录生活,供个人回忆。查看地图,获取热点区域。
②直观性:地图的深浅颜色快速获取最活跃的周边信息、生活分享或美食评价。不再迷惘于广大的城市,而没有目标。
③单纯性:追求更为单纯的分享,而不是参与商业性的带货行为。不必在浏览他人分享时,让广告映入眼帘。
④隐私性:提供匿名发帖、匿名评论的功能,无需创建多个小号来宣泄烦恼,减少多个账号切换的繁琐。
典型用户使用场景描述:某22岁女大学生在和同伴出去吃火锅的时候,想要分享这一部分的生活,于是打开daily6+1后发帖,选择自己想要关联的地区,于是这一帖子就被加到了这个地区,大家点进这个部分的地图的时候就能看到她发的“火锅贴”,与此同时,她又把这份帖子关联到了自己的时间轴动态,戳上标签,方便之后打开时间轴后对生活进行回顾。
项目达到目标了么(原计划的功能做到了几个?在原计划之上是否有所拓展)
和alpha阶段相比,团队软件工程的质量提高了么?在什么地方有提高,具体提高了多少,如何衡量的?
设想用户量是多少, 用户对重要功能的接受程度和我们事先的预想一致么?
有什么经验教训? 如果历史重来一遍,我们会做什么改进?
和alpha阶段相比,每天是否时间规划的更好?
团队在beta阶段是如何解决队友对于计划的不同意见的?
①提出观点:在站立式会议上提出自己的问题以及观点,提出设想的方案。
②自由讨论:有想法的人提出自己的观点,其他人听取意见,有想法继续讨论,直到所有人都表达完自己的观点为止。
③最终决断:最终决断权交付在组长手中,最终的结果都较为合理并高效,能够让组员按需完成
你们原计划的工作是否最后都做完了? 如果有没做完的,为什么?
是否每一项任务都有清楚定义和衡量的交付件?
项目是否出了什么意外?有什么风险是当时没有估计到的,为什么没有估计到?
在计划中有没有留下缓冲时间,缓冲时间有作用么?
我们学到了什么? 如果重来一遍, 我们会做什么改进?
有足够的资源(可以是时间、开发资源等)来完成各项任务么?
各项任务所需的时间和其他资源是如何估计的,精度如何?
和alpha阶段相比,测试的时间,人力和软件/硬件资源是否足够? 对于那些不需要编程的资源 (美工设计/文案)是否低估难度?
变更的组员工作如何?如果未变更是否项目完成效率会更高?变更的组员学到了什么?对于可能的变更是否能制定应急计划?
有没有感到某个成员做的事情可以让别人来做(更有效率)?有什么经验教训? 如果历史重来一遍, 你们会做什么改进?
小组的成员水平都比较接近,工作的分配难度也比较接近,如果把A的这部分分配给B可能效率会更好,但是对B来说,他其余的工作量分配给别人未必效率会更高,团队是一个整体,我认为单这样考虑未必合适。
①人员安排:这次的项目开发难度主要在于前端,开发过程中才发现前端任务较重,导致后期后端任务完成,前端任务还在开发或者测试,必要的话需要作出人员调整。
②精度提高:这在项目完成的各个部分,都能体现到细节的重要性,单单完成功能实现,在使用时才发现到许多不足之处。需要通过提高任务的精度,提高效率和质量。
项目是否经历重构?为什么需要重构?
团队是否运用单元测试(unit test),测试驱动的开发(TDD)、UML, 或者其他工具来帮助设计和实现?这些工具有效么? 比较项目开始的UML文档和现在的状态有什么区别?这些区别如何产生的?是否要更新UML文档?
①单元测试:单元测试的创建更简单,维护更容易,并且可以更方便的进行重复。让后端的代码更加健壮。
②UML:因为在实现过程中,设计上的不断改变,最初的UML能起到的作用较小,甚至需要更新UML文档
什么功能产生的Bug最多,为什么我们在设计/开发的时候没有想到这些情况?
代码复审(Code Review)是如何进行的,是否严格执行了代码规范?
我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
和alpha阶段相比,测试工作有提高吗?在哪些地方提高了?
团队是否有一个测试计划?
团队是否有测试工具来帮助测试?
团队是如何测量并跟踪软件的效能的?从软件实际运行的结果来看,这些测试工作有用么?应该有哪些改进?
测试效果:效果明显,能够在发现错误时及时更改,对程序的实现很有帮助。
改进:添加测试用例的数量,以及改进测试的策略。
在发布的过程中发现了哪些意外问题?
我们学到了什么? 如果重来一遍, 我们会做什么改进?
①测试工具的使用,简化了测试过程,提高效率。
②测试是个枯燥的过程,需要考虑很多边界问题,并且碰到问题,会感到烦心,但解决后也将收获成就感。
③前后端分离的测试,也许会是符合预期的,但整合后,结果不一定如意。需要多考虑整合上的一些问题
团队的每个角色是如何确定的,是不是人尽其才?
团队成员之间有互相帮助么?
当出现项目管理、合作方面的问题时,团队成员如何解决问题?
组员们自我总结
你觉得团队目前的状态属于 CMM/CMMI 中的哪个档次?
你觉得团队目前处于 萌芽/磨合/规范/创造 阶段的哪一个阶段?
代码管理的质量具体应该如何提高? 代码复审和代码规范的质量应该如何提高?
①代码规范:代码规范可以通过编程软件中的插件,来简化这样的过程,不仅比人工自检的效率更高,准确性也更好。
②代码复查:代码复查是有代价的,甚至有时是巨大的,因此代码复查不宜频繁,最好一份代码只审查一次。
所以可以推选出一人专门负责审查和管理代码,从而从管理上有效地提高软件开发的代码质量。
整个程序的架构如何具体提高? 如何通过重构等方法提高质量,如何衡量质量的提高?
其它软件工具的应用,应该如何提高?
项目管理有哪些具体的提高?
①通过站立式会议掌握项目动态与进展,
②通过项目的功能分解让开发进展大化小,更加实际,功能成员的配属能让开发后出现Bug直接追源,快速解决问题
项目文档的质量如何提高?
①需要更多的项目经验,能够准确的判断目前的限制条件能做到什么样的程序规模;
②需要更加细致化的考虑,在设计功能和分工的时候照顾到细节
对于人的领导和管理, 有什么具体可以改进的地方?
①以身作则,不仅需要督促组员,也需要让自身具备说服力;
②要多了解组员的开发进度,掌握整个项目的开发进度,并且对其个人能力有所了解,方便下次配置更加适合他的功能项目。
原文:https://www.cnblogs.com/team6puls1/p/13084408.html