现代软件工程讲义2工程师的能力评估和发展-创新互联

Advanced Software Engineering  现代软件工程  讲义

白塔ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!

软件工程师的能力评估和职业发展

介绍:  个人软件流程,  职业发展, 个人绩效的衡量和提高, 软件开发是科学, 工程, 手艺, 或是艺术?

我们刚讲了软件工程, 它包括了什么呢?

软件工程包括了开发,运营, 维护软件的过程中有很多技术, 做法, 习惯, 和思想。软件工程把这些相关的技术和过程统一到一个体系中, 叫 “软件开发流程”,软件开发流程的目的是为了提高软件开发, 运营, 维护的效率,以及用户满意度, 可靠性,和软件的可维护性。

软件开发流程不光指团队的流程,  软件团队是由个人组成的。在团队的大流程中, 是每一个具体的个人在做开发,测试,用户界面设计,管理,交流等工作。因此, 个人在软件团队中也有个人的流程。

现代软件工程讲义 2 工程师的能力评估和发展

个人的劳动成果有序地组织起来, 就是团队的流程。这里说的“有序”, 并不是“无争论”,  在大部分成功的软件团队模型中,  各个角色(开发, 测试, 项目管理等)考虑问题的出发点是有区别的, 不同意见的冲突在所难免, 一个好的团队流程能把冲突的积极方面 (各自尽力把自己的工作做好,说服别人) 释放出来,而避免消极方面 (因为冲突而产生的消极,抵触情绪等)。

现代软件工程讲义 2 工程师的能力评估和发展

我们用足球作一个比喻:  足球中有没有个人流程?  当然有,  职业球队对于运动员有很严格的要求: 例如:

体能, 技术, 意识, 斗志

具体技术有传接,盘带,射门, 定位球, 跑位, 等。一些特定的角色(守门员)还有独特的技术要求。

现代软件工程讲义 2 工程师的能力评估和发展

足球的团队有没有流程? 当然有:

阵型, 配合, 临场应变

足球队有不少 “阵型” (442, 433, 451和它们的各种变体, 等等) 和打法 (南美,欧洲,技术,力量, 小快灵, 抢逼围, 两翼齐飞,  全攻全守, 等等).

现代软件工程讲义 2 工程师的能力评估和发展

尽管有这么多理论,  足球的每一次盘带, 传球,  跑动, 射门,扑救,都是单个运动员完成的。  如果单个运动员的技术, 体能不行, 无论是什么阵型用处都不大,有些阵型反而会起反作用,  例如, 让体力弱的球队去打全攻全守。

软件也是这样。

软件系统的绝大部分模块都是由个人开发或维护的。在软件工程的术语中, 我们把这些单个的成员叫做 Individual Contributor (IC).

IC 在团队中的流程是怎么样的呢? 我们以开发人员为例:

       理解问题或任务

       提出多种解决办法并估计工作量

       其中包括寻找以前的解决方案,因为很多工作是重复性的 – 例如实现某些类似的web页面。

       与相关角色交流解决问题的提案, 决定最终方案

       执行, 把想法变成实际中能工作的代码

       修复缺陷,对结果负责

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

作为一个软件工程师, 你觉得自己表现如何? 有没有这样的体会:

看书的时候觉得“”asp.net, asp.net 的项目,这相当于一边看医学书一边动手术。。。

如果你是病人, 你希望你的医生是下面的那一种呢?

a)  刚刚在书上看到你的病例, , …

b)  富有创新意识, , ,…

c)  已经处理过很多类似的病例, , …

d)  此医生无正式文凭或医院, , 可治百病。

e) 还有这一类, 给你开刀到一半的时候, 出去玩去了, 快下班的时候, 他们匆匆赶回来, 胡搞一气, 给你再缝好, 打了很多麻药,就把你送出了院, 说“治好了”!

事实上, 很多软件项目就是用 a) b) 这样的方法搞出来的。当然也有一些人走 d) 这条路。 e) 这一种可以在很多大学生软件大作业上看到例子。

如果我可以选择, 我要选 c) 那样的医生。

职业成长– Steve McConnell 版本:

Steve McConnell 创立的公司  (Construx Software) 为员工提供了下面的成长路径。

知识:把相关的软件知识分为十大知识领域。

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

入门 (Introductory); 熟练 (Competency); 带头人 (Leadership); 大师 (Mastery)

职业成长级别 (Professional Development Ladder):

把工程师分为6个级别 ( 9 – 15) 每一个工程师属于一个技术等级。一个工程师要从一个级别升到另一个级别, 需要在各方面达到一定的要求。例如, 要达到 level12 ,工程师必须在三个知识领域达到“带头人”水平。  例如要到达“工程管理 (知识领域) 的熟练 (能力)”水平,工程师必须要做到以下几点:

·         阅读: 4-6 个经典文献的深入分析和阅读

·         工作经验: 要参与并完成6 个具体的工作

·         课程:要参加3 个专门的课程

有些水平还要求工程师获得某种专业证书,在工业界,教育界教课, 发表论文等等。

 

职业成长– 大公司版本:

微软公司针对软件工程师的职业发展也有很完备的规划和支持。这方面的资料比较多, 这里简单地以软件开发工程师为例说明一下。  下面的解释部分来自于 Eric Brechner 的书– Hard Code ()

SDE (初级软件开发工程师)

                入门。在学校里学到了一些技能, 但是还没有在实践中得到充分锻炼。

SDE II  (中级软件开发工程师)

独立。可以写别人交给你的任何东西。如果你不懂, 你知道去问谁。

Senior SDE (高级软件开发工程师)

小组领导。影响着3 – 12 个工程师, 或者是他们的行政领导; 或者是他们的技术带头人。怎么显示领导力呢? 这有几个例子:

·         你当过新员工的导师么?他们后来都尊重你的种种教诲么?

·         你是否成为别人的榜样?(写的代码, 做的设计, 别人可以拿来重用

·         你在招人方面是否有心得, 并言传身教, 让大家都认识到面试的重要性和各种技巧。

·         你是否创立/改进/推动一些流程,而且这些流程不需要你亲自参与,也能流传下去?

·         在和别的角色 (例如, UX/PM/QA) 打交道的时候, 你往往都能赢得别人的支持, 而不是和别人争执, 抱怨不休?

Principal SDE (首席软件开发工程师)

团队领导。影响着12 人以上的一个大团队, 成为影响团队成败的关键人物。

Partner SDE, Distinguished Engineer, Technical Fellow

影响力扩大到整个机构,甚至工业界。

职业成长– Pragmatic 版本 - 从小工到专家

IT业界的不少专家也对于程序员的成长提出了不少好的建议.  例如:

现代软件工程讲义 2 工程师的能力评估和发展

这本书的副标题是“from journeyman to master”,从打下手的小工到大师。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章标题:现代软件工程讲义2工程师的能力评估和发展-创新互联
转载源于:http://scyanting.com/article/dohipc.html