经过一周左右的紧张奋斗,我们的软件工程pair work也顺利告一段落。回首这段时间的经历,感觉接触了许多新的知识与方法,这既是我第一次的pair work,也是第一次在一个比较完整的产品上进行增量开发,其中不仅涉及到与队友合作的问题,也需要快速学习一个新的工具并理解前人的代码。
言归正传,我们这次的工作有两个方面:a.增加多点触控的功能(如果用户设备支持),使用户可以实现zoom in/out; b.增加一个后退按钮,使用户可以回到以前浏览的位置。
项目规划:
项目开始后,首先要做的就是规划项目各部分所用时间。这中间有一个小插曲,当我们用两天时间了解多点触控并拿到设备后,发现academic map已经支持多点触控功能了,因此我们需改了计划,把主要精力转移到b上,下述规划也是经过修改后的规划:
Task | Estimated time | Actual time |
get familiar with current code and Silverlight. | 2 days | 2 days |
design the data structure and finish the "back" button. | 1 day | 2 days |
add "forward" button and history list | 1 day | Half a day |
redesign the UI and make small changes | 1 day | 2 days |
项目介绍:
最终展示给用户使用的就是左上角的那三个按钮,从左至右分别是“后退”、“历史”、“前进”。
然后大致介绍一下背后使用的方法。我们所有的工作都封装在一个Class(OrgHistory)之中,其中需要有链状的结构存储用户的访问顺序记录。最初我们设想用一个list存储顺序的结果就够了,但后来增加了hitory功能后就有些不足。设想用户访问顺序为“A -> B -> C”,然后用户 back回到 了 B界面 ,接着用户又搜索D,这时访问顺序就成了“A -> B -> D”,而C就在这个结构中消失了,或者把D加在最后“A -> B -> C ->D”,这又和用户感觉不太相符。应该说,我们在这儿是想完全按照网页上使用习惯进行设计,这样比较贴合用户需要。最后,我们用了两个结构存储,一个是搜索的前后顺序,另一个是所有搜索的记录(这之中顺序就不是太关键了)。
最终成果:
我们先分别搜索“University of Science & Technology of China”、“Chinese Academy of Sciences”、“Peking University”。然后点击“back”,界面如下:
在“history”按钮中选中“University of Science & Technology of China”,界面如下:
项目总结:
本次项目采用双人结对的方法完成,可以说好处还是比较明显的:在前期设计的时候,两个人总是比较容易发现可能遇到的问题,使方案更加完善;在实际写代码时,我们相互之间经常在对方的基础上修改和完善,也就是重写对方的某一部分,逐渐增强代码的健壮性;而在调bug时,两个人总是比较容易发现问题。本次工程,双方基本上都完整地了解代码的各个部分,在为我们省去了不少麻烦。
当然,双人配合也有许多地方需要协调的,比如双方必须同时有时间。其中有几次就是一个人先写完,随后另一个人再来进行review和进行调试。又比如在项目初期,我们也分别做了不同工作,宋哲负责了解silverlight的控件,我负责处理背后的数据,然后再将双方的工作和在一起,这也是一种方法上的尝试。但在后期,就更多地需要双方紧密的配合了。
在此附上宋哲和我的工作照一张:
宋哲同学在本次工作中表现出了极高的工作热情和责任心,经常少于预定时间完成任务,为工作做出了很大贡献。和宋哲同学的合作很愉快。
回顾本次项目的教训,比较大的一个问题就是在工程中没有太多创新和自己的想法。至少我感觉我们两个人表现得都不是太有创造力,而是中规中矩地完成了这个项目。虽然说项目目标完成得不错,但没有特别出彩的地方。期待下一次和宋哲的合作能取得更大的成果。
最后需要感谢邹欣老师和jonh peebles助教,感谢你们提供的帮助。同时需要感谢刘海峰同学,他的工作涉及到搜索部分,为我们了解搜索背后的机制和记录搜索内容提供了很多帮助。
by 汤骏 partner:宋哲