在本周学习了《构建之法》的第三章,第三章里主要是对如何成为一个合格的软件工程师的一些基本条件。
这章主要讲述了评价软件工程师的水平的主要方法、初级工程师应该如何成长、如何衡量软件开发的工作量和质量、个人在团队中的贡献以及软件工程师的职业发展。
评价软件工程师的主要方法,软件开发的流程,这不单单只团队的开发,更看重个人的开发。在团队中每个人的开发质量影响这团队的开发质量。
而对于如何提升初级工程师水平,主要在于:
1.积累软件开发相关的知识,提升技术技能(如对具体技能的掌握,动手能力)。
2.积累问题领域的知识和经验(如对医疗和金融行业的了解)。
3.对通用的软件设计思想和软件工程的理解。
4.提升职业技能(自我管理的能力,表达交流的能力,与人合作的能力,按时按质完成任务的执行力)。
5.实际成果(用户评价如何,市场占有率,对用户的帮助)。
对于如何衡量软件开发的工作量和质量问题。项目/任务有多大?说明项目的大小,一般可以用代码行数来表示;也可以用功能点来表示。花了多少时间?可以用小时、天、月、年来表示;也可以用人月表示一组人所花费的时间。质量如何?交付的代码中由多少缺陷?交付有两个定义:在代码完成时(Code Complete),交付给测试人员在软件最终发布时,交付给用户可以用 bug 的数量来除以项目的大小。是否按时交付?平均用时少的人更优秀吗?其实我们应该从标准方差(Standard Deviation)评判一个员工的稳定性。软件项目的确需要创造性,需要一些惊喜。但是,更多的是常规的、可重复的任务。软件领域可以分为两个方面:一方面是技艺程序的大爆发;另一方面是坚持不懈的工程工作,包括软件的改善、测试和维护等,这一方面占了 90 % - 95% 的比例。如果你能长时间稳定而按时的交付工作的结果,内部和外部的顾客就会对你的工作有信心,更喜欢与你合作。
把每个人的工作有序地组织起来,就是团队的流程。通俗地来说,流程就是节奏。在家里每个家庭成员按照自己的生活节奏有序地生活,在单位里每个员工按照自己的工作节奏工作,他们每个人都有自己的节奏,但都在遵守着一个家庭、一个单位(一个团体)的节奏,这就是一个软件团队的软件开发流程。
在团队工作中,稳定、一致的交付时间是衡量一个员工能力的重要方面。软件项目的开发需要创新、需要奇迹,但更多的是常规的、可重复的任务。一个程序员的成熟从来都不是靠突发奇想创作出的程序,而是在日复一日地软件改善、维护和测试中。在这个略显浮躁的社会下,稳定才是一种更受人褒奖的品质。一个稳定的程序员编出的软件才会让用户有安全感。
自我评估代表了一个工程师对自己专精的选择。大部分工程师都不是天才,不能“多才多艺”。那么自我评估就是每一个中庸的工程师需要认真考虑的问题,根据自己的情况选择在哪个方面追求“专和精”,在哪几个方面达到“知道就好”的水平。
标签:有感,软件开发,工程师,如何,构建,交付,软件,团队 From: https://www.cnblogs.com/ZRGUGUGU818/p/16885370.html