技术人员的职业素养

技术人员的职业素养

《程序员规范》

一、程序员的基本任务

(1) 基本任务组成:“可执行代码” +“程序员任务书”+“程序员工作日志”。

(2) 编码:根据《程序员任务书》进行编码。例如,一个“界面”或一个“类”。

(3) 日志:每天下班前须填写《程序员工作日志》,所有记录用语必须简练明确。

(4) 测试:完成代码编写后须进行单元测试,《代码+文档》一并上交项目经理。

二、程序员的基本素质:

(1) 团队精神:我们的理念是“团队协作精神能做出大系统,个人只能做小程序。”

(2) 文档习惯:程序员至少有30%的时间在写书面文档,没有文档习惯会被淘汰。

(3) 规范习惯:没有规范化、标准化的代码编写和文档书写习惯,在团队内部成员之间的开发协作是绝对不可想象的。例如:至少我们整个团队内部在如下这些工作内容上达成一致,界面布局;界面色调;界面命名;界面上操作流程;代码的变量命名;代码内注释格式;甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定。

(4) 理解能力:程序员需要理解《程序员任务书》中模块的需求。很多程序员在写程序时往往只关注其功能需求,而忽视性能指标要求。例如:百万甚至千万数量级的访问情况下的稳定性、并访支撑能力、安全性、潜在的危险、恶意攻击的可能性等。一个成熟的程序员需要评估该模块在系统运营中所处的环境,这一切,程序员至少需要2到3年的项目研发和跟踪经验才有可能总结体会出来得。

(5) 测试习惯:一方面是正常测试,也就是看程序是否能在正常调用下完成基本功能;第二方面就是异常测试,比如高压力负荷下的稳定性测试,用户潜在的异常输入情况下的测试,整体系统局部故障情况下该模块受影响状况的测试,频发的异常请求阻塞资源时的模块稳定测试等等。并不是程序员要对自己的每段代码都需要进行这种完整测试,但是程序员必须清醒认识自己的代码任务在整体项目中的地位和各种性能需求,有针对性的进行相关测试并尽早发现和解决问题,当然这需要上面提到需求理解能力。

(6) 学习能力:要善于学习,是因为软件技术更新很快,需要不断学习新的技术、新的

技能。要善于总结,也是学习能力的一种体现,每次完成一个研发任务,完成一段代码,都应当有目的的跟踪该程序的应用状况和用户反馈,随时总结,找到自己的不足,这样才能逐步提高,从程序员升级为软件设计师、系统分析员、项目经理。

《设计师规范》----设计师的基本素质

(1)需求理解能力(属于需求分析)

用户提出《需求描述》往往在文字上很不规范,考虑问题也只局限于非技术因素的操作功能要求。他们不懂得技术性能要求、将来功能扩充、与外系统连通的未来因素。

所以,我们的设计师要凭借自己丰富的经验和项目实际,从整体上把握用户的需求。

(2)整体框架能力(属于总体设计)

软件工程教科书上,总体设计只涉及软件整体可以划分成哪些模块、模块之间组成关系。设计师必须从更广的角度去设计,比如:产品定位、主体思路、公共规则、数据关系、接口约定等等。设计出一份功能完整、性能良好、结构清晰的《总体设计报告》。

这份报告必须考虑三方面的工作,一是,用户所有需求得到满足;二是,有利于项目的分工协作;三是,以便于程序员编码的按部就班。

(3)流程处理能力(属于总体设计)

流程处理能力非常非常重要!所谓流程处理分两类,一类是,软件系统的工作流程;二类是,项目实施的控制流程。

软件的工作流程,就是采用什么设计方法去分解整个软件系统,属于《总体设计报告》。 实施的控制流程,就是系统模块完成?团队资源如何调度?形成《项目实施计划书》。

(4)模块分解能力(属于详细设计)

作为系统分析员、设计师,所面对的问题很复杂,需要对“整体系统”进行分解,把一个个“系统部件”分解为若干可复用的“功能模块”和“调用函数”。

每个“模块”和“函数”有一个独立的设计文档-----《详细设计报告》。设计师也要考虑:接口约定、模块功能、重要算法、属性、公共规则、数据关系等等。

一个大型的、错综复杂的应用系统分解成一些相对独立的、具有高度复用性的、并能仅仅依靠几个参数完成数据联系的模块组合,是我们软件设计师和系统分析员的一项最重要工作,合适的项目设计方法,清晰的流程图,是实现这一目标的重要保证。

(5)项目评估能力(属于实施进度)

评估项目整体工作量,评估各个模块工作量,评估项目所需的资源,评估项目可能遇到的困难,确定项目工期。

(6)组织管理能力(属于组织管理)

作为项目的设计者和项目的实施组织管理者,必须做到:一是,工作的量考核化,没有量化就很难做到合适的绩效考核;二是,对团队协作模式的调整,一般而言,程序开发的协作通常分为小组进行,小组有主程序员方式的,也有民主方式的,根据程序员之间的能力水平差距,以及根据项目研发的需求,选择合适的组队方式,并能将责权和成员的工作任务紧密结合,这样才能最大发挥组队的效率。

《简明软件工程》----我喜欢快速原型法

(1) 场调研:切记!只有服务于企业、服务于市场的技术和产品才能体现出最大价值。

(2) 需求分析:赶快跟客户交流,从客户那里得到他们的需要,分析需求做出五个文档:

1、 用户视图:设计出客户端用户界面、后台管理员用户界面的页面样式;

2、 操作流程:将所有这些用户界面关联起来,构造出完整的操作流程和条件;

3、 数据词典:描述数据之间逻辑关系,数据词典做好了,数据库设计等于完成了一半;

4、 操作手册:是用来指导操作流程的说明书;

5、 性能需求:(性能需求通常只有懂技术的人能理解);

6、 备 注:用户操作流程和用户视图由需求决定,为程序研发提供了约束和准绳。

(3) 概要设计:初步划分功能模块,给出合理的研发流程和资源要求。如果采用快速原

型设计方法,完成概要设计就可以进入编码阶段。但是完成原型代码后,根据评测结果和经验教训的总结,还要重新进行详细设计的步骤。

(4) 详细设计:把具体的模块以最‘干净’的方式(黑箱结构)提供给编码者。

1、 一份好的详细设计说明书,可以使编码的复杂性减低到最低;

2、 一份严格的详细设计说明书,应当把每个函数的每个参数的明确定义都提供出来;

3、 从需求分析到概要设计到完成详细设计,一个软件项目可以说已经完成了一半;

4、 换言之,一个大型软件系统在完成了一半的时候,其实还没有开始一行代码工作;

5、 详细设计阶段,是考验技术专家设计思维的重要关卡。

(5) 代码编写:规范化的研发流程中,编码在整个流程中不会超过1/2,通常在1/3时间。

1、 磨刀不误砍柴功,设计过程完成的好,编码效率就会极大提高;

2、 编码时,模块间的进度协调最需小心,一个模块可能影响整体进度,被迫停工等待;

3、 编码时,成员间的沟通应急相当重要,对程序员而言bug 永远存在,必须永远面对。

(6) 软件测试:是个相当重要的步骤,因为软件永远都会又不可预料的问题存在。一个

大型软件,3个月到1年的外部测试都是正常的。测试有很多种:

1、 按照测试方式:分为内部测试和外部测试;

2、 按照测试范围:分为模块测试和整体联调;

3、 按照测试条件:分为正常操作情况测试和异常情况测试;

4、 按照输入范围:分为全覆盖测试和抽样测试。

5、 我们看到,印度的一个软件模块单元测试,测试用例达到三百多页。

技术人员的职业素养

《程序员规范》

一、程序员的基本任务

(1) 基本任务组成:“可执行代码” +“程序员任务书”+“程序员工作日志”。

(2) 编码:根据《程序员任务书》进行编码。例如,一个“界面”或一个“类”。

(3) 日志:每天下班前须填写《程序员工作日志》,所有记录用语必须简练明确。

(4) 测试:完成代码编写后须进行单元测试,《代码+文档》一并上交项目经理。

二、程序员的基本素质:

(1) 团队精神:我们的理念是“团队协作精神能做出大系统,个人只能做小程序。”

(2) 文档习惯:程序员至少有30%的时间在写书面文档,没有文档习惯会被淘汰。

(3) 规范习惯:没有规范化、标准化的代码编写和文档书写习惯,在团队内部成员之间的开发协作是绝对不可想象的。例如:至少我们整个团队内部在如下这些工作内容上达成一致,界面布局;界面色调;界面命名;界面上操作流程;代码的变量命名;代码内注释格式;甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定。

(4) 理解能力:程序员需要理解《程序员任务书》中模块的需求。很多程序员在写程序时往往只关注其功能需求,而忽视性能指标要求。例如:百万甚至千万数量级的访问情况下的稳定性、并访支撑能力、安全性、潜在的危险、恶意攻击的可能性等。一个成熟的程序员需要评估该模块在系统运营中所处的环境,这一切,程序员至少需要2到3年的项目研发和跟踪经验才有可能总结体会出来得。

(5) 测试习惯:一方面是正常测试,也就是看程序是否能在正常调用下完成基本功能;第二方面就是异常测试,比如高压力负荷下的稳定性测试,用户潜在的异常输入情况下的测试,整体系统局部故障情况下该模块受影响状况的测试,频发的异常请求阻塞资源时的模块稳定测试等等。并不是程序员要对自己的每段代码都需要进行这种完整测试,但是程序员必须清醒认识自己的代码任务在整体项目中的地位和各种性能需求,有针对性的进行相关测试并尽早发现和解决问题,当然这需要上面提到需求理解能力。

(6) 学习能力:要善于学习,是因为软件技术更新很快,需要不断学习新的技术、新的

技能。要善于总结,也是学习能力的一种体现,每次完成一个研发任务,完成一段代码,都应当有目的的跟踪该程序的应用状况和用户反馈,随时总结,找到自己的不足,这样才能逐步提高,从程序员升级为软件设计师、系统分析员、项目经理。

《设计师规范》----设计师的基本素质

(1)需求理解能力(属于需求分析)

用户提出《需求描述》往往在文字上很不规范,考虑问题也只局限于非技术因素的操作功能要求。他们不懂得技术性能要求、将来功能扩充、与外系统连通的未来因素。

所以,我们的设计师要凭借自己丰富的经验和项目实际,从整体上把握用户的需求。

(2)整体框架能力(属于总体设计)

软件工程教科书上,总体设计只涉及软件整体可以划分成哪些模块、模块之间组成关系。设计师必须从更广的角度去设计,比如:产品定位、主体思路、公共规则、数据关系、接口约定等等。设计出一份功能完整、性能良好、结构清晰的《总体设计报告》。

这份报告必须考虑三方面的工作,一是,用户所有需求得到满足;二是,有利于项目的分工协作;三是,以便于程序员编码的按部就班。

(3)流程处理能力(属于总体设计)

流程处理能力非常非常重要!所谓流程处理分两类,一类是,软件系统的工作流程;二类是,项目实施的控制流程。

软件的工作流程,就是采用什么设计方法去分解整个软件系统,属于《总体设计报告》。 实施的控制流程,就是系统模块完成?团队资源如何调度?形成《项目实施计划书》。

(4)模块分解能力(属于详细设计)

作为系统分析员、设计师,所面对的问题很复杂,需要对“整体系统”进行分解,把一个个“系统部件”分解为若干可复用的“功能模块”和“调用函数”。

每个“模块”和“函数”有一个独立的设计文档-----《详细设计报告》。设计师也要考虑:接口约定、模块功能、重要算法、属性、公共规则、数据关系等等。

一个大型的、错综复杂的应用系统分解成一些相对独立的、具有高度复用性的、并能仅仅依靠几个参数完成数据联系的模块组合,是我们软件设计师和系统分析员的一项最重要工作,合适的项目设计方法,清晰的流程图,是实现这一目标的重要保证。

(5)项目评估能力(属于实施进度)

评估项目整体工作量,评估各个模块工作量,评估项目所需的资源,评估项目可能遇到的困难,确定项目工期。

(6)组织管理能力(属于组织管理)

作为项目的设计者和项目的实施组织管理者,必须做到:一是,工作的量考核化,没有量化就很难做到合适的绩效考核;二是,对团队协作模式的调整,一般而言,程序开发的协作通常分为小组进行,小组有主程序员方式的,也有民主方式的,根据程序员之间的能力水平差距,以及根据项目研发的需求,选择合适的组队方式,并能将责权和成员的工作任务紧密结合,这样才能最大发挥组队的效率。

《简明软件工程》----我喜欢快速原型法

(1) 场调研:切记!只有服务于企业、服务于市场的技术和产品才能体现出最大价值。

(2) 需求分析:赶快跟客户交流,从客户那里得到他们的需要,分析需求做出五个文档:

1、 用户视图:设计出客户端用户界面、后台管理员用户界面的页面样式;

2、 操作流程:将所有这些用户界面关联起来,构造出完整的操作流程和条件;

3、 数据词典:描述数据之间逻辑关系,数据词典做好了,数据库设计等于完成了一半;

4、 操作手册:是用来指导操作流程的说明书;

5、 性能需求:(性能需求通常只有懂技术的人能理解);

6、 备 注:用户操作流程和用户视图由需求决定,为程序研发提供了约束和准绳。

(3) 概要设计:初步划分功能模块,给出合理的研发流程和资源要求。如果采用快速原

型设计方法,完成概要设计就可以进入编码阶段。但是完成原型代码后,根据评测结果和经验教训的总结,还要重新进行详细设计的步骤。

(4) 详细设计:把具体的模块以最‘干净’的方式(黑箱结构)提供给编码者。

1、 一份好的详细设计说明书,可以使编码的复杂性减低到最低;

2、 一份严格的详细设计说明书,应当把每个函数的每个参数的明确定义都提供出来;

3、 从需求分析到概要设计到完成详细设计,一个软件项目可以说已经完成了一半;

4、 换言之,一个大型软件系统在完成了一半的时候,其实还没有开始一行代码工作;

5、 详细设计阶段,是考验技术专家设计思维的重要关卡。

(5) 代码编写:规范化的研发流程中,编码在整个流程中不会超过1/2,通常在1/3时间。

1、 磨刀不误砍柴功,设计过程完成的好,编码效率就会极大提高;

2、 编码时,模块间的进度协调最需小心,一个模块可能影响整体进度,被迫停工等待;

3、 编码时,成员间的沟通应急相当重要,对程序员而言bug 永远存在,必须永远面对。

(6) 软件测试:是个相当重要的步骤,因为软件永远都会又不可预料的问题存在。一个

大型软件,3个月到1年的外部测试都是正常的。测试有很多种:

1、 按照测试方式:分为内部测试和外部测试;

2、 按照测试范围:分为模块测试和整体联调;

3、 按照测试条件:分为正常操作情况测试和异常情况测试;

4、 按照输入范围:分为全覆盖测试和抽样测试。

5、 我们看到,印度的一个软件模块单元测试,测试用例达到三百多页。


相关内容

  • 浅谈如何提升职业指导人员职业素养
  • 摘要:职业指导是为求职者就业.就业稳定.职业发展和用人单位合理用人提供咨询.指导以及帮助的过程.职业指导人员的职业素养决定其职业行为.职业能力和工作质量的高低. 关键词: 职业指导人员 提升 职业素养 热爱本职工作,是做好职业指导工作的基本前提.做好职业指导工作,需要专业化.规范化.制度化的职业指导 ...

  • 试论高校职业指导人员的职业素养
  • [摘要]目前我国高校毕业生就业状况来看,就业形式日益严峻,给大学生带来了前所未有的就业压力,这对高校职业指导人员也提出了严峻的挑战,做好大学生的职业指导,提高自身职业素养,是每个高校职业指导人员的面临的新课题. [关键词]高校:职业指导人员:职业素养 一.高校职业指导人员应具备相应的专业知识和能力 ...

  • 浅析关于企业职业素养培训中关于企业文化的重要性
  • 浅析关于企业职业素养培训中关于企业文化的重要性 企业职业素养培训中导入企业文化元素,作为直接提高经营管理者能力水平和员工技能,为企业提供新的工作思路.知识.信息.技能,增长员工才干和敬业.创新精神的根本途径和极好方式,是最为重要的人力资源开发,是比物质资本投资更重要的人力资本投资,具有十分重要的意义 ...

  • 研发人员职业素养-最新
  • 研发人员职业素养 2012年4月19-20日 北京 | 2012年4月23-24日 上海 | 2012年4月26-27日 深圳 研发人员职业素养 --如何成为人见人爱的研发人员 公司如何从个体成功走向群体成功.如何从单一产品的成功走向多产品线的成功等问题是大量中国高科技企业在实现产业化研发的过程中迫 ...

  • 加强职业素养训练的前提是明确内涵
  • 龙源期刊网 http://www.qikan.com.cn 加强职业素养训练的前提是明确内涵 作者:蒋乃平 来源:<江苏教育·职业教育>2013年第05期 "职业素养"的说法源自我国现代产业文化,具有浓重的中国特色,其培养已经得到职业院校的广泛重视.在加强职业素养训练 ...

  • 浅谈如何培养中职生的职业道德和人文素养
  • 浅谈如何培养中职生的职业道德和人文素养 牡丹江市卫生学校 王冀鸽 [论文摘要]社会主义职业道德和人文素养建设对社会主义市场经济发展具有十分重要的意义,中职生的教育就是就业教育,所以中职生的职业道德和人文素养建设应该从职业道德知识.职业道德意志.职业道德情感.职业道德信念.职业道德习惯等方面进行培养, ...

  • 谈谈现代秘书职业素养提高的途径
  • 摘要:秘书职业素养在一定程度上影响了秘书人员的可持续发展,在秘书人员的工作中起到非常重要的作用,本文从提高业务素养.道德和心理素养等几个方面进行了阐述 . 关键词:秘书 职业素养 现代秘书职业素养如何决定了他的工作态度.水平及效果,那么秘书的职业素养工作中就起到至关重要的作用. 一.提高业务素养 秘 ...

  • 会计从业人员职业道德
  • 会计从业人员职业道德 [摘要]现代社会,会计工作是社会经济运行的核心之一,随着市场经济的 发展,会计职业道德建设已成为一个急待研究的课题,而会计人员的职业道德素 养在会计职业道德建设中起着举足轻重的作用. [关键词]会计人员职业道德素养情商财商法商 职业道德是从业人员在职业活动中应该遵循的行为准则. ...

  • 企业内训:研发人员职业素养及职业规划
  • 企业内训:研发人员职业素养及职业规划 明阳天下拓展 培训主题:研发人员能力素质 职业生涯发展规划 人际风格沟通技巧天数:2 天 课程目标: 系统性.课程内容借鉴了讲师多年的咨询研究成果,结合中国企业管理的最佳实践,总结提炼出适合中国本土企业研发员工的培训课程体系. 互动性.课程采用互动式教学,通过课 ...

  • 继续教育题库
  • 填空题 答案 1.()或称课堂教学结构,说明教学进行的内容.方法.步骤措施及时间安排等,这是教案的主体内容. 教学过程 2.()是包括问题式疑难情境在内的真实发生的典型事件,是教育问题解决的源泉,是教师教学行为提升的阶梯. 案例 3()是教师对整个教学活动的一项预设,是高效完成教学任务的一个重要环节 ...