`
datoplay
  • 浏览: 1629389 次
文章分类
社区版块
存档分类
最新评论

从程序员升级到工程师

 
阅读更多
从程序员升级到工程师 (这条文章已经被阅读了28次)
 GB Big5 时间:2000年12月08日 09:09 来源:arshioul转贴

从程序员升级到工程师(玺龙阁收藏)

大多数象我这样对软件有浓厚兴趣的人,毕业后义无反顾地走进了企业,开始了程序员的生涯。那时,我们迷恋“大全”、“秘籍”一类的书籍,心中只有代码。当我看到一行行枯燥的代码变成了能够打电话的设备,变成了屏幕上漂亮的表格,变成了动听的音乐,成就感油然而生。我觉得自己也是一个出色的程序员了。

  在用户的机房中苦熬三昼夜解决软件的BUG,也成了一种可以夸耀的资历。五年前的某一天,我把曾经让我兴奋自豪的大量代码和少得可怜的文档移交之后,来到了华为。这里有更多的年轻人,我如鱼得水,可以充分发挥自己的想象力。

  依然是代码,依然是匆匆地在纸上记下稍纵即逝的灵感(我们把它称作文档),依然是无休止地和BUG作斗争。当有一天,一个新来的同事拿着署着我的大名的文档,小心翼翼地来问我时,我发现自己好象有点不认识它了。我心里有点沮丧,再看看代码,发现文档上记录的一些灵感已面目全非。我当时不知道那位新来的同事感受如何,但我从那时起,好象意识到什么。现在来看,那时的很多事情都是事倍功半。

  去年年底,公司派我到印度从事项目开发,学习印度的软件开发管理方法。一种久违的冲动在心底升起。印度,我已去过两次,虽说是走马观花,但是,印象还是比较深刻。我在访问过程中和印度的工程师交流过,他们言谈中透着自信。他们给我讲解正在做的软件的测试环境,给我看他们写的单元测试文档。当我看到一个软件模块的单元测试用例有三百多页时,我觉得心里很是沉重。

  当我第三次踏上这片土地时,我又见到了熟悉的人们,明亮的眼睛,温和的笑容,随意的穿着,风驰电掣的摩托,还有大学校园中穿着拖鞋,手抱书本的年轻人。

  我也见到了我的项目经理,一个个子较高,瘦瘦的年轻人,据说刚从美国回来,已工作了五、六年。我听了心里很高兴,这回要一招一式地学两手。

  需求分析的时间是一个月,项目经理和我们(实际上代表客户)讨论了PROPOSAL中的内容,确定每一项都是需要的。然后他把模块大致划分了一下,开始进入计划中的学习阶段。每个人在学习阶段要写出功能描述的胶片,给其他人讲解,不知不觉中,项目组的所有人对项目有了整体的了解。

  他还安排了一些培训,如他们公司的软件开发模型、项目组中各角色的定义,以后及时的培训不断,只要项目组中有需求,他总是把QA或相关的人请来,培训很专业。需求分析完成后提交了一份四十多页的文档,当我看到这份英文文档中我写的部分整整齐齐地列在其中时,我的感觉很复杂,有些喜悦,但更多的是苦涩,我以前怎么就从来没有这样做过需求分析呢。在我写文档的过程中,QA给我们培训过SRS的写作模板,后来我还是不放心,让他们一个有经验的工程师写了一段,我们再琢磨着照着写。这份SRS虽然是多个人合写,但风格一致,内容详实。更为可贵的是,一直到最后,这份需求分析的内容都没有改过,以至于我们没有机会走一下他们的需求更改流程。

  需求分析是项目的第一阶段,第二阶段的开发时间要根据需求分析的结果来确定。当对方的首席技术官(相当于我们业务部的总体组长)来和我们讨论计划时,他们已列出了对每个模块的代码行数的预测,可能存在的风险。根据他们公司的生产率--300行/人月,他得出了项目第二阶段需要多少周。我们当时就提出了异议:1)公司对该项目需求很急;2)每月300行是否太少;3)我们还有下载的源代码参考。他解释说,300行/人月是使得项目能达到他们质量标准的经验数据,考虑到有源代码参考,生产率最多不能超过350行/人月。当他问我们公司的生产率时,我脑袋里转了三个圈,没敢多说,大概六、七百行吧。他沉默了一会儿,然后坚定地说,我们这个计划是建立在确保质量的基础上的,我想你们到印度来开发软件,首先看中的应该是我们印度公司的质量保证。我知道你们不缺乏软件开发人员,你们为什么不选择下载的软件呢。几句话说到了我的痛处,现在国内的弟兄们还在为使用下载软件移植的产品四处奔波呢!

  随后的开发活动有条不紊,我们老老实实地跟着做。系统测试计划、用例,概要设计,集成测试计划、用例,详细设计,单元测试计划、用例,编码,单元测试,集成测试,系统测试。一个完整的V模型开发过程,其中每个过程都有REVIEW。当我们对一些设计的方法不太明白时,项目经理给我们发来了相关的资料,我不知道他当时是怎么想的,一些基本的分析、设计方法是十年,甚至二十年前的软件工程书中就讲到的,印度每个计算机专业的人员都是必修这些内容的。而我们除了对一些具体协议的代码很熟之外,对这些常用的方法似乎一无所知。我感到一些羞愧,进城直奔书店,把他给我开列的书找了出来,晚上躺在床上,仔细研读,我仿佛突然又遇到了能给我指点迷津的良师益友。现在印度所已形成了强烈的学习风气。我回来后也推销了700多本书,这些书教我们如何用工程化的方法开发软件,是成为一个软件工程师必读的资料。

  我们的项目经理的计划控制能力很强,当有什么影响到项目计划的事情发生时,如人员辞职、实验室搬家、某一模块预测不准(该模块是我们预测的),他总是采取必要的措施,减少延期,调整计划。刚开始,我们对他们每天上午11点,下午4点下楼喝咖啡还有点意见,后来也跟着喝去了,原来,喝咖啡时的交流非常丰富,从项目管理到设计方法,从技术发展到风土人情,无所不包,对我们互相之间的理解,对团队的气氛很有帮助。我们项目的QA也在适当的时候出现在我们的面前,我们对她的工作只有一些感性认识。她每次参加会议时,手里时常拿着一个CHECK LIST,项目经理准备相应的资料,回答一些问题,她打着勾,或写着项目经理的解释。她给我们做培训时也很耐心,体现出很好的职业素养,我至今还在怀念她给我们的帮助。

  我从事软件开发已有九个年头了,可我现在仍然不能说自己是个合格的软件工程师,更不用谈什么合格的管理者。我看到一份报道说,瑞士洛桑一权威机构把中国的科技综合竞争力从原来的第十三位调到二十多位,原因是他们调整了一些评估标准,其中有一条是中国合格工程师的可获得性非常低。想着弟兄们熬红的双眼,四处奔波升级的疲惫身影,我有一个强烈的愿望:快把我们自己升级成合格的工程师吧
分享到:
评论

相关推荐

    从程序员到工程师

    从程序员升级到工程师大多数象我这样对软件有浓厚兴趣的人,毕业后义无反顾地走进了企业,开始了程序员的生涯。那时,我们迷恋“大全”、“秘籍”一类的书籍,心中只有代码。当我看到一行行枯燥的代码变成了能够打...

    hibernate_helloword

    hibernate初学者适用 stuts2,spring,爱好学习java的同学 从程序员升级到工程师大多数象我这样对软件有浓厚兴趣的人学习印度的软件开发管理方法

    《程序员》2011年08期

    这样才能逐步提高,从程序员升级为软件设计师、系统分析员。 作为高级程序员,乃至于设计师而言,除了应该具备上述全部素质之外,还需要具备以下素质: 1、 需求分析能力 2、 整体框架能力 3、 流程处理能力 4、 ...

    程序员简历模板(面向java开发工程师+软件开发)

    程序员简历模板(面向java开发工程师+软件开发) Java实习生 xx科技发展有限公司 对数据分析平台3.0项目进行二次开发与维护 实现数据分析师和产品人员提出的新需求 修改现有模块以适应新需求 排除平台故障与...

    《程序员》2011年第2期

    这样才能逐步提高,从程序员升级为软件设计师、系统分析员。 作为高级程序员,乃至于设计师而言,除了应该具备上述全部素质之外,还需要具备以下素质: 1、 需求分析能力 2、 整体框架能力 3、 流程处理能力 4、 ...

    刘先生-嵌入式开发-7年_网络公司it人员简历_程序员简历模板_计算机相关专业.pdf

    刘先生-嵌入式开发-7年_网络公司it人员简历_程序员简历模板_计算机相关专业.pdf 本资源摘要信息是关于一名具有7年嵌入式开发经验的IT人员简历,涵盖了他的个人信息、工作经验、技术技能和项目经历等方面的内容。 ...

    雪先生-嵌入式开发-3年_网络公司it人员简历_程序员简历模板_计算机相关专业.pdf

    "雪先生-嵌入式开发-3年_网络公司it人员简历_程序员简历模板_计算机相关专业.pdf" 本资源为一份嵌入式开发工程师的简历,总共拥有三年工作经验,擅长于Linux、单片机、PLC、DSP等领域。下面是对该资源的详细解读: ...

    互联网程序员都每天刷题嘛-lean-spring-cloud:瘦春云

    从单一应用,到垂直拆分,到分布式服务,到SOA,以及现在火热的微服务架构,还有在Google带领下来势汹涌的Service Mesh。我们到底是该乘坐微服务的船只驶向远方,还是偏安一隅得过且过? 其实生活不止眼前的苟且,...

    服务器工程师岗位主要职责.doc

    服务器工程师岗位主要职责 服务器工程师岗位职责1 职责: 1、熟悉VMware虚拟化规划、部署、支持、维护和P2V迁移 2、规划、实施服务器项目、公有云、混合云项目 3、熟悉各类微软产品,尤其是AD及E_change,基础服务器...

    《不止代码》阿里出品 PDF

    程序员:“天天写业务代码还加班,如何才能成为技术大牛?” 测试:“为什么每天都有执行不完的测试用例?” 运维:“扛机器接网线敲shell命令,这不是我想要的人生。” 工程师的世界,不止代码,还应有对未来的洞察...

    刘某某个人简历_嵌入式_java简历_程序员简历模板_计算机相关专业.doc

    * 项目描述:升级后台系统,解决业务发展中的问题,包括基础档案设置、收派标准、班车设置、取派设置/替班、区域设置、管理分区、管理定区/调度排班、收派时间管理等模块 * 责任描述:主要负责基础档案设置、用户...

    Cortex-M3权威指南_cn.pdf

    目标读者包括:一线程序员,嵌入式产品设计师,片上系统(SoC)工程师,嵌入 式系统发烧友,学院研究员,还包括所有涉猎过单片机和微处理器领域,慧眼识珍看中了Cortex‐M3的人民大众们。本书要给Cortex‐M3的架构做...

    java简历工作经验.docx

    * 项目角色:程序员、高级程序员、设计工程师、开发经理等 * 项目经验:项目开发、实施维护、系统配置、升级、功能拓展等 四、Java项目开发技术要点: * 用户权限管理 * 业务细节审查 * 资料环节提交 * 信息录入...

    利用ant脚本 自动构建svn增量.docx

    不会用ant打包、部署项目的工程师,不是一个好程序员(测试) 副标题:利用ant脚本 自动构建svn增量/全量 系统程序升级包 首先请允许我这样说,作为开发或测试,你一定要具备这种本领。你可以手动打包、部署你的工程...

    阿里巴巴《不止代码》PDF电子书

    工程师的世界,不止代码,还应有对未来的洞察与从容。阿里首部技术经验精选集:《不止代码》,现已正式公开。阿里多位P9、P10技术大牛现身说法,用十多年阅历和经验,陪你“打怪升级”。这本书凝聚了阿里技术人的...

    FreeCADLibs-12.5.4-x64-VC17.7z ,FreeCAD的环境 VS2019

    适用人群主要是需要运行或开发基于此版本FreeCAD的工程师、程序员和系统管理员。使用场景及目标涵盖FreeCAD软件的常规安装、升级维护、定制开发以及解决因缺失或不匹配库文件导致的运行问题。其他说明可能涉及特定的...

    Java面试个人简历模板

    * ETL是指从异构数据源中抽取数据,并将其转换、集成、加载到目标系统中,以满足业务智能分析和数据挖掘的需求。 * ETL过程通常包括三个阶段:抽取、转换和加载。 2。数据仓库和数据集市: * 数据仓库是一个...

    java实习员工的转正述职报告三篇.doc

    2. Java技术:报告中提到了Java技术的应用,包括Java软件工程师的工作内容和技能。 3. 团队合作:报告中强调了实习员工与同事之间的关系,能够与同事通力合作,建立良好的关系。 4. 领导指导:报告中提到了领导的...

    大型软件项目人力资源管理实践.doc

    大型软件项目人力资源管理实践是一个复杂的系统,涉及到多个子项目、子子项目、项目经理、技术支持组、项目组等多个角色和部门。为了确保项目的顺利进行,需要对人力资源进行科学的配置和管理。 首先,项目经理需要...

    C# 4.0捷径教程 中文版 part2

    本书是经典教程的全面升级,通过许多精彩的示例介绍了c# 语言的每个新特性,深入浅出地讲解了c# 语言的核心概念,以及如何聪明地应用c# 的习惯用法和面向对象的设计模式来挖掘c# 和clr 的能力。这一版还介绍了c# 4.0...

Global site tag (gtag.js) - Google Analytics