结对作业——四则运算 Part3. 对于结对编程的总结与思考
结对作业——四则运算 Part3. 对于结对编程的总结与思考
PB15061303 刘梓轩
PB16061489 艾寅中
GITHUB 地址
目录
Part 1. Core代码编写部分
Part 2. 封装与对接相关问题
Part 3. 对于结对编程的总结与思考
关于结对
View:(From 艾中)
不得不说,结对编程给笔者带来了一次全新的编程体验。就领航员与驾驶员的分工而言,刘承担了生成和计算的大部分任务,笔者(艾)负责了显示和输出部分的函数。
首先我作为领航员的时候,实际上是有点懵的,因为学长的写代码速度真的是很快,而且真的就是我只要稍微一愣神,就是不知道发生了什么。还要反而需要学长把我领回来,可以说是十分不称职的领航员了hhh
再说作为驾驶员,一开始后面有个坐个人真的是全身不自在。但是真正投入到解决问题中去的时候,就没有那种感觉了。尤其是这种只要有问题立马就可以回头去交流,而且不需要长篇大论的描述问题,因为两人本质上是一起编程的,学长的人生经验几乎可以立马解决我出现的问题,更不用说被学长发现的那些小问题了。
而且结对时的交流,真的是对于开阔思路太有帮助了。我们在编程的时候是不断的扩充功能的,因此,在完成了开始的整数的加减乘部分后,进度一度陷入停滞(笔者也苦于期中考试)。在一次交流后,两人对于问题进行深入的探讨,便又飞快地加入了分数的运算部分,后续的小数运算部分也如此。
View:(From 梓轩)
结对编程的体验很棒+1!其实艾中把我的写代码的速度夸大了,我们在一开始确实有过速度非常快的阶段,但是由于我们各自都有事情要忙,所以等到我们重新拾起项目的时候,光是对接和重新拾回效率和思路,就已经花费了很多时间(这也告诉我们一次就把流畅的主体框架全部解决的重要性!!!!)。
在项目中我们俩的分工很明确,由于我清明节前时间比较多,所以我主导了计算和生成模块的构架(事实上我觉得我决定的方向并不好,这在我之后的博客中再详谈吧。),导致艾中会有一种懵的感觉,我想这也是以后的工作和学习中需要注意的地方,不能只顾着一个人向前走,而是要两个人结伴同行,这样才能效率更高。
由于我和艾中之前就认识,也都是辩论队的,所以配合起来十分默契,我想这为我的第一次结对编程的良好体验打下来良好的基础,虽然这次作业花费了我们很多时间(还是两个菜鸟的进阶之旅),也对我们的学业产生了一定影响,但我觉得收获很大,有很多东西想抒发,但限于ddl紧迫,只能以后再谈了。
PSP表格
Planning | 计划 | 60 | 60 |
· Estimate | · 估计这个任务需要多少时间 | 60 | 60 |
Development | 开发 | 1625 | 2100 |
· Analysis | · 需求分析 (包括学习新技术) | 60+120 | 60+120 |
· Design Spec | · 生成设计文档 | 60 | 60 |
· Design Review | · 设计复审 (和同事审核设计文档) | 15 | 15 |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 20 | 25 |
· Design | · 具体设计 | 90 | 120 |
· Coding | · 具体编码 | 1000 | 1400 |
· Code Review | · 代码复审 | 60 | 120 |
· Test | · 测试(自我测试,修改代码,提交修改) | 200 | 240 |
Reporting | 报告 | 100 | 180 |
· Test Report | · 测试报告 | 30 | 60 |
· Size Measurement | · 计算工作量 | 10 | 10 |
· Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 60 | 110 |
合计 | 1745 | 2240 |
课程建议
虽然说,软工是一门注重实践的课程,但是就个人目前到现在为止的学习感受来说,似乎有点太注重于实践了?我甚至感觉自己不是在上一门课,而是在上一个专项培训班。没有其他那些科目上课时那种老师娓娓道来的感觉,更像是老板提一个要求,好了,你们去做就行了。当然,这些科目本身来说就有本质上的区别,毕竟别的学校的软工也是这样的,可能还是我编程编的太少了。
还有就是,这门课真的让我消耗的时间太太太太太多了。出去单纯的用在编程的问题上的时间,课后作业/读书笔记/任务总结的博客上也真的是消耗了太多的时间。感觉就是一个 ddl 接着一个 ddl,尤其是上周还有信号与系统的期中考试。要不是把结对编程的项目推迟了,多了一个周末的时间,我可能现在已经凉透了。
对于团队项目
这是让我更难受的一点,就是个人任务和结对任务对我的团队项目没有什么实际上的帮助。
首先因为这两个任务,笔者(艾)这三周可以说完全没有去看团队项目所需的知识。再者,由于我们准备使用 Java 来进行团队项目中网站的后端编写,可是这两个任务中均使用的是 c ,在他们开始前学的那一点点 Java,也全都忘光了。也能是我太菜了,并没有能力用 Java 来写这两个任务的原因吧。
硬要说的话,就是这次结对过程中,不断的扩展功能这一点,也算是体现了敏捷吧,在后续的团队项目中也可以把成员结对,效果感觉也会有提升。