高级软件工程师的职责范围
在上一篇随笔<软件架构师之职责范围>中评论,yongfa365希望能看到.NET高级软件工程师的职责范围。我思前想后,还是决定说一下自己在这方面的愚见,希望大家不吝赐教。
什么是“高级软件工程师“,这个职位到底该做些什么,相信大家都有答案。在目前很多国内软件企业中,如果你是”高级软件工程师“,那么从需求分析
,设计,开发,测试,甚至到客户这一条龙都可能由一个人来负责。那么这个职位到底该做些什么呢?下面是我的认识。
1,软件开发与测试
首先,软件开发是软件工程师职责的基本组成部分,这点应该没有问题。其次,此处的软件测试可分为开发前的驱动测试,和开发过程中的白盒测试。驱动测试用于分析子系统/模块内部逻辑,用于在开发之前暴露开发过程中可能遇到的大部分问题和对子系统/模块进行更进一步的划分;白盒测试是保证在项目交接到测试团队手中时,能满足基本的项目要求,即能够进行α测试。另外,驱动测试因团队而异,并非必须,但个人更推荐这么做。
2,子系统/模块分析设计
在软件架构师做完系统设计,项目经理进行项目分工后,项目就正式进入开发环节。这时候每个软件工程师会拿到自己负责的子系统/模块,首先要做的就是进行分析设计,其次才是开发。开发前进行分析设计,便于从整体上对子系统进行把握,提前隔子系统中的变化点和问题,同时也可以对子系统进行更详细的划分,用于制定个人的工作计划,与项目经理和软件架构师进行具体的沟通。
在这点上,要及早认识到并不是只有架构师才需要进行软件设计的,软件工程师一样需要,且是必备技能。相信有很多人拿到自己的任务时只是跟项目经理进行简单的沟通,知道自己要做什么,就开始闷头写代码了,这是非常不可取的。
3,撰写文档
在进行子系统和模块设计的同时,要撰写子系统设计说明书;在开发过程中,要记录技术要点和发现的问题,同时如有需要,要修改子系统设计说明书;在白盒测试时,要记录每个Bug。以上这些文档是为了方便以后进行项目维护,工作交接,问题分析,个人总结等等。
4,定期主动沟通
在项目开发过程中,项目经理需要和团队中的每一个人沟通任务进度,其主要职责是从整体上把握和控制项目的进度。那么作为团队一员的高级软件工程师通常会负责项目中很重要的子系统/模块,这些子系统/模块往往能决定项目的成败。因此定期主动与项目经理沟通解决遇到问题,与架构师和专家沟通解决技术难题就显得非常重要了。另外,就对个人而言,定期主动沟通也往往表现为个人的主动积极性,对于个人长远发展非常有益。
5,持续学习
也许有人会觉得学习应该与职责无关,狭义看来确实如此。然而,不断学习新知识,提高个人技能,于公司而言,能提升工作效率;于个人而言,益于职业发展。因此,工作之余,不管你职位如何,持续学习就显得非常重要且必要。
6,带新人
这点也许不是硬性要求,然而据说国外有高手带领新手这样一种师徒习惯,我们也应该学习并发扬。通常情况下新人会与高级软件工程师协同工作,因此带新人一方面,带领新人可以有重新审视自己知识的机会;另一方面能够让新人更快入手,降低学习成本和提高工作效率;同时也能保持良好的人际关系。
以上是个人对高级软件工程师职责范围的认识,也许有些比较牵强,然而就对职业发展而言,要想做好高级软件工程师,上面几条是平时工作中必须要做的。
备注:第六点是根据 宇智波Q和 yongfa365 的建议补充。
高级软件工程师的职责范围相关推荐
- 软件架构师之职责范围和高级软件工程师的职责范围
什么是"高级软件工程师",这个职位到底该做些什么,相信大家都有答案.在目前很多国内软件企业中,如果你是"高级软件工程师",那么从需求分析 ,设计,开发,测试,甚 ...
- 招聘|青岛旭升招聘高级软件工程师、3D视觉算法工程师
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 公司介绍: 青岛旭升视觉有限公司是一家专注于机器人3D视觉引导与工业3D测量领域的高新技术企业,独立发 ...
- Twitter高级软件工程师岳峣:做好自己喜欢的事
作者岳峣,自2010年11月起就职于Twitter,负责缓存技术服务器端的开发和数据分析,对Memcached和Redis有深入了解,是开源项目Twemcache的维护人和主要作者之一. 我很幸运,在 ...
- 诚聘软件过程工程师,高级软件工程师,软件开发工程师
绵阳铁牛科技有限公司(公司网址: http://www.sbuffalo.com/index.htm)诚聘以下职位人员,欢迎有志之士加入我们团队.如果您对下列某个职位感兴趣,请将您的简历发到公司的邮箱 ...
- 我如何成为高级软件工程师
Ever since I started learning to code, I have dreamed of becoming a senior engineer. Some may think ...
- 与微软高级软件工程师的对话:如何进行自动化测试?
最近,我与微软的高级软件工程师KlausHemstitch进行了交谈.过去7年里,Klaus Hemstitch一直在微软的Office 365团队工作.每天他的团队要确保所有的网络组件能在每个主流浏 ...
- Atitit. 高级软件工程师and 普通的区别 高级编程的门槛总结
Atitit. 高级软件工程师and 普通的区别 高级编程的门槛总结 1. 完备的知识体系 2 2. 编程理论/原理的掌握 2 1.1. 掌握常用的概念(ORM,IOC,AOP,event driv ...
- (急聘) 高级软件工程师(C#.Net/JS) http://job.cnblogs.com/offer/8966/
(急聘) 高级软件工程师(C#.Net/JS) http://job.cnblogs.com/offer/8966/ 转载于:https://www.cnblogs.com/livexy/archiv ...
- 谷歌高级软件工程师的一天
作者 | Dimitris Leventeas 译者 | 弯月 来源 | CSDN(id: CSDNnews) 工作过的朋友都知道,实际写代码的时间其实并不多,有很大一部分工作的时间都用在了处理邮 ...
最新文章
- [翻译]使用HtmlAgilityPack更好的HTML分析和验证
- python之路---进程
- LSTM为何如此有效
- Tengine 一个注重性能和兼容性的AI框架
- python入门代码示例-这可能是最好玩的python GUI入门实例!
- 在sae上编译代码是所遇到的问题
- 20145104张家明实验五
- LINQ之路 2:C# 3.0的语言功能(上)
- 在自定义Java 9映像上运行Eclipse Neon
- voxelnet_ue4商城资源Voxel Sandbox Toolkit体素沙盒工具箱
- [dp] LeetCode 91. Decode Ways
- C++多继承的二义性
- 用“归并”改进“快速排序”
- express日常开发总结
- 数据库课程设计—人事档案管理
- Swift - 去处图片的白色、黑色背景(使UIImage背景透明)
- 11发布自己的镜像(阿里云)
- 如何打造数字原生企业?易捷行云EasyStack有话要说
- font: 12px/1.5 Tahoma, Helvetica, Arial, sans-serif;网页设计中的默认字体
- 天津计算机专业专科大学排名,天津的计算机专业大学排名