《构建之法》是由微软windows 中国工程团队首席开发总监邹欣写的一本关于现代软件工程教育的一本书籍。写这一篇博客的目的主要是对近期阅读的一些收获和感悟进行总结以及整理一些方法和技巧,以便以后更好的学习这门课程,更系统的理解现代软件工程的学习方向。
选读理由:作为一个软件工程学者,我认为有必要深入了解软件工程这一专业的主流发展方向与发展核心目标,以便怀着更明确的目标来完成今后的学习,在王建民老师的推荐和自己的筛选下,《构建之法》的目录与介绍使我印象深刻。下面是我进行初步阅读后对本书理念一些理解和总结:
1.“做中学”
“做中学”贯穿了邹欣老师的整个教学过程,是他教学方法的核心,边做边学,通过实践检验学习的成果,也通过实践来了解到自己学习的不足之处,既贴近了生活,有收获了很多的知识,对学习有了把握,才能够学的更好
2.两个阶段
(1)Alpha阶段(Alpha 指的是内测)
alpha(α),希腊字母表的第一个字母,有第一个、开端、最初的含意。也就是最开始的阶段,在这个阶段中,学生的工作室维护以前同学开发的程序,理解程序,理解用户的痛点,找bug,尝试对小部分代码进行重构开发,进行开发测试,在现有的基础上进行少量开发,快速发布并收集用户反馈。
(2)Beta阶段(Beta 指的是公测)
Beta(β),希腊的第二个字母,目前普遍认为是“测试”的意思。这个阶段是建立在Alpha阶段的基础上的阶段,根据Alpha阶段的版本的反馈,进一步分析需求,估计实现需求的难度,进行设计,开发,再进行回归测试,进行新版本的发布,收集用户反馈,看看新版本是否真的解决了用户的问题。
3.评分标准
邹欣老师的评分标准是:把每次作业平分为N档,最优秀的几个得满分,第二档的同学得1/2的分数,第三档的同学得1/3的分数,依次1/n的打下去。晚交一律0分,不交作业倒扣。这样想学习的学生知道如何努力,想混的同学也知道怎样才能混过去,极大的提高了学生学习的积极性。
4.循序渐进,步入实践
刚开始,学生的动手能力很差,要是此时就组建一个团队,去完成一个实践的项目是不可能的,所以,邹欣老师设计了三个项目。
(1)个人项目:让每个人练练自己的手艺,同时实践项目管理的工具和操作,以及简单的测试。
(2)两人项目:两个人合作完成一个比较难的作业,锻炼交流合作能力。练习软件的“结对编程”、接口设计、代码复审、简单的界面设计,并让学生有机会学到不同的编程语言、不同的框架设计、不同的表现层的实现。这类项目可以安排两次,每次换人做。
(3)团队项目:选择自己的角色,做好自己的工作。
Alpha阶段和beta阶段都要做正式的回顾和总结,并发布博客。
5.设立“团队贡献分”
为了避免“抱大腿”“打酱油”的团队成员也能获得一样的分数,团队设立了“团队贡献分”,给每个成员一定的分数,每个成员的分数必须不同。这样可以衡量“我在团队的地位”“我在别人心目中”的分量。让每个人付出和结果更好的结合起来。
6.模拟实战,用客观数据评分
把学生的作业做成比赛,做解决实际问题,能公开发布和使用的项目。通过投票或者比较使用量评价软件的好坏。
7.设立检查点
每个阶段都要公开发布博客,要求项目要有两次公开的重大发布(Alpha、beta),要求每个阶段要有10天的每日例会,列出每次会议的结果(每个成员昨天做了什么,今天打算做什么,碰到什么障碍),并用项目管理的工具,自动生成进度表。