本周已是学期的第十周,这周内通过书中第三章的介绍对如何成为一个合格的软件工程师及软件工程师在个体、团队中应具备的素养有了一些基本的了解。
软件开发流程不光是团队的流程,还包括个人开发流程。书中以足球队做类比,阐明了一个非常重要的概念就是——软件团队是由个人组成的,在团队的大流程中,是每一个具体的个人在做开发、测试、用户界面设计、管理、交流等工作。因此,个人能力的衡量与发展在团队合作中也非常重要,书中也介绍了几种比较妥当的个人评价标准。
软件工程师应该在不同阶段有以下几种成长:积累软件开发相关的知识,提升技术技能、积累问题领域的知识和经验、对通用的软件设计思想和软件工程思想的理解、提升职业技能、最终得到实际成果。绝大部分的软件工程师的工作成果都是可以公开的,个人参与的产品最终得用户评价如何、市占率如何、对用户有多大价值以及个人在其中起到什么作用都是非常重要的评价指标
如何衡量软件开发的工作量和质量:a.项目/任务有多大?b.花了多少时间?c.质量如何?d.是否按时交付;
团队对于个人的期望:1.交流2.说到做到3.接受团队赋予的角色并按角色要求工作4.全力投入团队的活动5.按照团队流程的要求工作6.准备7.理性地工作;
软件工程师的职业发张:1.职业发展——考级之路:如计算机等级考试和全国计算机技术和软件专业技术资格考试以及一些公司自己的认证项目;
2.职业成长——Steve McConnell版本:一个软件工程师需要具备一定的知识和能力,工程师还有职业成长级别;
3.职业成长——大公司版本:大公司对于一个工程师有自己的判断方法;
4.职业成长——自我评估:如何做一个CRUD;
第三章以个人角度,诠释了软件工程师个人的能力发展及职业发展在行业中所起到的作用并介绍了几种评价方法。在团队的大流程中,是每一个具体的个人在做开发、测试、用户界面设计、管理、交流等工作。因此,个人在团队中也有独立的流程。书中以魔方为例,详细介绍了“技能”的概念,从技能的反面——解决问题来从本质上理解“技能”。提高自身技能就是通过不断的练习,把那些低层次的问题都解决了,变成不用经过大脑的自动操作,然后才有时间和脑力来解决较高层次的问题。从科研或者理论的高度上说,所有的“技能”都能总结成简单的“已经知道怎么做了”。作为学生,我们应该认清当前的自我水准及定下合理的成长目标,不应只是考虑参与所谓的高层次的“科研”,在懂得理论的基础上应当具备在实践中活用理论并加以改进以适应实际情况的能力。把低层次的问题解决了,最基础的操作都熟练了,根基打好,我们的能力自然也就提升了。