PSP总结报告
此作业要求参见:[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2556]
回顾0
所属团队:
团队项目:
项目名称:取件帮
项目地址:https://git.coding.net/zhangjy982/QuJianBang.git(项目地址在evepush分支)
线上形式:微信小程序搜索“取件帮”即可
在本课程(不包括本学期其他课程)中学习和使用的新软件新工具(全称、版本)及链接
墨刀(版本V3.0)使用链接:http://www.modao.cc
微信web开发者工具(版本:1.02.1810250)下载链接: https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html
在本课程(不包括本学期其他课程)中学习、提高的语言、开发平台(全称、版本)及平台链接
语言:
Python、C#、Javascript,css,html,js SDK
平台:
微信公众平台 平台链接:https://mp.weixin.qq.com/
知晓云 平台链接: https://cloud.minapp.com/
回顾一
(1)回想一下你曾经对计算机专业的畅想
当初你是如何做出选择计算机专业的决定的?经过一个学期,你的看法改变了么,为什么?
你认为过去接触到的课程是否符合你对计算机专业的期待,为什么?经过一个学期,你的看法改变了么,为什么?
你觉得计算机是你喜欢的领域吗,它是你擅长的领域吗?经过一个学期,你的看法改变了么,为什么?
看法基本没变。选择考计算机专业的研究生依旧是兴趣,继续读下去则是兴趣加未来的生存需要;接触到的课程比较符合我对计算机专业的期待,例如本学习学的软件工程课程可以很好的锻炼团队开发能力、工程数学课程可以很好的锻炼数学思维能力等;计算机将一直是我比较喜欢的领域,相对本学期开学,自身能力有一定提升,但仍无法说是我擅长的领域,嗯,继续学习吧。
(2)考取研究生,对照前人们走过的路和描述未来发展,现在的你自我感觉你已经具备的专业知识、技能、能力有哪些?
离成为一个合格的计算机学生,在专业知识、技能、能力上还差距哪些?
经过一个学期,你的看法改变了么,为什么?
经过一个学期,已具备的专业知识、技能和能力在原有基础上多了一些团队开发的经验,比如更加熟练学会版本控制,对项目开发流程也更加熟悉等。在技术上算是一方面Python入了个门,另一方面也学会了一点简单的js和css,本科基本没接触过前端开发,本学期的团队项目是一款微信小程序,主要使用类js语言,所以算作是从头学起,现学现用,所幸最后项目也基本实现了最初制定的目标。
距离成为合格的计算机学生,在专业知识、技能和能力上的差距还是主要在于编程能力不够,简单一点还行,稍复杂就手足无措了,以后还是多刷题吧。
(3)每天都是一个人生选择的十字路口,学术研究、工程项目、社会实践 (?) ,不同的选择有不同的努力方向。
对照以上你阅读的前人们的经历,你的选择是什么?经过一个学期,你的看法改变了么,为什么?
在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?经过一个学期,你的看法改变了么,为什么?
针对你的选择,你给自己的本学期的规划是什么?经过一个学期,你的看法改变了么,为什么?
选择依旧是工程项目,毕业之后直接工作。不变的原因很简单,就是不想读博哈哈。
优势相较于本科直接工作的同学来说应该是多在学校待了三年,多了一点基础体系的构建吧(但人家也多了三年的工作经验…)相较于同为研究生的同学,我还没有发现自己的优势,研一上学期过的还是比较迷茫的… 劣势是专业学的不够好吧,论文读的太慢,做实验的能力较差。所以之前的优势似乎都没有了,劣势还是那些劣势。
开学初制定的计划基本完成了。
(4)你对这门课的期待是什么?
你打算平均每周拿出多少个小时用在这门课上?经过一个学期,你的看法改变了么,为什么?
实测结果,每周平均用在本课程上多少小时?
“由于我本周的全部作业还没有完成,所以我只能给出一个大致的估计。最近我每天从18点学习到21点,因此,一周要用到的时间大致为180* 7 = 1260分钟。”
开学初对本门课的时间评估不够精准,主要是因为第一次作业主要是文字编辑工作,比较耗时,而后期作业则主要是编程或者小组开会等,时间弹性较大。因此实际时间比预计要少。
实测结果,每周平均用在本课程上为986分钟,合16.4小时。。
回顾二:
- 5个问题,作业要求 [https://edu.cnblogs.com/campus/nenu/2018fall/homework/2101] 题目3 中提到:
通读《构建之法》,发布随笔1篇,要求列出5个问题,可以是读后不理解的,或者读后反对的。要求有观点、有证据或分析。字数不是直接的考核标准,但是要求长到能把观点表述清楚。
请回顾这5个问题,自己回答一下。当初的困惑是否还在,你现在如何认为,是更深的困惑么?
问题一
我在第六章6.1小节中,读到敏捷开发的原则其中之一是“以有进取心的人为项目核心,充分支持信任他们”这个观点时,产生一个思考。有进取的人确实在项目开发过程中时刻激励着团队成员,但是否一定要以他们为核心呢?我查了一部分资料,关于项目中的核心或者leader,大多有以下几点是必备的:足够的能力;领导能力;合理的相处之道。结合我本科期间开发项目的经验,往往空有热忱并不能很好胜任项目负责人这一身份,确实他们会比较负责的激励大家,但是如果没有过硬的技术水平而团队成员完全的信任该负责人的想法时,则极有可能产生不可预料的后果。所以,我认为上述观点应该修改为,以有进取心且具备领导能力的人为项目核心,充分支持信任他们。
现在依旧认为“以有进取心且具备领导能力的人为项目核心,充分支持信任他们”。
问题二
我在第八章8.3小节中,读到PM可以采用焦点小组、深入面谈、卡片分类以及用户调查问卷等各种调研方式来获取用户需求时,思考这样一个问题:我们想出各种方法来与用户进行极为细致的沟通,但在实际开发中,往往用户的需求并不是只停留在需求分析阶段,当项目已经进行大半部分或者即将完成时,用户又会提出新的需求或者直接推翻原来的需求。我的问题是除了在需求分析阶段更多的诱导客户提出更加详细的需求、开发阶段将核心功能实现的更加完美、增加“惊喜”功能之外,我们还有什么方法可以避免或者补救用户随时抛出的新需求问题。
这一点在本学期的课程中,杨老师很好的给我们演示了该情形。直接告知用户新需求的引入会有哪些好处以及需要改动或者删去的模块,以及增加的开销等。若用户坚持改,那就改吧。
问题三
我在第八章8.5小节中,读到关于针对不同功能所对应的投资力度与用户满意度之间的关系,作者提到“投入和回报不是一个线性的关系,有时投入根本看不到回报”,思考到我们在实际开发之中,大多不会属于会在“无所谓”领域中投入的人,那么在有限的人力财力支持下,该如何权衡“核心功能”、“最基本功能或属性”与“惊喜功能”呢?
该问题邹欣老师给了我一个解答。在此感谢邹欣老师。由于比较赞同邹老师的答案,所以我就直接引用了“当你不确定的时候,可以采用分阶段发布的方法,例如,发布alpha 版本,看看用户有什么反馈,然后再改进。另外,环境也在变化,原来是惊喜的功能(例如手机的多点触摸),后来就是基本功能啦,所以保持小步快跑,不断收集反馈,是一个好的策略”
问题四
我在第十章10.1小节中,了解到有人会想要将自己产品的功能进行无限的扩展,但是书上写道“一味的追求最大的扩展性也会有很多的副作用”,我的问题是这个扩展的度应该如何把握,产生的副作用又是用什么标准定义出来的呢?
现在认为扩展的度应该停留在判断对用户是否有利的基础上。而副作用应该是以该扩展功能是否浪费人力物力财力以及影响项目进度为标准衡量的。比如本学期我们小组的微信小程序“取件帮”,原本计划是在Final阶段增加一个用户地址管理功能,可以添加收件人收件地址和电话。但由于Final阶段只有一周的开发时间,而小程序发布需要至少三天的审核时间,所以在时间紧的基础上,加上地址管理的字段较少,用户即便使用了地址管理功能,还是要自己手动添加快递信息的各种描述等,所以最终源于“字段过少”的原因我们放弃了地址管理功能,也避免了小程序发布不及时的副作用。
问题五
我在第十六章16.1.6小节中,读到“IT界的人士有时候会把‘功能的增加’和‘技术的创新’等同起来。但是功能的整合被很多人忽视了。”,我有这样一个问题:功能的整合是否属于技术的创新呢?,我查询了资料之后了解到这样一个名词:整合创新,即有效集成各种要素,更多地占有市场份额,创造更大的经济效益。结合生活中的具体事例,比如以前我们可以使用相机进行拍照,但是现在手机平板等基本都有相机功能,这给我们的日常生活带来了极大方便。那么这种整合属于创新吗?如果这是创新的话是否只要有用户使用的整合就是一种创新了呢?该如何评价这种整合呢?
现在的看法是:手机平板整合的拍照功能算作一种创意,因为是对用户有真实作用的。但是并不意味着只要有用户的整合就是一种创新,而应该是能为用户带来实际作用的整合算作一种创新。
2. 请根据本学期的学习、收获、困惑,再提出5个问题,可以是读后不理解的,或者读后反对的。有求有观点、有证据或分析。体验一下,这5个问题,是不是更有深度了 。
问题一
《构建执法》第六章敏捷流程提到敏捷开发的第六条原则是“无论团队内外,面对面的交流始终是最有效的沟通方式”(P114)。这一段初读时并不认可,但现在一个学期过去,我开始比较赞同该观点。本学期团队开发开过四十二次站立会议,事实证明面对面的沟通确实非常有效,对比在微信群里讨论效率更高。
问题二
《构建执法》第九章项目经理中的第三小节提到一个合格的PM,需要具备观察、理解和快递学习能力;分析管理能力;一定专业能力以及自省的能力(P197-198)。其中对于专业能力的描述中对于写代码的要求并不高,那么是否意味着(像我这样)熟悉项目但是编程能力一般的人可以选择去做一名产品经理呢?
问题三
《构建执法》第十章提到定义典型用户会强迫我们在考虑问题时从用户的角度出发(P215),我们小组在需求分析时也设置了典型用户和典型使用场景,但最终的产品还是主要从大部分用户角度出发的,并未兼顾到定义的所有典型用户。因此疑问是,是否在软件开发时要兼顾到所有的典型用户,如果做不到只考虑到大部分用户是否可行?
问题四
《构建执法》第十三章提到“探索式测试”可以用来衡量当前测试用例的完备性(P287),这一点从未尝试过,学到了,以后试试。
问题五
《构建执法》第十六章提到创新者不是冒险家,而是从错误中恢复出来并继续努力,也就是屡败屡战(P360)。问题在于创新要坚持能够从多次失败中恢复并继续努力。可是失败的次数太多就越来越难坚持,这一点要怎么克服呢?
3. 回忆整个学期,你有什么话想对后来的学弟学妹们说。
作业刚布置下来的时候可能看上去非常复杂与困难,但只要耐心分析,认真去做。其实这些作业还是能够优秀完成的。
团队开发的时候一定要开好站立会议;分工要结合个人能力与兴趣。
4 . 如果重新来过一次,你打算做哪些(技术上,而不是态度上的)改变--基于希望得到什么样的更好结果,你才希望这样改变的;更重要的是,你根据什么估计这些改变会有预期的结果。
主要谈一下团队开发吧。
原型还是坚持要做的,但是直接拿ps做就好了,本学期一开始用墨刀做原型过于浪费时间,至于逻辑流程完全可以拿思维导图解决的。这样就可以节省很多时间早早开始写代码。
如果再来一次我们可能会提高项目进度,争取把读取快递短信进而分词的功能实现,这样的话用户就不用手动录入快递信息,将带来更好的用户体验。
5. 终于我们即将不再是师生。当你结束本课程,你和我就站在同样的位置上,我将不再基于学校授权和知识、经验 (年龄?)上的优势而对你的自由有任何干扰。除发布及成绩以外,我最后一次行使教师特权: 请问你有什么要对教师 (我)说的,建议、抱怨、希望……多谢。
感觉杨老师做的非常好,感谢您的付出,没有什么建议和抱怨,希望老师工作顺利。
总结
1. 代码总量,平均每周代码量
代码总行数为2047行,共计十一周,平均每周186行。
2. 博客字数总量,平均每周字数
博客字数共41548字,共计十一周,平均每周3777字。
3. 根据PSP,平均每周在本课程中所用时间(是的,请再回答一次)多少小时。
共计10853分钟,共计十一周,平均每周986分钟,合16.4小时。
4. 进度条总结: 遍历每周知识点,以周为单位做如下表格。
起止时间 |
提交PSP例行报告时总结的知识点 |
现在回顾该周收获的知识点 |
2018.9.12-2018.9.17 |
软件开发的生命周期;PSP;需求分析;软件测试与维护 |
本周主要读《构建之法》回顾了一下软件工作的知识点以及回答了一些博客问题。 |
2018.9.21-2018.9.24 |
代码复用,软件测试,PSP,版本控制,命令行,控制台,重定向 |
本周主要做了词频统计作业,并使用了版本控制。 |
2018.10.1-2018.10.8 |
代码复用,单元测试,PSP,版本控制,规格说明,结对编程,代码优化 |
本周主要是结对编程完成了四则运算的作业;效能分析词频统计作业以及单元测试四则运算。 |
2018.10.10-2018.10.16 |
PSP,团队开发,需求分析,燃尽图,站立会议 |
本周是团队开发选题阶段,主要确定了选题与准备选题介绍。 |
2018.10.17-2018.10.22 |
PSP,团队开发,燃尽图,原型设计,站立会议 |
本周是α阶段第一周,主要完成了数据库的部署和原型以及一些静态页面的设计 |
2018.10.23-2018.10.30 |
PSP,团队开发,燃尽图,站立会议 |
本周是α阶段的第二周,主要继续写页面功能和准备α发布。 |
2018.11.2-2018.11.6 |
NABCD分析;事后诸葛亮会议; |
本周是α互评,主要测评其他几个小组的产品以及自己小组召开事后诸葛亮会议。 |
2018.11.14-2018.11.20 |
站立会议;版本控制报告;代码规范; |
本周是β阶段第一周,主要继续开发项目和编写版本控制报告。 |
2018.11.21-2018.11.27 |
站立会议;回归测试 |
本周是β阶段的第二周,主要继续写页面功能和做回归测试准备β发布。 |
2018.11.29-2018.12.4 |
NABCD分析;事后诸葛亮会议; |
本周是β互评,主要测评其他几个小组的产品以及自己小组召开事后诸葛亮会议、收集用户使用报告。 |
2018.12.5-2018.12.11 |
站立会议;功能测试;回归测试 |
本周是Final阶段,主要完善了项目功能、为最终发布做准备、贡献分配、收集用户使用报告。 |
5. 时间分配堆积柱状图。如图所示,给出每周的时间分配,数据来源是每周的PSP。(时间颗粒度:分钟)