第三部分,未来职业生涯规划、家庭环境分析、例如经济状况,家人期望等。感谢您阅读《十六招成为大型软件项目的开发英雄[1]》内容,职场资讯网小编向您推荐一些职业规划知识,欢迎参考,希望能帮到你。

我们都遇到过这种情况:一个大型软件项目的建设没完没了,好像总也完不成。事实上微软的一些大型软件项目经常会陷入这种困境,像Vista,SQL Server,XP这些大的软件项目就是如此,在项目开发的最后阶段总是不得不删减大量的功能模块,任命新的管理者争分夺秒地交付产品。在最后期限内,如果你只是不停的编译再编译,而总也完成不了产品,你就会陷入困境无法脱身。你怎样才能让一个大型软件项目脱离这种困境从而成为一名软件开发英雄呢?让我来告诉你如何办到吧

首先,让我们了解一个失败的大型软件开发项目产生的过程:为了解决一些复杂的问题,一个大型的软件开发项目被设计出来了。很好!软件就是用来解决问题的。但是从第一天起事情就朝错误的方向发展了!怎么回事呢?是这样,经理和主管决定由他们来计划整个软件项目的细节而这些细节可以说是细到了极致。接着他们任命一个项目经理来管理所有的程序员,让这些程序员独立完成各自负责的部分。就在项目交付使用的前几周,这个项目经理开始整合所有已完成的部分。这样能行吗?当然不行了这简直是一场灾难!项目被拖延了!几天、几周、甚至几个月,几年过去了项目都还没能完成交付。问题到底出在哪里呢?我们该如何解决呢?M.zc530.COM

软件开发就像是建楼房

你看过建楼房的过程吗?建楼房时是不是每个人都在各自的区域建造自己负责的那部分呢?当然不是!那么摩天大楼是如何建成的呢?首先应该是打地基,然后用升降机井建楼层,一层接一层的建,再修建内部的构架你能想象出如果每一部分都是在不同场所建造的,最后再将所有这些部分移到施工现场进行整合会是什么样子的吗?即使你有一个绝妙的整合方案,你也会遇到问题:一些部分可能不能互相锲合需要重新做,建筑师可能改变他们的想法,一些部分有可能丢失,整个建筑看起来就像一对乱麻!

完成项目成为软件开发英雄

你的软件项目正面临危险吗?或者它已经处在困境之中了吗?你准备好让你的软件项目重新步入正轨了吗?那让我们开始

扩展阅读

十六招成为大型软件项目的开发英雄[2]


1、源代码控制(Source Control)

你有源代码控制系统吗?如果没有,那就是个大问题了。你得赶紧添置一个。没有源代码控制,你就跟玩俄式轮盘一样:你不能恢复已做出的更改,你没有源代码的备份,你没有历史记录,这样你也几乎不可能建立合适的持续集成的服务装置。

2、持续集成(Continuous Integration)

你有一个持续集成的服务器装置吗?设想一下:生成器是根据导入的代码进行编译,如果你每次导入的代码,都让生成器来编译,这就足以使整个过程变得复杂了,更不用说有很多人导入各种各样的代码。但是,持续集成装置将自动地编译你的软件项目,并且能给你编译的结果。你甚至能添加Unit Tests、Coding Standards Tests等等。但是为了让你更容易明白还是不要搞的太复杂。

3、软件缺陷跟踪系统(Bug Tracking System)

如果没有软件缺陷跟踪系统你就无法方便地衡量软件的质量。在任何时候你都应该能够看到哪些功能模块正在被构建、被测试、被通过以及哪些模块出现问题了等等。如果你还在依靠excel表或是笔记做这项工作,那么赶快投资一点钱添置一个(程序)错误跟踪系统吧!

4、补丁系统(Patching System)

这里我并不是要谈论installer的问题,我要说的是你需要一个补丁系统。你肯定不想经常重装你的testers.

5、删减未测试的功能模块(Disable Untested Features)

删减你的软件中所有未完整地经过软件缺陷测试以及未被使用者认可的功能模块。如果你的软件陷入困境,你很可能会觉得其中还有90%-95%的功能模块能够执行,而实际上却只有80%.

十六招成为大型软件项目的开发英雄[4]


11、为测试人员建立测试版(Build Release for Testers)

让你的生成器加把劲,让他为你的内部质量保障团队建立补丁程序。

12、测试阶段(Testers Take Flight)

希望你已经有了一个质量保障团队,如果没有那你就要着手建一个至少有一人的质量保障团队,并给团队的人配备程序缺陷追踪系统。让他们尽快拿到补丁程序,并且开始测试。顺便说一句,如果你能把客户或终端用户纳入你的质量保障团队那就再好不过了。只要你的测试人员发现错误(如有关功能模块执行的问题),要保证他们能把这些错误报告给软件程序员。如果你有一个好的软件缺陷跟踪系统的话,当你的测试员给出反馈或是改变了错误软件的状态,这个系统应该会自动发送E-mail给程序员。

13、软件开发人员致力于主干开发工作(Software Developers Work on Trunk)

当你的测试员在做测试时,你的程序员在继续着下一周要做的功能模块。当软件出现错误时,程序员返回子系统,解决问题,然后再回到主干的开发中。

14、验收补丁

你的测试员已经完成测试了吗?所有的事情看上去顺利吗?别着急!你仅仅是完成了第一套可以安装的功能模块罢了。从技术上讲,如果你的工作是按照上边列出的步骤进行的,在这个阶段,客户或测试人员应该能够安装这个软件,并有一个可以使用的补丁系统。

15、继续步骤9到14

你要继续不断地努力直到完成那20%的功能模块,这个目标并不像你所想的那么遥远。

16、你的目标是集中攻克一些小的功能模块并把测试版发给测试人员。这与原来完成一个大型的软件项目,实现了它的全部功能却错误百出有很大的区别。

你的团队将会受到极大鼓舞从而能够每周都开发出可运行的软件!他们的工作效率将会大大提高,整个项目将获得巨大的动力!

当测试人员发现软件错误时,你的程序员将更迅速地进行修复,因为他们所写的代码都很清晰的印在脑海中!如果功能模块需要修改,也能很快被发觉,修改过程也将更顺畅。

你的商业用户将看到软件的优势,而你将从他们那里得到更多的资源,更好的工具以及更多的尊重!软件用户将大力支持你的产品!

要做的很多吗?这取决于你的开发流程,如果你没有按上述程序进行,那么你就有大量的工作要做,但是如果你抓住重点、执行迅速,那么要建立一个理想的环境并不难。

享受成为软件开发英雄的乐趣吧!

软件业职位总结5 开发类[1]


需求分析师

在确定项目后需求分析师和客户进行深入和细致的沟通。理解业务和客户在他们中业务中用到交互方式;还需要理解这个项目中牵涉到的各种利益相关人员,要充分的从他们的想法中得到规范的业务需求。重要的是深入的理解业务需求,梳理出需求的各个功能点,每个功能的业务性质,另外还需要挖据出系统的非功能性需求。因为客户并不懂软件专业,他们的口述完全是对未来系统的模糊想法,有些客户可能前后描述的需要自相矛盾,好的需求分析师不仅能清晰的掌握业务需求,不仅将需求从业务人员的口述的功能提炼出需求分析报告,这份报告在不需要接触客户的情况下,开发人员都能清晰一致地理解,高级的需求分析工程师还能从需求中抽象出本质的内容,对于不稳定的需求找出其中的本质问题,可以给出各种重用的方法。能够挖据出潜在的需求问题,对于业务能够提出可兼容、可扩展的需求解决方法。除对需求本身的分析,还得能够理解客户的组织机构、人员组成,关键人物的业务要求。他作出的分析报告,不仅客户中的基层人员能够接受,还能满足高层领导的要求。经过需求分析师的辛苦劳动,最后会给出一份《软件需求规格说明书》,这份说明书为以后的工作奠定了重要的基础。它详细的描述了系统有哪些功能点,每个功能点的操作和数据格式,系统使用者的分类,功能点的优先级,系统的非功能性需求,数据字典,系统的应用环境,扩展点,维护功能,甚至界面要求。

需求分析方法:

1。 绘制系统关联图,这种关联图是用于定义系统与系统外部实体间的界限和接口的简单模型。同时它也明确了信息流和实物流。

2。 创建用户接口(系统操作界面)原型,开发一个可能的局部实现,这样使得许多概念和可能发生的事更为直观明了。用户通过评价原型将使项目参与者能更好地相互理解所要解决的问题。注意要找出需求文档与原型之间所有的冲突之处。

3。 分析需求可行性,在允许的成本、性能要求下,分析每项需求实施的可行性,明确与每项需求实现相联系的风险,包括与其它需求的冲突,对外界因素的依赖和技术障碍。

4。 确定需求的优先级别。以优先级为基础确定产品版本将包括哪些特性或哪类需求。当允许需求变更时,在特定的版本中加入每一项变更,并在那个版本计划中作出需要的变更。

5。 为需求建立模型,需求的图形分析模型是软件需求规格说明极好的补充说明。它们能提供不同的信息与关系以有助于找到不正确的、不一致的、遗漏的和冗余的需求。这样的模型包括数据流图、实体关系图、状态变换图、对话框图、对象类及交互作用图。

6。 创建数据字典,数据字典是对系统用到的所有数据项和结构的定义,以确保开发人员使用统一的数据定义。在需求阶段,数据字典至少应定义业务数据项以确保客户与开发小组是使用一致的定义和术语。分析和设计工具通常包括数据字典组件。

7。 使用质量功能调配,将产品特性、属性与对客户的重要性联系起来。该技术提供了一种分析方法以明确那些是客户最为关注的特性。QFD将需求分为三类:期望需求,即客户或许并未提及,但如若缺少会让他们感到不满意;普通需求;兴奋需求,即实现了会给客户带去惊喜,但若未实现也不会受到责备

使用的工具:UML,VISIO,思维导向工具MindManager。

软件项目经理素质能力的必备要求[1]


随着社会主义市场经济不断完善和发展,中国软件开发服务行业的发展正如火如荼。所有大中型企业,甚至大多数小型企业,都依托信息化平台形成核心竞争力。

Everything is Project,事事皆项目。

软件项目无处不在,无数的项目成败甚至直接决定企业未来发展命运。软件项目经理作为项目成败关键角色,已经深入人心。项目经理已经成为热门职业,一定会一直热下去,除非软件从人类世界消失。

基于个人所见所得、所学所经历,总结一下作为合格的项目经理需要具备的素质和能力。各种书籍和组织无数次地谈到这些,都非常有道理,本文仅代表个人感受。

我暂时称其为5+4素质能力模型

5大素质要求:职业道德、身体素质、心理素质、知识、经验

4大能力要求:领导能力、决策能力、沟通能力、人力资源开发能力

每个素质能力要求点都蕴含着无限的深意,甚至其中一点足够优秀,就可以让你成为一个非常成功的人。但作为真正合格的项目经理,你必须全面,除非你对这个职业没有足够的热情。我们一起来认识他们,给自己一个修炼的方向。

良好的职业道德:

职业道德,作为一名普通的职业人,也许很少有心思来思考这个词语。但随着你带过的项目增多,带过的人增加,你会非常深刻地体会到它是多么的重要。

良好的职业道德表现为做人做事的责任心,面对利益冲突的原则性,团队合作的积极性与热情。不仅如此,而且有着更广泛的内容。思考吧,职业道德绝对是成为合格项目经理的必要条件之一。

人都不善于发现自己的不足,那就让我们从别人的不足来衡量一下。假设你是一位项目总监,你的一个项目很关键,但却出现了一些不小的困难,当然项目出现困难是很常见的事情。而你的一个项目经理油嘴滑舌(可能有点刺耳,就是这点让你觉得他还适合做项目经理,你认为他有沟通能力),而没有强烈的责任心(强调客观原因或者一味埋怨别人,这就是表现),或者面对困难却激发了他想找一份更高薪水的工作。这绝对是缺少职业道德,也是让上级最讨厌的那种项目经理。相信你绝对不想成为这样的项目经理。

那就好好地思考一下职业道德的问题,没有标准可言的。不必呕心沥血似的职业精神,但起码能够做到良好。

健康的身体:

身体是革命的本钱。软件项目经理是一个劳心劳力的职业,责任重而权力小是大家的共识。这一切都需要健康的身体。

健康的身体有多重要,其实不用我在这里说明。我只想谈谈良好的生活习惯对身体的重要性。友情提示:务必养成良好的生活习惯。

我的项目经理和程序员们具有软件开发从业人员共有的特性,尤其是这个行业更偏于年轻,我称其为朝阳行业更好听些,但这些朝阳人花在深夜游戏、聊天、泡吧的时间似乎太多了些,生活不够规律,身体状态大受影响。

我希望作为项目经理或者即将成为项目经理的你,务必要养成良好的生活习惯,保持健康的身体。甚至能够引导你的组员,那就再好不过了。

软件业职位总结3 项目管理类[1]


每当公司接下一个单子,为了能够按时保质的完成合同的交付物,老板就会将这样重要的任务交给项目经理,这是一个要求综合素质的职位,既要懂技术又要懂管理还得性格适合。从这三方面我们逐一了解一下项目经理的工作。为什么会有项目经理这样的职位呢,很简单一个项目总得由一个人来计划调度实施,如果是个小公司那么项目经理就是老板,但是到了一定规模的软件公司老板哪有这么大的精力同时管理多个项目,所以他就将项目分配给合适的项目经理来负责。一般的来说老板要求项目经理确保项目顺利实施,保证客户满意,只有顺利实施客户满意公司才能拿到钱。这也是老板衡量项目经理工作能、水平高低的基本标志。再者老板会让项目经理报告整个项目的评估包括工作内容、工作量,人力安排分配,经费预算,项目总体规划,如何分阶段实施。看过项目经理的报告老板再加入自己的意见,再和其他部门,比如测试部,开发技术部,系统部项目的相关部门一起讨论这份报告项目,确定如何实施项目,最后由项目经理来综合管理这个项目。似乎在这里好像除了老板就是项目经理厉害了,其实不然。项目经理只是综合管理这个项目并不是老板有着绝对的控制权,他要从开发技术部、测试部等相关部门的职员中找到合适的人来成立项目组,要想组织起一个成功的项目组,这不是想象的那么简单,需要这么项目经理有适合的性格,一个脾气大有抠门的项目经理是组织不起来好的队伍,但是脾气好由大方的也不一定能,需要一个合适的性格。来管理那些属于不同部门的同事一起同甘共苦完成项目。既然队伍拉起来那就干吧,既然是这个项目组项目经理很多关键问题需要他来决策。项目经理要亲自决策的问题包括实施方案、总体技术方案、重大技术措施、奖惩、设备采购方案、资源调配、进度计划安排、合同及设计变更、接待客户等。 是她来决策干活的可能是架构师、测试部工程师、也可能就是他自己做的文档。在实施的过程中不断的监督进度,检查质量,修正方向,修改方案,和各部门扯皮最多的是系统部和测试部,向老板汇报,联系客户展示阶段成果和客户沟通,还得犒赏组员吃吃饭喝喝酒。最后按时按要求的交付。我们来看看项目组的成员,一般项目组都会有架构师,系统分析师,需求分析师,开发工程师,测试工程师,一半个系统部的人,QA,项目经理就是要哄着这些人好好努力工作,不惜加班,带病工作。

但这样人都不是好惹的,他们中有些人的级别比项目经理的级别高,薪水地位比他高,怎么能带好这支队伍,这就要求项目经理有个合适的性格。在别的行业项目经理可能不会遇到这样的问题,但是软件行业这是常有的事,甚至有的老板都不了解这个问题,随便招来一个自吹自擂的家伙就让他来负责,结果组员告状,消极怠工,项目失败或者不成功。可见项目经理要有好的EQ。其次还有具备项目管理知识,项目管理已经发展成一门的管理学科,它不仅仅要项目经理具备软件开发过程管理,熟悉CMM知识,还得具备较深的开发技术功底,不然要是一个笨蛋架构师提交了一份糟糕总体设计若是没有相关的知识不能及时纠正项目实施出现了问题再从头来。可见一个合格的项目经理要具备懂技术甚至是技术高手能够代领大家走出技术困境,发现错误还得懂管理运用科学的项目管理知识经验最后还得有个合适的性格。要介绍项目经理的工作和如何做一个好的项目是一个非常大课题,但是从讲座的目的我只想大家了解下项目经理的工作,如果有志在这个方向发展的朋友,我的建议就是项目管理是干出来的,不是学出来的不要以为去参加个软考拿个证书就能干这行,同样我早大一的第二学期就认识到我的本科专业管理工程不会让我在毕业时找到好工作,同理管理是干出来的,不是学出来的,所以我马上纠正了自己,通过考研究生换了专业。

性格决定成败-软件开发人员如何成长[1]


对于一名软件开发人员,自入行以来, 在对自己的职业生涯进行规划时,很多人都会感到一些茫然和踌躇,因为通往成功的道路有很多条,选择哪一条,怎么去走是两个很重要的问题。

性格指引方向

成功不易得, 所以通往成功的道路必然复杂而曲折,中间有岔路,也有捷径。总结起来, 主要分为两条主干:职场道路与创业道路。这两条道路有一个共同的特点--呈阶梯式递进。

Corporate Ladder 阶梯式职业生涯

Start-up 自主创业

由上图可以看出,对于一名技术开发人员,如果做详尽的职业规划,就会发现有很多条道路可以选择。在选择的过程中,有一点非常重要:无论开发者最终选择哪条路,归根结底都取决于自身的性格和所愿意担负的责任多少。因为,一名技术开发人员,最初主要是对自己负责,但当他成为总监或首席技术官后,就要开始为所在的整个团队负责了。
另一条主干路--自主创业,其特点在于不依附于任何一家大型软件公司而是独立成长。就国外的一些软件厂商来讲,为软件开发者提供的多数工作机会是在大型的软件公司,但其实小型的软件公司数量也很多。

大项目、小项目都是程序员成熟之道[1]


一下子就跨到了新年,时间真快呀!言归正传,今天谈谈项目问题。

我们常听到同行说自己做过什么项目,说某某做过什么项目。一谈到项目就会眉飞色舞,兴高采烈。而不少新进单位的新大学生、一些编程新手,往往不知道什么项目,不知道项目与自己成长的关系,有的甚至声称编程好几年了,还都没有做过项目的经历。情况确实如此,只有参加过项目的程序员才是真正的程序员。那些没有做过项目的虽然自己编制了不少程序,虽然得意过自己的程序,但是,毕竟和做过项目的程序员有很大的差别,这些差别主要在于:

1、 程序的价值

没有做过项目的程序员,编写程序的目的主要是学习,通过编程来提高自己的编程能力,编啥、怎么编都由自己主观决定,自己能做什么不能做什么都不是太清楚。至于程序能否被别人使用,程序能否卖出价钱,程序员并不太关心。

做项目的程序员则不一样,他编写的程序不是用来学习的(尽管他是抱着学习的态度参加项目的),而是作为商品的一部分出售的,编出的程序要投入日常运行的。他别无选择,必须完成程序功能。程序员的价值通过程序出售的价格以及程序使用来体现。

2、 程序的时间要求

没有做过项目的程序员,编写程序的时间长度是由自己决定的,自己高兴什么时候编好就什么时候编好,遇到其它事打搅,拖个十天半个月也无所谓!

做项目的程序员则不一样,他必须在规定的时间内完成编程,只能提前不能延后,否则整个项目进度就会被它拖后腿,而由于项目延期不能按时交付给客户,其结果就有可能因延误被罚款,甚至取消项目。

3、 团队

没有做过项目的程序员基本上是单枪匹马地编写程序,程序功能相对简单,一个人多花点时间也能完成。

做项目的程序员则成了项目组的一个成员,他只是负责整个项目的一个部分,或者说只编写其中的一段程序,而不是全部。因此,他的程序必须要和其他人编制的程序对接、他的程序必须读别人的数据,他的数据也可能被别人读。这里的每一个环节都不能出错,一个地方出错就会影响整个项目。所以,他必须和团队的其他人很好协作共同来完成自己的程序。

4、 学习氛围

没有做过项目的程序员学习靠自学,靠网上google去学,学的内容随意性很强,学好学坏没有人监督。

做项目的程序员不但靠自学、靠网上google去学,还必须向项目负责人去学、向项目组其他人去学、向客户去学。而且学的东西都有针对性。向项目负责人去学习程序设计详细方案、向项目组其他人去学习程序接口、数据接口、向客户学习业务及需求等。程序的好坏要通过测试环节和用户使用加以验证。

所以,通过参加项目程序员可以克服自以为是的错误观念,树立为客户编程的思想,以软件销售价值来衡量自己的价值;树立团队意识,把自己融入到团队之下中,以团队荣为荣,以团队耻为耻;在项目中学会从大局看待程序设计、学会评判程序难易之处,学习更加实用的程序方法和算法。

那么是什么项目?这里所指的项目可能和一般的项目定义侧重有所不同。这里的项目一般是指客户提出需求,软件公司或企业内部项目小组按照需求进行设计、开发,投产、维护等工作的总和。它只包含软件相关的费用,其他硬件、网络、软件环境费用不在此考虑之列。

项目是有大有小的,有的大的项目以亿为计,有的小项目以千而计,千差万别。由于没有标准,不同的人对项目的大小定义是不同的。例如,有的企业把一百万以上的软件称之为项目,把1千万以上称之为大项目。有的小企业把1万元以上的软件称之为项目,把5万元以上称之大项目。这些项目大小主要取决客户对资金管理范围和等级,一般而言,项目越大,需要单位或企业越高的领导层批准。

软件业职位总结1 销售类[1]


目前软件界职位分类:

销售类:售前工程师、售后工程师、系统集成工程师;
测试类:测试工程师,产品测试经理;
项目管理类:项目经理,QA工程师;
系统类:网络工程师,基础设施工程师;
安全类:安全系统管理员,网络安全管理员,安全开发工程师;
维护类:数据库管理员,系统管理员,系统运行维护管理员
开发类:需求分析师、开发工程师、人机系统开发工程师、系统分析师、架构师;

1、随着软件的复杂度越高,软件业中的职位进一步细分。有利于合作,以更好地解决问题,提高效率。越来越细分的软件职位对与有志从事软件业的人员来说是个不好的消息,不知道将来向上往哪个职位奋斗!帮助大家了解目前软件业有哪些职位,这些职位具体承担哪些工作,这些工作大致需要哪些技术知识或素质。确定从业信心,看到从事软件行业自己会有哪些可能的选择。在大家的软件职业生涯中可能会遇到各种各样的工作机会,每种职位的发展各不相同,每个人的特点或性格都不同,对于日新月异的IT业发展,提前确定目标并规划是非常有益的。

在介绍每类职位的同时,我们来了解一些业内常用的工具比如:测试类会用到:WinRunner、LoadRunner、TD;项目管理会用到SourceSafe、StarTeam、ProjectManager;开发设计类会用到Enerprise Architect、Rose Rational。对于有志向未来从事某类职位的人了解一些业内使用的工具和一些工作情况,避免闭门造车、盲目学习,或是在面试中能够提出这些工具表明自己用过或者接触过这些提升自己的竞争力。

2、帮助大家了解典型的软件企业的技术组成,当看到一个陌生的企业发出的招聘时能够真正理解这些职位的技术要求,在应聘时良好的心理准备。每个软件企业专著的领域不同,比如有的主要业务电信通讯业,有的专著医药软件,有的主要做物流软件。虽然这些企业的主要业务和客户都不相同但是工作机制基本相同,总归都有类似的组织结构,各个职位和技术力量可能分配的比重不同而已。不要看到招聘中的要求有些自己没有掌握也没有接触过就退缩,只要你以前确实为这类职位类型准备过经过刻苦的学习积累过工作经验,那就去试试。

3、既然已经了解典型软件技术类职位组成,这些职位要求的技术要求的性格素质各不相同,有着不同的职业特点,你在哪方面有兴趣,你的特点更适合在哪方面发展,希望此次讲座对你有所帮助。

售前工程师:

软件行业与其他行业一样都有类似的营销人员,相比那些在商场、电视购物中推销产品的销售人员,软件业的销售类职位要求很高的技术知识、对软件产品详尽掌握(包括产品应用的范围、技术特性、同类产品的技术比较、客户技术应用的环境、软件的行业特点、性价比的演示),售前工程师之所以是工程师就在于他要掌握非常专业的专业技能,不像商场销售电视、电饭锅的导购员经过几天的培训就能上岗,一个优秀的售前工程师可能做过多年某个行业软件开发,积累了多年对此行业软件的理解,非常了解这类软件的行业需求,在各类企业中的应用情况,他会知道如何配置或者实施自己的软件来满足用户的需求,当用户问起一些技术特点时他能从容应对并且展示出自己对销售软件的信心,还能将销售的软件的某些技术优势潜移默化的传递给客户。现在的软件市场巨大多数是买方市场,客户的业务需求被软件公司挖掘的都差不多,如何使自己的产品在客户的客户的心理中的技术面上占据重要的地位,不仅要完全掌握当前流行的技术,还得充分了解客户的详细需求,能将这些产品的技术和功能和客户的需求合理亲切的吻合在一起,这些是一个优秀的售前工程师要具备的基本素质。还有一些公关方面的能力。

举个例子:有一个客户是国内一家著名的电器制造企业,正准备上一套计算机管理系统。售前工程师在拜访客户的之前详细地准备了一套产品ppt来演示涉及生产计划、采购、制造、仓库、销售、财务、考核等各方面的功能。由于系统实施很复杂,用了将近一星期的时间来准备材料,自以为得很充分了。在客户那里给客户演示产品刚开始一段时间,客户就打断了售前的介绍问了三个问题:

你知道我的企业管理中有那些问题吗?你的软件具体能解决我企业的什么问题?
你有多了解我这个电器行业你的软件在那些方面有所体现?
我花几百万买你的软件我的投入值不值得?

由于事先只关注自己的产品没有深入了解该客户,对整个行业又不是很有经验,只能支支吾吾地回答了一些类似有效降低库存,提高订单的反应速度,提高客户的满意程度等套话。客户很客气地终止了我的演讲婉言谢绝了这次推销临走时他告诉笔者,他需要的是一套适合电器行业的能解决他公司实际管理问题的软件系统而不是我们这套软件。

售前的工作不仅是上面所提到的,他的工作越来越像咨询工程师,好的售前拥有卓越领悟力优秀的客户沟通能力。给客户强大技术优势感和信任感。同时真正能够发现、理解、解决客户的问题。

举个例子:像Oracle 、IBM 、MS、华为的售前工程师,技术能力、行业知识、穿着举止、收入;国内小公司售前就差一些。

再谈如何成为技术领袖[1]


要想成为一名优秀的技术领袖,需要具备哪些方面的素质?我在IBM辅导很多年轻同事,如何才能帮助他们在职业生涯中成长为技术领军人物?是否只要拥有了过硬的技术本领,就能成为技术领袖?许多年轻的朋友技术拔尖,然而却觉得没有得到领导的赏识, 这又是什么原因呢?我常常都在思考这些问题。去年这个时候,我同读者朋友们分享了一些心得,我想结合自己多年的高校教育和IT从业经验,再同大家谈谈这一话题。

1.我很清楚地告诉大家,要成为技术领袖,技术是必要条件,但不是充分条件。如果一个人技术基础不够扎实,他几乎等同外行,领导其他技术人员不说没有可能,但至少会相当困难。另一方面我们在国内外都能看到不少拔尖的技术人员,有的是一流的科学家,有的是一流的技术专才,可一旦把他们放在领导岗位上,却都以失败告终。他们虽然技术出色,但是没有当领袖的能力,工作中四处碰壁,缺乏凝聚力,不得人心。

2.要成为技术领袖就要清楚公司的业务,知道技术应当如何配合业务需求。作为技术领袖,只有做到这点,才能使公司业务有大的发展,才会得到高层领导的认同。如果你只懂技术而不懂公司业务,或者你在大学工作而不懂领导教学科研,是没有办法胜任技术领袖的。我们钻研技术的朋友往往忽略了这一点,对某项技术非常专注,但是两耳不闻窗外事,没有把注意力放到公司的发展需求上来。

为了更好地协调个人职业发展与企业业务发展,需要处理好工作的优先级,分清主次。在日常工作当中,我常常为同事画下面这幅图,帮助他们进行分析。

如果有一项工作摆在面前,我们如何定义它的重要性,应该花多少力气去做?我们可以通过象限分析找出答案。第I象限表示此项工作对企业业务发展和个人职业发展都很重要,这是最完美的结合,优先级应该放在最高级。我们在企业中应该多做此类工作。第II象限表示此项工作对企业业务非常重要,但是对个人目前的职业发展看似并不特别重要。我们要以企业的利益为重,所以优先级应该放在第二位。第III象限表示此项工作对个人职业发展很重要,但是对企业业务发展不那么重要,我们应该把它放在第三位。第IV象限表示此项工作对企业业务发展和个人职业发展都不重要,优先级应该是最低的。对这类工作,自己最好不做或者少做;就是做,也应该尽可能少花时间去做;或是请其他同事去做,因为对你的个人职业发展不重要的工作不等于对其他同事的个人职业发展也不重要,换言之,此项工作可能对其他同事的个人职业发展很重要呢。

许多企业都在创造一种文化,希望能将企业业务发展和员工的个人职业发展紧密结合起来,尽管有时候很难兼顾。作为一名领袖人物,他一定更多地在关注大局,而不是仅仅看到自己。关注大局的人会处处从公司的业务、公司的需求出发。在实际工作中我们常常可以看到,一个真正把大局放在第一位的人,即便今天不是领袖,明天也一定非他莫属。现在的领导不欣赏,将来必会为其他领导所赏识。

3.一个能把握大局的人需要具备很多能力,其中非常重要的一项就是我下面要谈到的第三点--决策力。作为技术领袖,要有坚强的领导能力,敢于面对各种困难的挑战,敢于决断。有些人天生就有准确的决策能力,而更多人需要靠后天来培养。

在我的孩子还小的时候,我就给他灌输这种思想,培养锻炼他。如果他要问我,我就让他自己做决定,不论决定是对是错、是好是坏,在我看来都是正确的。因为最大的错误是该做决定时你举棋不定。再举一个例子,美国前总统布什刚刚上任的时候,很多人批评他没有总统的风范,但是经过几年的洗礼他的确拥有了总统的气质。原因又是什么呢?因为那个职位训练了他,很多情况他必须要做出决策。

对于程序员来说,虽然无法像领导那样做重大的决定,但仍然可以在自己的范围内做出决策。例如使用什么样的技术手段, 采用何种算法实现, 选择哪种数据结构,如何撰写文档,同谁一起合作,这些并不一定非要等老板或者构架师来判断。大家应该有意识地锻炼自己,慢慢成长,直到将来能够领导大的项目。每个人不可能一开始就能对一个完整的系统做出决策,可是如果不从当程序员的时候就开始锻炼自己,将来也做不了。

面对决策失败可能带来的后果,我们应该学会坦然面对,学会承担。如果不去做决策,不愿承担责任,就永远无法取得进步,无法获得做技术领袖的能力。

软件业职位总结5 开发类[2]


开发工程师

俗称程序员,流传一句话恭喜,你选择开发工程师做为自已的职业;悲哀,你选择开发工程师做为自已的职业。这句话真的是非常有意思,好的开发工程师,可能从写代码做起,掌握了丰富的开发技术(c,c#,java)很快的做到系统分析师,架构师,产品设计师,走向管理层作部门主管或是CIO。辛苦的工程师可能从c到c++,再到java,开发使用的工具也是经常变化。技术在不断进步,工程师也得不断学习,从COM,DCOM,COM+,.netRemoting,WebServices,WCF等等,总是跟着技术跑。在日常工作中也是废寝忘食,非常疲惫,而且还经常让测试人员呼来喊去,偶尔还会被老板教育。我曾经的一个同事做了7、8年开发,非常优秀有一次出差回来,发现他不在了,辞职走人,以为跳槽到大公司去了,后来同事告诉我他出去开了家陕西面馆。软件开发工程师有一般来分:.net、java。我本人做.net开发,属于微软阵营。本人不太喜欢讨论哪个阵营好哪个有前途,之所以没有做java一直在微软的.net阵营混,完全偶然,工作和项目上的需要。目前也没有计划去做java。但是会经常关注java的发展,了解一些新技术。

日常工作包括:

1、根据项目具体要求,承担开发任务,按计划完成任务目标。

2、独立完成软件系统及模块的编码。

3、负责编制与项目相关的技术文档。

4、配合系统分析人员完成软件系统及模块的需求调研与需求分析。

5、配合系统分析人员完成软件系统及模块的设计。

6、协助测试试人员完成软件系统及模块的测试。

一个公司内的开发工程师都会分等级,高级开发工程师、开发工程师、助理开发工程师。一个正常运行的软件公司不是那种从零开始的,都会有自己的技术积累、成熟的开发框架、公共开发组件。一般的工作都是在此基础做开展。新项目开发了,高级开发工程师可能分到的任务都是系统技术核心部分,如开发框架,公共代码,数据库设计,数据字典管理等;开发工程师会做一些一般功能的实现,比如系统中的几个模块;助理开发工程师等级较低,会在前辈的基础上使用公司的技术基础开发一些简单功能或模块,一般是照着前辈的代码抄。高级开发工程师为公司的技术打下坚实的基础,写一些公共组件和代码。或是应用新技术作些示范,教大家如何使用。开发工程师能够独立的完成自己的任务,提出一些好的想法。助理工程师会好好学习,融入到整体技术环境中。

开发工程师是系统最终实现的实施者,工作有很强的成就感。他掌握的开发技术很多,掌握数据库系统Oracle、MySql、MS SqlServer,基础开发语言C、C++,JAVA,C# ,系统建模语言UML,XML,开发环境VS、ECLIPSE、JDEVELOPER、NetBeans,服务器环境Win2003、Redhad、Unix等,应用服务环境IIS、Websphere、weblogic,开发框架。net framework、java容器、Hibernate、Spring,流行的实现技术设计模式、三层结构、COM+、webServices、WCF、WPF,SLIVELIGHT。实事求是的将说开发工程师是一种中间职业状态,原因很简单谁也不原意每天爬在键盘上废寝忘食狂敲代码。在项目经理的不断催促下赶进度,不断的接到测试工程师的错误报告,惭愧的说不小心做错了,马上改。偶尔还会和不懂事的客户纠缠如何操作。但是不是所有人都能突破开发工程师晋升到高级职位。但是反过来说开发工程师是系统实现的最直接的工程师,就像一个宏伟的建筑,设计者只是在纸上画画,但是需要施工方辛苦的劳作,最终拔地而起。可想在你的辛苦劳动下一点一滴完成的了这项工程,成就感是非常大的。而且在编写代码作开发的阶段会积累很多很多的经验,需要不断的学习新的技术,在有的时候高级职位还需要向你请教。所以另外一方面开发工程师可能是很多高级职位必须经历的过程,几乎所有的软件高级职位的招聘都有几年的开发工作经历,丰富的开发和实施经验才能使你在高级职位上,在系统还没有开发时,就能预见和分析出系统的技术需要等等问题,带领大家成功的完成任务。

以上《十六招成为大型软件项目的开发英雄[1]》一文,由编辑精心撰写而成,希望对您的职业规划有所帮助,更多精彩请访问“开发职业规划”专题!

相关文章

最新更新