读构建之法 第三章:软件工程师的成长

本章理论和知识点:评价软件工程师水平的主要方法

软件工程把相关的技术和过程统一到一个体系中,叫“软件开发流程”,软件开发流程的目的是为了提高软件开发、运营、维护的效率,以及提升用户满意度、软件的可靠性和可维护性。

软件开发流程不光指团队的流程,还包括个人开发流程,因为软件团队是由个人组成的。个人在团队中也有独立的流程。把每个人的工作有序地组织起来,就是团队的流程。“有序”,并不是“无争论”。在大部分成功的软件团队模型中,各个角色有不同意见的冲突在所难免,解决冲突、意见统一是团队要做的。作者用足球队来做举例,足球队有个人流程,有单个运动员的技术、体能要求,在单个运动员的技术、体能达标的情况下,再去讲团队的阵型和战略,还有团队的交流。软件系统的绝大部分模块都是由个人开发或维护的,这里又出现了新名词IC(Individual Contributor):单个成员。

IC在团队中的流程是怎么样的呢?

1.通过交流、实验、快速原型等方法,理解问题、需求或任务

2.提出多种解决办法并估计工作量; 其中包括寻找以前的解决方案,因为很多工作是重复性的

3.与相关角色交流解决问题的提案,决定一个可行的方案执行

4.执行,把想法变成实际中能工作的代码,同时验证方案的可行性和其他特性(例如程序的效能等)

5.和团队的其他角色合作,在测试环境中测试实现方案,修复缺陷(Bug)。如果此方案有严重的问题,那么就考虑其他方案

6.在解决方案发布出去之后,对结果负责每个人的工作质量直接影响最终软件的质量。

每个人的工作质量直接影响最终软件的质量。

初级软件工程师如何成长呢?

1. 积累软件开发相关的知识,提升技术技能(如对具体技术的掌握,动手能力)。

2. 积累问题领域的知识和经验。。随着经验的增长,一个工程师可以掌握更广泛、更深入的技术和问题领域的知识。

3. 对通用的软件设计思想和软件工程思想的理解。这一方面就比较虚。

4. 提升职业技能(区别于技术技能)。职业技能包括:自我管理的能力,表达和交流的能力,与人合作的能力,按质按量完成任务的执行力。

5. 实际成果。

软件开发的工作量和质量怎么衡量呢?

有下列4个因素:

a . 项目/任务有多大?说明项目的大小,一般用代码行数(Line Of Code,LOC)来表示;也可以用功能点(Function Point)来表示。

b . 花了多少时间?可以用小时、天、月、年来表示。一组人所花费的时间可以用(人数×时间)来表示。

c . 质量如何?交付的代码中有多少缺陷? 交付有两个定义:1.在代码完成时,交付给测试人员  2.在软件最终发布时,交付给顾客

可以用缺陷的数量来除以项目的大小。

d . 是否按时交付?

在团队工作中,稳定、一致的交付时间是衡量一个员工能力的重要方面。

一个成熟的软件工程师应该能够降低任务交付时间的标准方差。

软件工程师的职业发展

1.职业发展——考级之路

需要一些行业的和公司的认证,资格证书

2.职业成长——Steve McConnell

一个软件工程师需要具备一定的知识和能力。

知识:迈克康奈尔把相关的软件知识分为十大知识领域。

能力:一个工程师对这些知识的掌握分为四个阶段。

3.职业成长——大公司版本

不同软件工程师职业等级对应不同的要求。

4.职业成长——自我评估

工程师应该在实际工作中不断学习和不断成长,根据自己的情况选择在哪个方面追求“专和精”,在哪几个方面达到“知道就好”的水平。

怎么提高技能呢?

通过不断的练习,把那些低层次的问题都解决了,变成不用经过大脑的自动操作,然后才有时间和脑力来解决较高层次的问题。

先练好基本功,再去谈高层次的“科研”。

时间: 2024-12-24 13:43:24

读构建之法 第三章:软件工程师的成长的相关文章

构建之法(第三章 软件工程师的成长)

第三章的主要内容是:评价软件工程师的主要方法 1.个人能力的衡量与发展 软件工程包括了开发,运营,维护软件的过程中的很多技术,做法,习惯和思想. 软件工程把这些相关的技术和过程统一到一个体系中,叫"软件开发流程",软件开发的目的是为了提高软件的开发运营维护的效率,以及提升用户的满意度,软件的可靠性和可维护性. 1.1 IC在团队中的流程是怎么样的呢?以开发人员为例,流程如下. 1)   通过交流.实验.快速原型等方法,理解问题.需求或任务 2)   提出多种解决办法并估计工作量 3) 

构建之法学习(第三章 软件工程师的成长)

本章的主要知识要点:评价软件工程师水平的主要方法 1.  软件开发流程不光指团队的流程,还包括个人开发流程,因为软件团队是由个人组成的.在团队的大流程中,是每个具体的个人在做开发.测试.用户界面设计.管理.交流等工作.因此个人在团队中也有独立的流程. 以开发人员为例,流程如下 *通过交流.实验.快速原型等方法,理解问题.需求或任务 *提出多种解决办法并估计工作量 *其中包括寻找以前的解决方案,因为很多工作是重复性的 *与相关角色交流解决问题的提案,决定一个可行的方案 *执行,把想法变成实际中能工

现代软件工程 练习与讨论 第三章 软件工程师的成长

1. (1)第三种,稳定,安全,高效. (2)需要,programer不是coder,要成为软件工程师必须要有一定的能力,不能阿猫阿狗都自称软件工程师,这样不利于行业的发展 2. (1)既是工程,也是艺术,艺术家的衡量标准通过创造能力来衡量,创造能力体现在创新事物的新颖,实用,以及美感. (2)软件工程和音乐美术是有区别的,更讲究实用性而不是观赏性. 3.随着工具和理论的完善,软件开发的门槛越来越低,同样竞争也会越来越激烈,保持个人的先进和创新能力对个人在行业内的立足至关重要.行业在发展的同时,

第三章 软件工程师的成长

3.1 个人能力的衡量与发展 软件开发流程不光指团队的流程,还包括个人开发流程,因为软件团队是由个人组成的.在团队的大流程中,是每个具体的个人在做开发.测试.用户界面设计.管理.交流等工作.因此个人在团队中也有独立的流程. 以开发人员为例,流程如下: *通过交流.实验.快速原型等方法,理解问题.需求或任务 *提出多种解决办法并估计工作量 *其中包括寻找以前的解决方案,因为很多工作是重复性的 *与相关角色交流解决问题的提案,决定一个可行的方案 *执行,把想法变成实际中能工作的代码,同时验证方案的可

第三章 软件工程师的成长随笔

软件工程包括了开发.运营.维护软件的过程中的很多技术.做法.习惯和思想.软件工程把这些相关的技术和过程统一到一个体系中,叫"软件开发流程", 软件开发流程的目的是为了提高软件开发.运营.维护的效率,以及提升用户满意度.软件的可靠性和可维护性. 把每个人的工作有序的组织起来,就是团队的流程.个人在团队中也有独立的流程. 软件开发的工作量和质量怎样衡量? 1.项目/任务有多大.2.花了多少时间.3.质量如何.4.是否按时交付. 职业成长:微软公司的软件工程师等级:SDE(初级软件工程师).

构建之法第三章读书心得

在构建之法第三章中,我们主要学习了个人能力的衡量与发展. 初级软件工程师有以下几个成长阶段:1.积累软件开发相关的知识,提升技术技能. 2.积累问题领域的知识和经验. 3.对通用的软件设计思想和软件工程思想的理解 4.提升职业技能 5.实际成果 软件开发的工作量和质量你的衡量标准:1.项目.任务有多大? 2.花了多少时间? 3.质量如何?交付的代码中有多少缺陷?

构建之法第三章

本章为软件工程师的成长,主要介绍了评价软件工程师水平的主要方法,技能的反面,TSP对个人的要求. 软件开发流程:软件开发流程包括团队的流程,也包括个人的流程 初级软件工程师有几方面成长: 1.积累软件开发相关的知识,提升技术技能 2.积累问题领域的知识和经验 3.对通用的软件设计思想和软件工程思想的理解 4.提升职业技能 5.实际成果 衡量软件开发的工作量和质量的因素: 1.项目/任务有多大 2.花了多少时间 3.质量如何 4.是否按时交付 相对来说,交付时间的平均时间反应平均水平,而标准方差更

【构建之法】第3章 软件工程师的成长

1 软件工程师的成长 积累软件开发相关的知识,提升技术技能 积累问题领域的知识和经验 对通用的软件设计思想和软件工程思想的理解 提升职业技能 实际成果 2 软件工程师的思维思维误区 分析麻痹 不分主次,想解决所有依赖问题 过早优化 过早扩大化/泛化:画扇面--调侃目标和远景 3 技能的反面 通过不断的练习,把低层次的问题解决,变成不用经过大脑的自动操作,然后才有时间和脑力来解决较高层次的问题 原文地址:https://www.cnblogs.com/kxbk100/p/8496389.html

谈谈我对构建之法这三章的理解

前言 在第一次作业中我便提过,刚进入大学时,我对未来充满了憧憬,我的人生有着很好的规划,也像我所规划的那样,我的大一过着学习,技术,学生工作有条不紊运行的状态,可是后来为了学生工作放弃了工作室,后来又因为一些原因失去了学生工作,我的人生仿佛失去了重心,浑浑噩噩度过了大二上学期,到了这个学期,上了软件工程导论这门课,我才意识到自己与别人的差距有多大,我下定决心从这学期开始恶补,一定要把差距拉小,直至没有差距.调整好了心态,我翻开了构建之法. 章节一.概论 1."软件=程序+软件工程"这是