一、回顾0
1.1 所属团队及链接
团队名称:可以低头,但没必要
链接:https://www.cnblogs.com/kydtdmby/
1.2 团队项目及链接
团队项目:《取件帮》微信小程序
链接:https://git.coding.net/zhangjy982/QuJianBang.git
1.3 在本课程中学习和使用的新软件新工具(全称、版本)及链接
软件及工具:微信开发者工具,Pycharm
链接:微信开发者工具:https://developers.weixin.qq.com/miniprogram/dev/devtools/devtools.html
Pycharm:https://www.jetbrains.com/pycharm/
1.4 在本课程中学习、提高的语言、开发平台(全称、版本)及平台链接
学习及提高的语言:Python,HTML
开发平台:微信公众平台,知晓云
链接:微信公众平台 https://mp.weixin.qq.com
二、回顾1
我的第一篇博客链接:https://www.cnblogs.com/94V587/p/9657231.html
2.1 回想一下你曾经对计算机专业的畅想
当初你是如何做出选择计算机专业的决定的?经过一个学期,你的看法改变了么,为什么?
没有改变,时至今日计算机行业依然蓬勃发展,我对计算机专业的热爱不减。
你认为过去接触到的课程是否符合你对计算机专业的期待,为什么?经过一个学期,你的看法改变了么,为什么?
没有改变,经过一学期的学习生活,我发现在研究生阶段的课程中动手的时间越来越少了,而在过去接触到的课程中,注重培养动手能力,我更喜欢这种培养编程能力的课程,所以我依旧认为过去接触到的课程符合我对计算机专业的期待。
你觉得计算机是你喜欢的领域吗,它是你擅长的领域吗?经过一个学期,你的看法改变了么,为什么?
我依旧认为计算机是我喜欢的领域,但对它是否是我擅长的领域有些困惑。在研究生阶段的学习中,我从新的python语言学起,主要做一些机器学习及可视化的工作,这与我本科阶段的面向对象编程不同,我感觉自己不能像之前熟练地完成工作,这就像是学的越多发现自己会的越少。
2.2 考取研究生,对照前人们走过的路和描述未来发展,现在的你自我感觉你已经具备的专业知识、技能、能力有哪些?离成为一个合格的计算机学生,在专业知识、技能、能力上还差距哪些?经过一个学期,你的看法改变了么,为什么?
在这个问题上我的看法没有改变,在这个学期中我自己动手写过几个机器学习的经典算法,过程并不顺利,所以我认为我在专业上离成为一个合格的计算机学生的差距还很大。
2.3 每天都是一个人生选择的十字路口,学术研究、工程项目、社会实践(?) ,不同的选择有不同的努力方向。
对照以上你阅读的前人们的经历,你的选择是什么?经过一个学期,你的看法改变了么,为什么?
我的看法没有改变,记得开学时我认为我更偏向去做学术研究,面对晦涩难懂的学术论文,在这一学期中我也曾多次质疑过,但是容易的事情大家都能去做,而拥有自己的核心竞争力并不是一件容易的事情。这段时间里也与本科同学家交流过,大家工作都很辛苦,而且面临的竞争压力也很大,我认为通过学术研究提升自己是目前改变现状最有效的途径。
在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?经过一个学期,你的看法改变了么,为什么?
我的看法没有改变,我认为我的专业技能不错,在本学期学习新的Python语言时,我的效率很高,而我的劣势还是数学基础不扎实,论文中的公式推导起来较困难。
针对你的选择,你给自己的本学期的规划是什么?经过一个学期,你的看法改变了么,为什么?
我当时的规划是多读论文,真正搞懂吃透几篇论文,经过一个学期,我论文读了五篇,但是真正特别明白的也只有一篇。
2.4 你对这门课的期待是什么?你打算平均每周拿出多少个小时用在这门课上?经过一个学期,你的看法改变了么,为什么?
我的看法没有改变,通过这门课加深了我与同学之间关系,也从项目中得到了沟通的锻炼,一起拍了宣传片,一起为了发布赶过工,一起赞美“黄衫”大佬。
实测结果,每周平均用在本课程上多少小时?
每周平均9小时。
三、回顾2
3.1 请回顾这5个问题,自己回答一下。当初的困惑是否还在,你现在如何认为,是更深的困惑么?
问题一:
我在阅读第8章时看到这样一段:“我们要充分了解用户的痛苦,他们对已有软件、服务不满意的地方。但是用户往往也不了解颠覆型的创新。”对此,我有个疑问:“当我开发出来的产品与用户的期望产生偏差时该如何处理,例如:配色意见不一致,在刁钻的地方设计按钮等问题。一方面坚持原来意见的话势必会引起客户不满,而放弃原则又会觉得对自己的作品不负责任,这事该如何处理。”
个人观点:对于这个问题我还是感到有些困惑,比如在我负责的本次项目的设计工作中,我们收到的用户反馈里有个别人反映按钮不够精美,界面过于简化,但是我们团队一致认为这个见面足够美观易用,而且作为微信小程序,设计的功能太复杂也不符合小程序的开发初衷。因此我不清楚在面对特定客户的不满时是否应该放弃原先的理念。
问题二:
我在第12章中看到这样一段话:“我们常说做产品要从用户的角度考虑问题,这需要有‘同理心’,就是理解别人的处境、心理、动机的能力。”我产生了一个问题:“当我们设计的产品受众比较广泛时,必然会遇到受教育程度不一的用户群,我们在不理解用户是什么文化水平的前提下如何把产品设计的更更符合大众的需求,换句话说就是如何让产品更简单易用。”
个人观点:“客户不知道自己想要什么”,这样的观点是很容易理解的。客户不是猴子,但他也无法替你设计产品。因为:客户也许想要一个产品它大体上能实现这样那样的功能,但是他们并不知道该如何去细化这些功能,更加不知道如何去设计这类的产品。所以我们可以参考市面上类似的成熟的产品,这些产品的交互模式已经被大众所熟悉,可以简化用户的学习成本,让产品更简单易用。
问题三:
我在第16章开头看了这一段文字:”成功的企业花大价钱情人预测未来。调查显示,在过去的几十年中,专家们对于颠覆性技术的预测往往是错误的——因为颠覆性技术的市场还不存在!“我有个问题:既然专家们对未来市场的预测往往都是错误的,那作为刚毕业或者工作一段时间的大学生们,该如何把握自己未来的方向?就像移动行业巨头苹果公司,他们对手机市场的预测一定是朝着创新最大化的方向发展的吗,但是市面上的大部分公司都在争相模仿,有自己创新想法的却得不到认可,我对这种现象感到疑惑。
个人观点:事物是不断发展的,能否把握未来的方向就看个人的适应能力能否跟得上时代的发展,研究生与本科生不同,作为刚接触计算机技术的本科生,学校教了什么就学什么,而研究生需要培养敏锐的洞察力,能够根据主流技术的发展去选择自己的研究方向,这种能力是受用终身的。
问题四:
在第16章后半部分中我读到了这样一段文字:“有一种意见认为作坊只能独立存在,和其他机构都合不来。其实不然,在庞大的企业内部,也有一些人构建了一个小作坊,自己做主,做自己感兴趣的事”对此我有个问题:“当我们处于公司中的小作坊时,我们该如何发展这种不属于公司大方向的项目,又如何最大化的利用公司内部现有的资源。”我通过查阅汽车行业高尔夫GTI的发展史也有过类似的情况,当时高尔夫系列产品的研发团队中的一个领导人产生打造一款性能家用车的想法,他的提议没有得到高层的批准,于是他便申请了一些资金与几个朋友开始着手研发,如今GTI系列的成功也体现了这些“小作坊”的用途。
个人观点:我认为“小作坊”的存在是当项目到达一定规模后所必要的。在本学期的项目开发过程中,我们在Final发布之前讨论过首页内容的排序规则以及取消已“帮取”后的惩罚措施 ,虽然项目的大致流程都已经确定,但是我作为“小作坊”提出了“信誉分”这一概念,通过信誉分的增加和减少来作为完成订单的奖励和取消订单的惩罚,并且首页可以使用信誉分来进行排序,在后续的版本中也可以将信誉分改为充值系统并以此盈利。所以我认为“小作坊”虽然是附加的模块,但是它的产生必定迎合公司的大方向,成功与否就要看满足市场的需求,但它的存在具有一定的必要性。
问题五:
我在阅读第17章时有这样一段话:“优秀的团队优势会骄傲自满,团队成员自我感觉太好,过分亲近也可能导致过度利己,不重视与别的团队合作,不重视客户需求等。”我产生这样一个问题:“对于初出茅庐的大学生,我们在团队中的这些度改如何把握,俗话说‘谦受益满招损,人可以有傲骨但不可以有傲气’这些尺度该如何去衡量,何时该展露锋芒,何时该收起棱角。”
个人观点:经过这学期的学习,我认为个人在团队中,荣誉感是要有的,我的团队总体的能力很强,在选题以及完成程度上有较大的优势。但是我认为团队优势不代表个人优势,每个成员在各自的岗位上都有各自的任务,在开发过程中不光要完成自己的任务,还要经常审视自己,先将自己的本职工作完成好。而当项目中的重要功能完成的不够好时,可以发挥自己的优势去完善别人未完成的部分。
3.2 请根据本学期的学习、收获、困惑,再提出5个问题,可以是读后不理解的,或者读后反对的。要求有观点、有证据或分析。体验一下,这5个问题,是不是更有深度了 。
-
在第4章中两人合作中有说到代码复审的形式有三种,其中自我复审的好处在于,用同伴复审的要求自己不一定最有效,也许每个人对与功能实现的方法存在不同的理解和标准,这与同伴、团队互相复审是否存在了矛盾?
-
我在第8章中,读到关于针对不同功能所对应的投资力度与用户满意度之间的关系,作者提到“投入和回报不是一个线性的关系,有时投入根本看不到回报”,思考到我们在实际开发之中,大多不会属于会在“无所谓”领域中投入的人,那么在有限的人力财力支持下,该如何权衡“核心功能”、“最基本功能或属性”与“惊喜功能”呢?
-
第13章中说到BUG可以分解为症状、程序错误、根本原因。后面接连有提到两个例子解释这个概念,其中一个例子说程序错误是“代码在输入情况下访问了非法地址”,而根本原因是“代码对于id1==id2的情况没有做正确判断”。我的疑问是,我觉得错误产生的根本原因往往是程序设计不合理引起,所以程序错误和根本原因之间还有什么差别呢。
-
在第14章节中提到过,项目的可见性是非常差的,这种事不仅发生在小规模、业余项目上,在大规模的专业团队中也时常出现。我上网查找资料有看到,利用分段生命周期模型可以提高软件开发过程的可见性,不知道是否还有其他方法可以很好的解决这个问题?
-
在第16章IT行业的创新,读了书中的内容和例子之后我想问的是:就目前环境而言,个人怎样去创新?或者个人创新也着重于哪方面?就算现在有好的想法,也很难与现在成熟的企业去竞争,企业也在想创新,可能你的创新刚刚有一点眉目,便被大公司所收购,或者大公司直接投入更多的人力和资源直接超越你,但人也很难说能够闭门造车个几年,出来便一鸣惊人的。所以想要做到创新,做到别人都承认的创新,我们应该怎么努力?
3.3 回忆整个学期,你有什么话想对后来的学弟学妹们说。
做好版本控制,充分发挥Git的价值,组员之间多沟通,充分的发挥团队的力量。编程好,多编程,编好程。
3.4 如果重新来过一次,你打算做哪些(技术上,而不是态度上的)改变--基于希望得到什么样的更好结果,你才希望这样改变的;更重要的是,你根据什么估计这些改变会有预期的结果。
我打算尽早制定更规范更严谨的代码规范。我希望这样改变的目的是为了在课程结束后能够由个人开发者继续维护我们的项目,因为在开发阶段我们把每个模块都细分下去,团队成员们写代码的样式也都不太统一,导致在后期完善的时候,我先代码的格式再去改功能。但是等到Final阶段发布的时候项目就十分庞大了,我只能有针对性的完善,因此我希望在项目初期就能统一格式。我是根据自己的编程经验以及查阅“代码规范的重要性”的相关资料进行估计的。
3.5 终于我们即将不再是师生。当你结束本课程,你和我就站在同样的位置上,我将不再基于学校授权和知识、经验 (年龄?)上的优势而对你的自由有任何干扰。除发布及成绩以外,我最后一次行使教师特权: 请问你有什么要对教师 (我)说的,建议、抱怨、希望……多谢。
您的教学方式独特且新颖,在我看来这种方式是成功的,对于软件工程来说”做中学“无疑是最有效的方式,而且将师生关系比喻成学员和健身教练的关系以及发布时将同学和教室类比成股东的想法都很直观。关于建议,希望假期作业可以少一点,比如这次的国庆和中秋假期,我写代码和博客花费了三天时间。
四、总结
4.1 代码总量,平均每周代码量。
总量:2758行
平均每周:251行
4.2 博客字数总量,平均每周字数。
总量:17744字
平均每周:1613字
4.3 根据PSP,平均每周在本课程中所用时间(是的,请再回答一次)多少小时。
平均每周所用时间:9小时
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阶段,主要完善了项目功能、为最终发布做准备、贡献分配、收集用户使用报告。
|