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