现在的位置: 首页 > 综合 > 正文

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

2012年12月17日 ⁄ 综合 ⁄ 共 1055字 ⁄ 字号 评论关闭

Advanced Software Engineering  现代软件工程  讲义

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

 

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

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

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

 

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

image

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

image

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

体能, 技术, 意识, 斗志

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

image

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

阵型, 配合, 临场应变

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

image

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

软件也是这样。

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

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

       理解问题或任务

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

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

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

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

       修复缺陷

抱歉!评论已关闭.