构建之法第三章
本章为软件工程师的成长,主要介绍了评价软件工程师水平的主要方法,技能的反面,TSP对个人的要求。
软件开发流程:软件开发流程包括团队的流程,也包括个人的流程
初级软件工程师有几方面成长:
1、积累软件开发相关的知识,提升技术技能
2、积累问题领域的知识和经验
3、对通用的软件设计思想和软件工程思想的理解
4、提升职业技能
5、实际成果
衡量软件开发的工作量和质量的因素:
1、项目/任务有多大
2、花了多少时间
3、质量如何
4、是否按时交付
相对来说,交付时间的平均时间反应平均水平,而标准方差更为重要,在团队工作中,稳定、一致的交付时间是衡量一个员工能力的重要方面
团队对个人的期望:
1、交流
2、说到做到
3、接收团队赋予的角色并按角色要求工作
4、全力投入团队的活动
5、按照团队流程的要求工作
6、准备
7、理性地工作
软件工程师的职业发展:
一、职业发展—考级之路
二、职业成长—Steve McConnell版本
三、职业成长—大公司版本
四、职业成长—自我评估
技能的反面:巴克斯顿的例子说明从技能的反面去理解技能是什么,而巴克斯顿的观点技能的反面是“解决问题”;利用魔方的例子来说明技能的一些层次,以及是否“精通”的考察方法。
总结来说,这章从个人的角度,诠释了软件工程师个人的能力发展以及职业发展。在团队的大流程中,是每一个具体的个人在做开发、测试、用户界面设计、管理、交流等工作。因此,个人在团队中也有独立的流程;后面以魔方为例,详细介绍了“技能”的概念,从技能的反面——解决问题来从本质上理解“技能”。实际上,提高技能就是通过不断的练习,把那些低层次的问题都解决了,变成不用经过大脑的自动操作,然后才有时间和脑力来解决较高层次的问题;从科研或者理论的高度上说,所有的“技能”都能总结成简单的“已经知道怎么做了”,所以,身为学生,我们不应该老考虑高层次的“科研”,把底层次的问题解决了,熟练了,根基打好,我们的能力也就提升了。