一、组长博客:地址

二、Postmortem模板

设想和目标

1、我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?
我们要解决的问题是让大学生可以通过福鱼网站将暂时无用的商品,如看过的教科书、购买后没怎么穿过的衣服、离校后无法带走的电动车等,将它们卖给有需求的人,使这些物品的价值得到充分的利用,让买家卖家都得到好处。
典型用户场景:福大大四毕业生小林即将去外省工作,但是无法将电动车带走,于是使用福鱼网站上架自己的电动车,而大一新生小张刚好需要,于是两人通过福鱼协商,并交易成功。

2、我们达到目标了么(原计划的功能做到了几个? 按照原计划交付时间交付了么? 原计划达到的用户数量达到了么?)?
达到了一部分的目标并按照计划时间交付,尚未上市,暂时没有用户。

3、用户量, 用户对重要功能的接受程度和我们事先的预想一致么? 我们离目标更近了么?
暂时没有用户量

4、有什么经验教训? 如果历史重来一遍, 我们会做什么改进?
经验教训:错误估计自身的空余时间及学习能力,促使成果不尽如人意。
如果历史重来一遍,我们将会将目标定的低一些。

计划

1.我们是否有充足的时间来做计划?
由于都没有什么经验,对于计划一开始显得有点手足无措,所以花很多了时间来做计划。

2.团队在计划阶段怎么解决同事们对于计划的不同意见?
在这个阶段中,我们进行了讨论,提出自己的看法,有的人提出应该实现什么功能,在这个过程中是否会出现什么问题等等,对于不同的意见,使用少数服从多数的方式来解决分歧。

3.你原计划的工作是否最后都做完了?如果没有为什么?
没有完成,网页功能未实现,因为没有接触过,一开始学也不知道知道是学什么,所以没有完成。

4.有没有发现你做了一些事后看起来没必要活没有多大的事?
有啊,因为第一次学,不知道首先学什么,往往学了一个中途又要去学另一个。

5.是否每一项任务都有清楚的定义和交付件?
部分有,因为成员没有开发经验,所以比较混乱吧。

6.是否项目的整个过程都按计划进行,项目出了什么意外?有没有什么风险当时没有估计到?
大家都没有经验,需要学习html,css等新的知识,有的花费了较多时间。事先没有这样的经验,大家开始都忙无头绪,从最容易的入手,有些情况没有事先考虑只能进行百度或者询问大佬。事先没有考虑分开做的原因,遇见的问题也各种各样,在运行时出现bug,没有考虑系统兼容性,修改了很多次。因为大家都没有开发经验,在进行编写时也遇见新问题,再一次进行百度和询问大佬。

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

8.将来的计划会做什么修改?
留下缓冲区,加班熬夜完成应该的任务。

9.我们学到了什么?如果重来一遍,我们会做什么改进?
相信这次经历给我们的成员带来了挺多东西,过程虽然真的很艰难,如果还有下一次,我们应当在讨论时更加深入一点,这样成果可以更好

资源

1、我们有足够的资源来完成各项任务么?
时间资源:课程安排,作业安排,考试安排太多,没有足够的时间资源;人力资源:足够,但没有大佬;软件/硬件资源:通过自身努力和借鉴别人优秀的模板,以及全体成员出资,基本足够。

2、各项任务所需的时间和其他资源是如何估计的,精度如何?
时间依据分配人力以及完成时限动态安排,其余资源根据成员个人专业度和熟练度安排分配。

3、测试的时间,人力和软件/硬件资源是否足够? 对于那些不需要编程的资源 (美工设计/文案)是否低估难度?
​软硬件,人力基本足够,时间资源略有不足。关于美工设计与文案确实有所低估,所需资源分配不够充足。

4、你有没有感到你做的事情可以让别人来做(更有效率)?
前端安排的人不少,可以安排更多的后端人员。

5、有什么经验教训? 如果历史重来一遍, 我们会做什么改进?
经验就是看视频教程得开倍速,要边实践,多记笔记多百度。如果历史重来,我们会在具体安排上更精确,设计更精确的各项目完成时间及要求以便作维护修改。

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

  • 2.我们采用了什么办法决定“推迟”和“必须实现”的功能?
    我们采用了可视性,关键性为重的评判标准,即决定了实现过程更清晰,作用更关键的功能作为“必须实现”的功能(比如前端的页面设计),其次尽量选择简单易上手的功能,而其他暂时难以实现的功能则作为“推迟”的功能。

  • 3.项目的出口条件(Exit Criteria – 什么叫“做好了”)有清晰的定义么?
    我们对出口条件的定义是:项目经过多次测试与完善,运行过程中没有明显的bug,能够保证users用户正常使用。

  • 4.对于可能的变更是否能制定应急计划?
    暂时没有制定应急计划,对于(未来)可能出现的变更,我们会对相关成员进行积极的沟通。

  • 5.员工是否能够有效地处理意料之外的工作请求?
    鉴于我们组会议时分工明确,且基本没有负担太多的工作,意料之外的工作请求比较少,因此对于突发情况还是能够接受的。

  • 6.我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
    我们学到了:实现功能时应从简单的功能入手,循序渐进;对成员分工时,应该有大致的方向和目标,根据每个成员擅长的方向分配适当的任务;有意外变更时,应当积极与相关成员沟通,努力解决。
    改进:组内成员需要更多的沟通,需要更多的提速,以便更早完成任务,及时对接。

设计/实现

1、设计工作在什么时候,由谁来完成的?是合适的时间,合适的人么?
设计工作在上周,由组长林涛完成,是合适的时间和合适的人。

2、设计工作有没有碰到模棱两可的情况,团队是如何解决的?
在设计过程中,对于如何安排功能板块、如何实现网站功能等,由于大家都是新手,不知道要如何去完成。通过参考别的网站的模块设计和功能,学习各种教程,最后做出自己的网站设计。

3、团队是否运用单元测试(unit test),测试驱动的开发(TDD)、UML, 或者其他工具来帮助设计和实现?这些工具有效么?
使用了ProcessOn的uml工具,它很好的帮助将需求和系统的体系架构转化成代码和可视化。

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

5、什么功能产生的Bug最多,为什么?在发布之后发现了什么重要的bug? 为什么我们在设计/开发的时候没有想到这些情况?
首页的商品秒杀倒计时,由于要自动计时,过时间之后会继续计数,尚未完成下一步的操作。在开发时由于并未做过类似的倒计时商品,对于如何设置倒计时没有概念,所以把握不好。

6、代码复审(Code Review)是如何进行的,是否严格执行了代码规范?
采用结对编程的方法,由另一位同学去审查代码寻找问题,严格执行了代码规范。

7、我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
学习到了如何将构想实现出来,包括网页模块设计、功能实现,以及如何运用uml工具等辅助。如果重来一遍,会在前期考虑的更加细致一点,比如所需要的功能、商品的分类等,提高网页的可操作性。

测试/发布
  • 团队是否有一个测试计划?是否进行了正式的验收测试?
    有测试计划。未进行正式验收测试。

  • 团队是否有测试工具来帮助测试?
    因为是Web开发,所以前端可以直接使用Chrome的开发者工具或者FireFox的开发者工具、FireBug插件进行调试。性能测试工具有LoadRunner、JMeter等。后端数据库测试工具有sql server profiler等。

  • 团队是如何测量并跟踪软件的效能的?从软件实际运行的结果来看,这些测试工作有用么?应该有哪些改进?
    查看各个函数耗时、内存占用、CPU占用率等,找出性能瓶颈;以及在实际访问页面时页面排版、页面跳转是否出现Bug。在数据库测试中,测试查找最占用时间、最占用系统资源的查询语句,检测是否存在死锁等。测试过程中找到的大部分问题已经进行改善优化。

  • 在发布的过程中发现了哪些意外问题?
    产品暂时还没有发布,先进行本地的测试。以后发布计划租用云服务器,搭建Web服务器,能够进行线上访问。

  • 我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
    学到了HTML、JS、CSS等Web前端开发的必备知识;数据库的设计和实现,数据库软件的使用;以及前后端的交互过程,网页的运作过程,对整个Web开发的流程有了更加深入的了解。如果历史重来一遍,会更加合理安排时间,安排计划,加强队员之间的交流。

团队的角色,管理,合作

1.团队的每个角色是如何确定的?是不是人尽其才?
因为团队主要成员大多数都为无经验的新手,我们角色的确定是先按经验分,再按兴趣分,是不是人尽其才我们不敢确定,但是我们团队尽量做到不强迫组员
原则,以致于影响团队积极性。

2.团队成员之间有互相帮助么?
这是肯定有的,总有学得快的或是之前有小部分经验的人存在,互相询问和互相讨论也是我们团队学习技术的方式之一。

3.当出现项目管理、合作方面的问题时,团队成员如何解决问题?
出现这一类问题时,我们会先线上讨论,如若无果,会召开线下会议,按照多数人的意愿来解决问题,就算在客观角度里是效率更低的方法,我们比起效率会
先注重团队协调性。

4、个人感谢部分。
每个成员明确公开地表示对成员帮助的感谢 :
我感谢王德钊同学对我的帮助, 因为在我忙于校选课论文时,他帮我整合评分表。

5、我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
如果重来一遍,我会一开始就确定分工,分前端、后端两个小组,各再分配一负责人;找时间让大家出来一起写代码、赶项目。

总结:

1.你觉得团队目前的状态属于CMM/CMMI中的哪个阶段?
我认为我们的团队处于第二个阶段,即管理级,我们只是遵守了当时项目成立时的计划,按计划分工,没有系统的管理措施,大多数问题靠投票解决。

2.你觉得团队目前处于 萌芽/磨合/规范/创造 阶段的哪个阶段?
我认为我们团队目前处于磨合阶段,毕竟当时组队时临时拼凑的,大家不能说上人尽其才,因为都不了解,但是分工没有什么异议,所以我认为处于磨合阶段。

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

4.你觉得目前最需要改进的一个方面是什么?
我认为是管理方面的,因为我们不能说是一个系统规范的团队。大家只是组队,重要部分拿捏靠组长和投票,不算一个规范的管理方法。

按照敏捷开发原则,我们小组做的最好的应该是激励项目人员,大家都是从零开始,对于犯错误的包容度较大,事例说不上具体,因为大家在代码错误出BUG的时候都是互相检查鼓励的。

三、答辩总结

1.贡献比例

组员 分工 贡献比例
林涛(组长) 规划项目进程、找资源、页面制作、分配任务、审查文档、写博客 20%
童圣滔 页面制作、部分文档编写 9%
林红莲 页面制作、ppt制作 15%
潘雨佳 页面制作、ppt制作 10%
于瀚翔 数据库构建、演讲、展示 9%
袁正闻 数据库构建、部分文档编写 4%
吕瑞峰 页面制作、部分文档编写 8%
蒋梦迪 部分文档编写、美术素材收集 4%
王德钊 部分文档编写 4%
吴友昆 页面制作、部分文档编写 8%
覃鸿浩 美术素材收集、设计评审表、评分 9%

2.现场答辩得分

  • 平均得分:89.5
  • 总分(乘以60%):53.7

3.提问回答

  • Q:功能如何实现?
    A:买云服务器,搭建web服务器,实现数据库与前端相接。

  • Q:如何推广?
    A:线上空间转载。

  • Q:如何盈利?
    A:广告。

4.PSP与学习进度条

个人PSP
PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 30 20
Estimate 估计这个任务需要多少时间 20 10
Development 开发 30 30
Analysis 需求分析 (包括学习新技术) 30 20
Design Spec 生成设计文档 10 10
Design Review 设计复审 10 10
Coding Standard 代码规范 (为目前的开发制定合适的规范) 20 20
Design 具体设计 30 30
Coding 具体编码 80 60
Code Review 代码复审 30 30
Test 测试(自我测试,修改代码,提交修改) 30 30
Reporting 报告 10 10
Test Repor 测试报告 20 20
Size Measurement 计算工作量 10 10
Postmortem & Process Improvement Plan 事后总结, 并提出过程改进计划 20 20
合计 370 330
个人学习进度条

||||||
|:--|:--|:--|:--|:--|:--
|第N周|新增代码(行)|累计代码(行)|本周学习耗时(小时)|累计学习耗时(小时)|重要成长|
|1|0|0|4|4|学会用markdown写博客|
|2|324|324|30|34|学习了python的基础用法,json格式,正则表达式和用request库调用API|
|3|0|324|7|41|学习了使用墨刀和ps,并进行原型设计,设计出福建十三水原型|
|4|360|684|15|56|学习了很多python函数的用法,也学会如何将思路用代码表示出来|
|4|1200|1884|15|71| 学习了HTML、CSS和js |
|5|160|2024|4|75|学习了如何下载第三方库,大致了解了爬虫|
|6|150|2174|7|82|继续学习HTML和CSS|
|7|100|2274|4|86|实战学习了HTML|