职业规划是对职业生涯乃至人生计划的过程,职业生涯规划的好坏可能将影响整个生命历程。感谢您阅读《软件业职位总结3 项目管理类[2]》内容,职场资讯网小编向您推荐一些职业规划知识,欢迎参考,希望能帮到你。

高级项目经理

同他的名字,就是比项目经理更厉害的项目经理。有时高级项目经理是老板对跟随自己多年的老功臣的安慰,有时只是为了让薪水拉开距离,有时是只有高级项目经理去做大项目,也有的时候高级项目经理来管理项目经理,它是项目经理的老板。总之具体的工作还是那些只不过更高级了,就像有些人的职务前加个资深。我在公司做的就是高级架构师但是做的就是架构师的工作,给个高架的职位是老板对你安慰,而且他还不让你写代码,如果不做开发时间长了很多东西就会逐渐流失落后。

我们来说说项目管理类的职位会用到哪些工具,最基础的就是Word和Excel,不要小看这两样,他为项目管理提供了最基础的数据,每份统一了格式的文档,每份精心设计的Excel都是项目的重要成果,包括各个项目周报,个人周报等等。然后就是专门用于项目管理的软件如MS Project。软件生产是智力密集型的活动,其产品无物理外形,生产状态也不可见,因而难于检查和驾驭。如何管理项目的计划、调度、通信、费用估算、资源分配以及质量控制等。软件项目管理工具就是要使这种生产过程成为可见、可控的过程。使用它能帮助进行成本估算、作业调度和任务分配,并制定出成本较低、风险较小的项目开发计划;同时能设法在预计工期和经费之内适当调整项目的安排,以节省时间和人力,从而对软件生产的各个环节进行严格、科学的管理,使项目开发活动获得最佳的进程。 使用专业的项目管理工具不仅有效的帮助项目管理,而且它还能规范你的管理过程。

QA工程师

如果一个软件企业正在实施CMMI或者已经建立了研发管理体系都会在项目组中加入一名QA工程师。在我的工作经验中只有到达软件企业的公司,组织规模在300人以上,才可能去实施CMMI,就算去实施CMMI,最后也只不过是为了拿个CMMI的证书,QA工程师很多时候都是为了CMMI才存在的。不知道是咱们的软件公司不重视研发管理还是CMM和CMMI不适用于中国人。CMMI标准文件说,QA是高级经理的ears and eyes。研发人员眼中的QA往往也是警察,QA的作在于发现和报告项目的问题。一个合格的QA在项目中会充当三种角色:

角色1-老师,具备学习和培训的能力。

角色2-医生,通过度量数据对项目过程进行诊断,帮助分析原因,开处方。

角色3-警察,以企业流程为依据,但要告诉大家流程背后的原因;如果和项目组针对某些问题意见相左,可以直接汇报高层。

但在我的工作经验中却没有看到过这样的QA,虽然我的项目组也有为QA,但是主要为了实施CMMI而设置的,她是一位女性,不参与我们的讨论,只是默默地看着听着,然后回去写她的文档,只有在项目组研究去哪里吃饭庆祝阶段成果时就是看到她积极踊跃发言。

扩展阅读

软件业职位总结2 测试类


测试技术经过这么多年的发展,在大学已经有软件测试的专业,在很多年前就有软件测试研究方向。我读硕士研究生时的研究方向就是网络协议的一致性测试。在这里只是介绍测试职位在实际工作中的具体工作是什么。一个测试工程师的工作大致上是在完全理解软件的业务需求后根据每个功能点和它的分类;编写功能测试例,将测试例分组归类成测试套件。测试例是测试文档中最基础的组成部门,测试工程师根据测试例去测试软件,测试的软件是在经过开发部门单元测试后提交给测试部门用来做集成测试和系统测试。随后咱们介绍一下测试工作的种类:单元测试、集成测试、系统测试、回归测试、性能测试、安全测试。测试软件可以是人工操作通过鼠标点击键盘录入来实现,也可以编写测试脚本,或者在人工操作测试的过程中通过专业测试软件录制测试脚本,然后再手工修改部分代码,以后就可以自动执行测试,不用再手工测试。提高了测试效率和测试的准确性。因为一个软件的测试例在编写的时候软件业务需求、技术需求等文档基本都已定稿,所以测试文档确定以后是很少修改或变更。测试脚本或测试程序也变化不大,每次的回归测试如果都是手工测试那么工作量可想而知,回归测试一般都是由测试脚本来自动测试。因为编写的测试脚本最终运行后要给出测试结果,一般的测试结果分三类:通过、失败、未决。

关于测试的分类一般分为以下:单元测试、集成测试、系统测试、回归测试、性能测试、安全测试。单位测试一般有开发部门自己完成,主要测试自己编写的代码实现的功能、组件接口是否符合设计文档,输入输出是否正确。在完成单元测试后提交给测试部门。管理规范的公司或者通过CMM3级的组织都会有代码管理工具如StarTeam SourceSafe等。测试部门会在开发部门提交代码后下载最新版的代码,集中编译上传到测试环境中,进行集成测试。集成测试用来测试软件的各组成部分是否能按设计要求组合在一起实现预定的功能,做各模块联调测试,检查各模块的接口是否一致、各模块间的数据流和控制硫是否按照设计实现其功能、以及结果的正确性验证,可以是整个产品的集成测试,也可以是大模块的集成测试。集成测试之后就是系统测试:它是针对整个产品的全面测试,既包含各模块的验证性测试(验证前两个阶段测试的正确性)和功能性(产品提交个用户的功能)测试,又包括对整个产品的健壮性、安全性、可维护性及各种性能参数的测试。回归测试是当软件需求发生变化,程序代码也完成更新,这时要测试一下修改或新增的代码对已有未变化的功能是否有影响。防止修改了旧bug增加了新bug。或者增加了新功能原有的功能却不能用了!性能测试一般会测试软件并发用户数,响应时间,大数据的处理,长交易处理能力,宕机恢复能力等一般会使用LoadRunner。安全测试主要基于工具分析和扫描,检查是否存在危险如:注入攻击、拒绝服务、配置操纵、访问控制、日志伪造等等。

产品测试经理

属于测试工程师的老板或上级,具有丰富的产品测试经验和需求领悟能力。曾经的一个测试事故让我对产品测试经理的能力有了非常深的印象。有一次系统新增加了一项与之前功能相关且名称相似,测试工程师没有理解业务需求编写出来的测试例几乎没有覆盖新增加的功能,被产品测试经理检查出并纠正。敏锐的洞察力和良好的分析、研判能力来分析市场发展趋势,可以提出软件的发展或进步方向。把握用户需求,完成需求分析到测试转变,对产品设计的生机和改进要能提出关键的意见。负责或配合其他部门,持续改善产品。负责测试团队的日常管理工作。

测试类职位的特点

职位的重要性和地位在稳步上升,与开发类平分秋色。在前些年人们往往看不起测试职位,一方面它位于整个项目的下游,如果没有开发就没有测试,测试总是跟在开发后面。另一方面软件系统的复杂性和应用环境简单,测试在项目起的作用较小。但是这两方面随着开发技术的发展尤其测试驱动开发TDD,还有是人们对软件质量的关注使得测试逐渐和开发地位基本持平。我原来在的单位技术性的员工有100多,开发技术部的有40人,项目部30人,测试部30人。

且职业寿命在积累中逐渐增长类似医师。自动化测试、一致性测试、互操作测试等等技术的发展使测试工程师在工作中不断积累了经验,不像开发类的技术和工具都不断更新。而测试类的工程越来越值钱,越老对软件的理解越丰富。

在软件业技术是非常重要的,在从事技术类高级职位的工程师,不仅有非常好的技术,还能带领一支技术队伍,像导师一样帮助他们给于技术支持和指导,确定工作方法,指明工作方向,解决队伍在项目过程中遇到各种技术问题。同时还要具备领导能力。我在读研究生的时候老师让我给本科生带辅导,我对这样工作一点不重视,觉得不就是看着他们做实验出错的时候去给调试一下,但是我的老师很严肃的对我说:你要给别人一滴水,你自己要有一桶水,我有又了一句,如果你只有一滴水,你只会给别人一头雾水。

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


售后工程师和系统集成工程师:

都属于技术支持工程师,当客户把软件买下了,在使用的时候总会出现各种故障,不单是小软件公司的售后要经常跑到客户那去解决软件运行报错,安装故障,误操作错误,数据恢复等等问题。越是大公司它的售后技术支持力量越大,因为他们的软件承载的业务非常重要,一点异常或是错误都会给客户带来巨大的损失也会让自己在业内蒙受羞辱。售后工程师首先是要对自己负责的产品非常精通,熟悉每个组件的运行情况,产品的安装环境,客户的业务运行状态等等。在出现问题及时赶赴现场为客户解决故障,挽回损失。系统集成工程师的技术特点与售后工程师类似,在客户把软件买下后分析客户的业务需求完成产品的实施,最终满足客户的要求。

为什么将销售放在第一个讲,不仅是销售类的薪酬高、技术要求高,另一个原因是我的个人观点:软件业经过这么多年的发展,正在转变为传统行业,传统行业的一个特点是销售非常重要。

1、传统行业的特点2:8 ,20%的企业占有市场的80%份额,软件业的大公司逐渐分化分别控制不同行业的软件需求,如金碟、用友在国内财务软件类的巨头,东软则是医疗类软件巨头,数据库类的有ORACLE MySQL、 SQL SERVER、DB2分别属于ORACLE、MS、IBM公司三家公司的数据库产品几乎瓜分数据库产品的销售市场。在桌面操作系统类XP,VISTA,WIN7和Ubuntu RedHat 雪豹;服务器类的WebLogic、WebSphere、IIS、Glassfish;随着虚拟化,云计算技术的发展未来的软件业的格局可能会更加集中,将为客户提供更加专业的服务。

2、需求推动技术发展到技术引领需求发展的转变,在软件业的初期都是有这样那样的业务需求,比如图像处理、三D建模软件,都是有着很多的需求,哪个软件能率先满足这些需求,他的公司就能迅速发展。在大家的软件都实现了用户的需求时,哪个软件实现的效果好运行的稳定操作人性化那么它的公司就会淘汰那些不向前发展的公司。比如:netAnts flashGet xunLei 现在各家公司做软件都做得不错价钱也都公道,怎么才能让客户信赖自己的产品和公司呢,那就是引导客户的需求,这时就是技术引领需求发展了。比如现在的主数据、元数据管理,SOA等。

3、咨询服务在软件业的比重越来越大,IBM有很多业务都是咨询服务一份报告30页,一个月时间60万。软件业的售前活动非常像咨询服务,售前工程师通过拜访客户,与客户交谈了解业务情形和特点,发现并理解目前存在的问题,提出针对的解决方案,并将自己的解决方案与别的公司做技术和经济性的对比。

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


职业规划是对职业生涯乃至人生计划的过程,职业生涯规划的好坏可能将影响整个生命历程。感谢您阅读《软件业职位总结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。实事求是的将说开发工程师是一种中间职业状态,原因很简单谁也不原意每天爬在键盘上废寝忘食狂敲代码。在项目经理的不断催促下赶进度,不断的接到测试工程师的错误报告,惭愧的说不小心做错了,马上改。偶尔还会和不懂事的客户纠缠如何操作。但是不是所有人都能突破开发工程师晋升到高级职位。但是反过来说开发工程师是系统实现的最直接的工程师,就像一个宏伟的建筑,设计者只是在纸上画画,但是需要施工方辛苦的劳作,最终拔地而起。可想在你的辛苦劳动下一点一滴完成的了这项工程,成就感是非常大的。而且在编写代码作开发的阶段会积累很多很多的经验,需要不断的学习新的技术,在有的时候高级职位还需要向你请教。所以另外一方面开发工程师可能是很多高级职位必须经历的过程,几乎所有的软件高级职位的招聘都有几年的开发工作经历,丰富的开发和实施经验才能使你在高级职位上,在系统还没有开发时,就能预见和分析出系统的技术需要等等问题,带领大家成功的完成任务。

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


系统分析师

经过几年的开发工程师经历,积累了丰富的开发经验,在不断的努力下你的职位得到提高已经不用再每天Coding了,可以写写文档、画画图做设计了。

系统分析师主要参与或主管以下工作:包括业务需求、实现功能、性能要求的分析和总体技术设计工作。参与并指导开发工程师完成详细设计文档和代码编写,解决系统关键部分的设计和开发工作,制定技术文档的格式、内容。对系统实现的程序代码、脚本、数据库等交付物进行审计和质量管理。

系统分析员要不断的学习,不断的实践,不断的更新知识,不断的优化自己的知识结构,这一切都使得系统分析员成为稀有人才。在软件组织中属于高级职位。好的系统分析员师都是从优秀的开发工程师中产生的,有着坚实的开发功底,丰富的编程经验。没有对系统本身进行过透彻剖析和编码实践,很难领会到其中一些难以言述的精华。

系统架构师

在软件和硬件系统没有发展到现在的应用规模时,人们普遍的认为,教科书也在说程序=数据结构+算法。但是随着系统的发展,程序处理数据量、并发介入客户、系统的需求变更、运行维护等等的工作使得大家对软件的架构越来越重视。不仅数据结构(数据库设计、类、字段等)算法的实现技术有很大的进步,而且对系统技术结构,系统各组件的设计,系统的部署等等方面更加重视了。随着计算机网络操作系统、虚拟化技术、WEB服务器、应用服务器、中间件、应用程序容器,SOA,企业服务总线等技术的推广架构设计已成为软件系统的首要考虑。在经过一些项目的实施之后,人们逐渐意识到,即使你对系统有良好的分析和设计,但是由于没有在软件架构方面做深入的分析在随后的系统运行中,麻烦越来越多。比如我们怎么在不影响业务运行的情况下将需要更换的组件撤下,将新开发的组件上线。一个大单位中上线的系统越来越多,怎么统一管理这些系统共享的数据资源,使各系统在任何时候都能拿到同样的数据又能及时地更新。系统架构师是要站在系统之上和企业所有系统系统之间去分析,在未来多少年之内采用何种技术企业的信息系统能够轻松应对业务需求。

结束

经过了解以上这些职位,我想大家对一个软件公司都有些什么样的人有了一定的了解,在一个有一定规模的软件组织中分工是非常详细的。希望这次讲座大家对软件公司的技术类职位不再陌生,不要只知道我我将来就要搞软件呀,能够清楚自己的目标。

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


目前软件界职位分类:

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

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

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

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

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

售前工程师:

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

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

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

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

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

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

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


需求分析师

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

需求分析方法:

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

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

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

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

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

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

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

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

软件业职位总结4 系统类、安全类、维护类[1]


职业规划就是对职业生涯乃至人生进行持续的系统的计划的过程。一个完整的职业规划由职业定位、目标设定和通道设计三个要素构成。

系统类、安全类、维护类

将这三类放在一起,一方面是我在这方面工作经验比较少,只是平时在工作中接触,另一方面我觉得在这几类职位的工作内容是很多职位都需要掌握的技术只是这几类职位要求的技术更精,承担的工作量更多,比如系统管理员每天都会监控服务器,会将给加入团队的同事建帐号授权,将离开的旧同事帐号注销。现在我们来一一介绍这几类职位,最后的重要的原因是这类职位与软件职位有关系但与软件职业有些距离。

网络工程师

一定规模的软件公司或者大型的单位都需要将本单位的计算机联网,建设网络不仅需要布线,调试网络设备如交换机、路由器、放火墙、VOIP设备、存储设备等,还需要管理接入网络的各种设备比如服务器ip地址,一组计算机的IP,网络打印机等等。具体来说网络工程师从事的工作有以下几类:

1. 负责机房内的网络联接及各网段的划分配置。

2. 负责系统网络的拓扑图的建立和完善,并做好系统路由的解析和资料的整理。

3. 负责机房线路的布置和协议的规范工作。

4. 负责计算机间的网络联接及网络共享,并负责网络间安全性的设置。

5. 负责对网络障碍的分析,及时处理和解决网络中出现的问题。

6. 利用网络测试分析仪,定期对现有的网络进行优化工作。

根据网络工程师的专长大致有:配置管理类;布线施工类。

喜欢网络的不是喜欢上网的同志可以投身到这个职位的发展中,我研究生是学习网络的,研究的是网络协议一致性测试,但是后来并没有一直在这个方向上发展,并不是网络工程师没有发展,只是我的工作没有遇到这样的机会,我的一些同学后来一直从事网络方面的工作。在后来的工作中网络技术知识给与了我很大帮助,经常性的在一些和开发人员的技术讨论会中提出专业的术语让同事惊讶。现在简单来说一下网络工程师的职位发展,一种是直接进入专业的网络技术公司如华为,你的工作可能是售前,也可能是做网络工程师,客户比如电信、移动买了设备你要去帮助他们安装调试,随着技术积累和工作经验你可能会成为公司某个部门的主管,这个部门负责某类企业的业务。第二种你应聘去了非网络专业的公司甚至非IT类的,你可能会从基础做起在实践中积累经验发展到侧重某类技术比如网络存储工程师、综合布线工程师、网络安全工程师等。最后进阶到专家级别,如IT项目经理、网络主管或者技术专家等。

系统管理员

很多公司可能不会专门设置这么一个职位,但是系统管理员确实是不能缺少的,有时是由高级别的主管兼职,工作主要负责服务器的管理维护工作,服务器是每个公司的重要资源,他的计算、存储、组织管理域控等等,如何让它稳定、安全、高效的运行是需要专业的技术知识和丰富的经验。

系统管理员的工作大致分为两类硬件和软件。硬件类的:比如服务器安装操作系统时,根据这台机器运行的业务如何创建磁盘阵列,做raid1还是做raid5;最近服务器总是慢运用日志工具检查问题出在哪里,需要升级那些部件;有一天突然看到某台设备出现的报警,但是服务器还在运行,如何安全的换下报警的部件决不能让服务器宕机。软件类,最典型的就是AD的维护,管理和维护帐户,或是某个重要的软件系统的维护,比如我在的单位有个资深的测试工程师就兼职管理维护StarTeam服务器。

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


职业规划怎么写,相信很多朋友们对这个问题很感兴趣,下面给大家介绍一下。第一部分,前言即总论;第二部分,自我分析,包括业余爱好、性格、价值观、专业技能等;

优秀的心理素质:

心理素质对一个项目经理太重要了。当然,如果你的心理素质很好,也许你不会感到这是什么问题。让我感觉,心理素质的一个重要表现是:面对重大的项目压力时,你的心理承受情况如何?

项目的压力来源很多,包括你的客户、你的领导,还有你的组员。你需要具有承受这种压力的巨大潜力,否则,你会手忙脚乱。

除此之外,心理素质还表现在你的思维、你的个性以及你的创新意识等等。想想吧,作为项目经理的你,太多需要承受了,太多需要思维了。

坚实的知识积累:

佛洛伊德著过《欲望决定命运》,我很喜欢。我暂时窃取一下,说知识决定命运,好像也挺有道理的。

中国是一个重视学历教育的国家,至少我的项目经理和程序员最低都是专科学历,事实是,绝大部分是本科学历。拥有了标志着知识的学历,我们有了选择的机会,确切的说,是被选择的机会。

我的项目经理在努力学习PM-BOK,我的程序员在努力学习各种编程技术。他们都在努力改变命运,我真的很佩服很喜欢他们。

知识决定命运,同样决定着项目经理的命运。坚实的知识积累,当然我更多指跟项目经理职业相关的知识,会成为你项目经理职业生涯的坚实后盾。

丰富的经验:

我们在招聘项目经理时,常常关注工作经验。那是因为我们常想把培养的成本抛给别人,但我更喜欢培养,我认为这样更符合中国人特有的人情味,而且更让人放心。凭什么辛辛苦苦跟你打拼之后,你却不给他发展机会,非要让他到别人那里找机会呢?

有丰富的经验注定重要,没有人会反对这一点。但我想说的是,如果你没有经验,不要气馁,谁生下来就做过项目经理呢。

更重要的是把握获取和积累经验的机会。一旦你有机会,不要轻易放弃,而要抓住机会,努力为自己积累经验。如果你恰好刚刚抓住这个机会,我建议你,仔细检查一下自己从事这一职业尚需修炼的内容。

领导能力:

我的老师曾经说过一句话经理需要领导,经理正在领导。我之所以没有彻底的问一问这句话的真正含义,我觉得自己来琢磨更有意思,而且随着时间越长,琢磨出来的意思越多。

我觉得意思应该是这样吧,项目经理需要领导能力,而作为项目经理也正在运用着领导能力从事领导工作。可见领导能力是项目经理必备的能力之一。

到底领导能力是什么?绝对不是管管人那么简单,我看过一本非常有趣的项目管理书籍《最后期限》(《The Deadline》),作者迪克马对管理描述的一段话很适合回答这个问题,大意如下。

项目经理做好领导工作,关键做好如下四件事情:1)选择正确的人;2)为他们分配正确的工作;3)保持他们的积极性;4)帮助团队凝聚起来并保持团队的凝聚力。

作为项目经理,能做好这四件事情,至少能保证你的领导能力有了不错的发挥。希望你与我一样,能细细体会。

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


职业规划怎么写,相信很多朋友们对这个问题很感兴趣,下面给大家介绍一下。第一部分,前言即总论;第二部分,自我分析,包括业余爱好、性格、价值观、专业技能等;

6、列出主要的功能模块(List Major Features)

列出软件项目中涉及到的所有主要功能模块。从这些高水平的功能模块入手,这是开始挽救整个项目的关键步骤。如果将软件的开发比作战争的话,列出主要的功能模块可以让你避免一场与成千个功能模块无止境的恶战,你的战争规模会相对较小并且更容易获胜。

7、提炼重中之重

好的,你已经列出了所有主要的功能模块,现在从这个列表中再提炼出20%的功能模块(这部分应该是所有主要功能模块中最突出的),将其做成另一个列表。这20%的功能模块是软件发布之前,在最终测试版本中都应该能实现的。

8、详述20%的高水平功能模块(Detail Out Top 20%)

参照这个20%的功能模块列表,做另一个明细表,在明细表中详述为完成这20%部件所需实现的各项功能。另外将这些功能按其重要程度进行排序。我比较倾向于把最复杂的排在首位,最后才是简单的。借助这个表只是为了使你的项目进行的更有条理(如先完成简单的功能模块),而不是让你透过这个表来看你的工作量有多大。

9、制定周计划(Plan The Week)

仔细地合计出下一周你能完成哪些功能模块并把这些功能模块分配给团队里的程序员。你在分配时最好把类似的功能模块放到一块分配。要保证每位程序员都有规则地导入代码。如果他们导入代码导致构建失败,那他们必须立刻对这个构建做出修正。

10、创建子系统(Create Branch)

使用你所选择的源代码控制系统创建一个子系统。在这一步骤中,你需要创建一个等待测试的子系统,然后在下一步中建一个补丁系统。接下来测试人员进行测试,而你则规划下一周的工作。

十六招成为大型软件项目的开发英雄[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%.

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


决策能力:

项目经理作为基层管理人员,又不同于普通的基层管理人员,常常面对各种项目决策,需要较强的决策能力。其实,我更想说的是,决策技巧能力。

在软件行业,项目经理往往属于典型的责任大而权力小的角色。处在一个相对复杂的环境(当然这个复杂并不带有任何个人偏见感***彩),所以说复杂,是因为项目经理面对的项目干系人往往众多,而且代表不同的利益方面,具有不同的知识行业背景。这一切必然要求项目经理需要在满足多方利益情况下做出最合理的决策。

不要把决策与拍板简单等价,务必要认识到决策技巧的重要性。分清哪些是你可以直接作决策的,哪些必须是借助集体力量才能作决策的,甚至哪些是你根本不能参与任何决策的。

我的一个项目经理就遇到了这个麻烦,情况是这样:

客户的两个人,一个是处长,一个是副处长,对项目一个需求方案的看法相互冲突,沟通了两次也没有个明确答案,最后只听到处长说这个比较好吧。二人看法相互冲突,处于各种原因不容易拿到明确的答案,比较常见的情况。我的项目经理经过慎重考虑,采用了处长的建议,人们常常认为职高语重。

很显然,我的项目经理作了个决策,在我看来一个不明智的决策,或者说根本不应该他来做的决策。

在进行需求评审时,我的项目经理如此决策进行了汇报,结果招来上述二人的埋怨,这次两个人倒是表现的很一致。太失策了,本该不必决策,却画蛇添足。如果掌握决策技巧,就不会遭此劫了。如果是你,应该采用什么样的决策技巧呢?

沟通能力:

各种项目管理书籍都强调沟通能力的重要性。也的确如此,沟通能力是软件开发项目经理必须具备的首要能力。

美国项目管理专家刘易斯在其著作《项目经理案头手册》中感叹:与人交往是项目经理必须执行的一个大任务,部分程度上是因为项目经理往往有很多责任却(经常)仅有很少的权利。这在项目管理中几乎是既定的。所以,做每件事情的唯一办法是,使用人际交往技能,即沟通能力。这些技能包括劝说、影响、协商,有时甚至乞讨。

美国的项目经理们尚且如此注重沟通能力,作为中国软件项目经理从业者来说,更是如此,不仅中国软件行业发展状况如此,中国人做事讲究人际关系更是使之如此。

听听刘易斯的建议:如果你憎恶与人交往,那么建议你与老板来一次真心交谈,表明你不想做项目经理的想法,宁愿做一名技术人员。如果还不理想,那就干脆换行。

如果要成为一名出色的项目经理,务必重视沟通能力的培养,但同时一定要注意沟通的技巧,让沟通成为真正有效的沟通。

另外,现实生活中,有一个不得不提的现象:人们拥有大量信息,但却又都急于获得信息,在人们无法得到所需信息的时候,就开始编造,谣言也由此而生。项目管理实践过程中,也是同样的道理,当项目干系人无法获得充分信息的时候,他们习惯于根据经验猜测,从而为各种项目冲突和误解打下了伏笔。就其根本,症结所在就是缺乏沟通或者沟通失效。

人力资源开发能力:

人员开发的能力,虽然我常会提到,但我也很明白,并不是所有的项目经理都真正认识到它的重要性。对于刚刚踏上项目经理职路上的人们,这也是可以理解的。

但对于已经从事项目经理工作1年以上的人们,我还是要建议你重视这个能力的培养。切忌,让领导交到你手上的资源升值,而软件项目经理手里最重要的资源就是人才。如果把项目组成员做跑了,那你一定不是合格的项目经理。这是我衡量失败项目经理的标准之一。

让你手上资源升值的途径很多,你一定要仔细斟酌。尽量多的培训、充足的内部交流、非工作方面的经验交流等等,都是必不可少的。

软件老手带新人的经验总结[2]


职业规划是对职业生涯乃至人生计划的过程,职业生涯规划的好坏可能将影响整个生命历程。感谢您阅读《软件老手带新人的经验总结[2]》内容,职场资讯网小编向您推荐一些职业规划知识,欢迎参考,希望能帮到你。

05.新人是不稳定的,进步最快、最聪明的新人往往是最早离开公司的

新人随时可能会走,他们身在本公司总会觉得另一个公司前途更好,工作环境更理想,薪水待遇会更高,或者已经学到足够的本事了想闯闯看,看看外面的世界是不是更精彩,他不会知道天下的乌鸦都是黑色的,不来回折腾几个公司消磨几年时间,总会觉得有梦想中的理想工作。最聪明能干的新人,一般是最早会辞职跳槽的,我们一般希望走中庸之路,这些员工一般才是最稳定一些,甚至是最不聪明的员工是最稳定的,以为他想跳槽也跳不了,由于新人的不稳定性,所以不能把核心的工作安排给新人做,他做了一半拍拍屁股走人了,你说找谁擦屁股呢?

06.新人实际工作需要。NET他们会觉得Java更有前途,工作需要C\S,会觉得B\S更有前途

你让他们用SQLServer他们会觉得Oracle更有前途,让他们用Oracle它们会觉得MYSQL更牛B,你让他们写。NET程序他们会觉得学Java更有前途,你让他们做B/S他们会好奇C/S系统,他们会觉得你没在做的那个技术含量更高,更有前途,你想让他们搞东他们会想搞西,甚至想研究Linux系统才是牛B的、收入才会高,好奇心强,定力不足,没有稳定的立场。

新人、甚至是公司的老员工,对公司的开发平台都没兴趣,敷衍了事的比较多,反而对其他公司的产品、平台更有兴趣,对国外的开源更有兴趣,但是学了,也没能力改进公司的开发平台,学会了,理解了,与能用,能改进,能整合还是有很大的差距。

07.新人容易受环境的影响

新人怎么带,他们就会变成什么样的,自己稀里糊涂,跟着你的新人也会稀里糊涂,你努力拼搏,新人也会被熏陶,一个公司的文化气氛是什么样的,新人也会被改变成那样的,这就是所谓的入乡随俗吧,有些公司5:30一下班,工作任务有天大的重要事情还没解决都走人的,新人也会觉得5:30了下班是天经地义,整个公司都可以上网聊天看新闻,新人也会觉得这样是天经地义,一般第一个工作影响人的很多方面,若第一个公司很厉害,一般这个人未来的几年也会蛮厉害的。

08.公司需要有个稳定、高效、快速开发平台、文档库等

若什么事情都能依赖新人做好,那真的软件公司,想什么时候开就什么时候开了,招聘20-30个新人,学过IT知识的,那就每个人安排合理的工作岗位就可以开软件公司了?没那么简单,一般软件公司走上正轨的道路,一般会烧1000万左右的学费,这也是正规软件公司的门票钱,烧了这些钱了,老板也就明白软件公司怎么开了,这不是我讲的,我一个朋友跟我讲的,我仔细想想,也的确是有道理,我的好几个老板,烧的学费,可比这个数目多多了。

公司的开发平台,相关文档等,当然还有其它的,都是靠钱烧出来的,这一般不是短时间能积累出来的,就算快速堆积在一起了也很坍塌的。

5年程序人生路 从新手到项目管理[2]


工作渐渐展开之后,就是平静如水的生活,每天上班,吃饭,睡觉,日子也过得很快。刚开始,由于懂得东西少,所以每次任务下来后,都是积极的去完成,因为害怕自己做不完。但是渐渐的,当自己清楚该怎么做的时候,人会产生疲倦,因为每天都做一些差不多的劳动。慢慢的,做事情就喜欢拖拉了。当分配一个任务后,自己先估量一下这个工作自己大概需要多久,一般老板给的时间会多很多。所以喜欢把工作先放着,去看看网页,逛逛论坛什么的,等到剩下的时间差不多了,需要开始工作了,就懒洋洋的进入工作状态,但是往往完成工作质量都不怎么好,很多提交后会有些BUG。不过我也没怎么在意。因为和老板关系好嘛,像我这样,再怎么说也属于元老级别的。就这样慢慢的工作了几年。因为小公司什么都要做,技术也积累了很多。包括各种主流数据库的用法,。NET,CSS,JAVASCRIPT,PHP,JAVA,perl,FLASH, 等等,其间,自己独立开发项目的时候,总想找出一种架构,加快自己下一个项目的开发进度。但是每次开发完后,发现上次设计的架构真垃圾。开发过很多项目,每次都想了一些新的架构方法。到现在沉淀下来的还值得用的架构思想也没多少。记得在做JSP的时候,感觉JSP里面服务端代码和HTML混在一起,很难看。不如。NET的事件驱动好用。就去写个模块,让JSP也实现事件驱动的模式。结果写到后来,也没得到什么好处,并且感觉有点不伦不类,后来项目慢慢做大了,才渐渐明白面向对象的用意。当一个项目很小,逻辑很简单的时候,用面向对象的方法设计用处不大,反倒是组件用处更大。因为项目小,基本上都是建几张表,改改HTML的工作。但是项目一大,逻辑变复杂了,如果你要理清楚逻辑,这里就需要一种方法论。我一开始写算法的那种方法有点不适用了。原来那种是从顶层开始,向下细分。是一种至上而下的设计方法。而面向对象不是,它是一种由点及面的设计方法。面向对象是先找出一个个对象点,然后再找出每个点之间的关系。在实际的项目中,你很难从上至下的设计。因为项目需求往往刚开始很不全面,很多项目后来改得都是面目全非。从上至下的设计不适合这种平凡的修改。并且当需求很大时,他涉及东西太多,你也很难从一个俯视的角度去全面的看这个系统。所以从上至下的设计不能满足要求。打个比方,记得一个项目已经做了80%,结果客户觉得用得不方便,要改一下。很多原来做的功能都不需要,并且提了几个新功能。但这几个功能也只是对原来的功能稍加改动。但是逻辑上看却是大相径庭。人脑不是电脑,如果想着这个代码,去改那个代码,势必到后来让自己也搞糊涂了。所以需要抽象出几个对象出来,是按照客户的思维方式。然后抽象出来的对象里面包含原来的功能。这样做起来就事半功倍。

在工作的磨练中,慢慢的发现了普通的程序员与优秀的程序员的一些差别:

1, 普通的程序员遇到问题喜欢张口就问别人,问之前没经过大脑想想。这是一个不好的习惯。其一,自己都没仔细想想,就算别人帮你把问题解决了,你自己不多久就会忘记。下次遇到,照样是不会。因为这个问题你没有经过大脑。其二,能够回答你问题的人,多半是有一定经验了。他们或许很会安排好自己的事情,管理好自己的时间。如果时常去打断他们,他们会觉得你很烦。

优秀的程序员多半会先到网上查找一下相关问题,看看网上有没有相关解决方法。经过一翻查找,他会把这个问题记得比较牢。

2,在一个项目的合作开发中,普通程序员往往只了解自己开发那方面的东西。项目做完后往往对整个项目有哪些功能都不太清楚。可能会有人抱怨,自己工作都做不完,哪有时间去了解整个系统。但现实多半是,花大量的时间去网上闲逛,却不愿花时间去增进知识。 如果总认为项目的设计是设计者的工作,自己没必要去了解。那么这样的程序员只能是手工劳动者。

优秀的程序员会对整个项目有认识,对一些自己感兴趣的功能会去做一下了解,更优秀一点的,会去对整个项目的架构设计做一下了解。自问如果他是项目设计者该怎么做? 去学习项目设计的优秀之处,去发现设计的不足之处。触类旁通,把优秀的地方用在自己将来的工作当中。

3,普通程序员往往有很大的惰性。不能自觉的去学习知识,增进能力。所以每天耗费大量的时间在一些消遣状态中。所以时间往往白白的浪费掉。

优秀的程序员往往会安排好自己的工作和学习。在工作中学习,在学习中工作。能够感觉到自己每天都向着自己的目标在前进,状态佳,动力足。他们因为每天工作情绪很高,所以研究的东西也多,时间比较宝贵。因此他们会善于利用一些工具来操作自己的电脑,大大来的减少琐碎的电脑操作时间。更有胜者,会开发一些符合自己的操作习惯的小程序,来提高自己的效率。说不定这些小程序放到网上共享,可能还会有意想不到的收获。

我现在做项目管理,看着手下的程序员,时常也让我想起原来做程序员时候的坏毛病。比如,上班迟到啊,工作时间上网闲逛啊,交上来的程序BUG成堆啊!看到这些,我时常都是会心的笑笑,可以理解! 不过我也时常提醒他们,如果你们想将来成为IT界的精英,而不是等到30岁感觉自己无路可走,那么请你们珍惜自己的时间。如果你们自己都不珍惜自己的时间,那么别人更不会去珍惜你的时间。

今天花了两个多小时,写了一篇短篇自叙。感觉值得,把自己五年多的光阴回顾了一遍。从前的故事历历在目。写下来过五年后再来回顾一下,说不定会是另一番感受。

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


第三部分,未来职业生涯规划、家庭环境分析、例如经济状况,家人期望等。感谢您阅读《大项目、小项目都是程序员成熟之道[2]》内容,职场资讯网小编向您推荐一些职业规划知识,欢迎参考,希望能帮到你。

而我今天说的项目大小是从软件项目本身来确定的,与客户对项目大小的定义没有什么太大的关系。我认为项目大小可以从以下几个维度去考虑:资金、开发人月、项目复杂度。

1、 资金

我认为在当今物价状态下,5万以上50万以下为小项目。50万以上为大项目,500万以上为特大项目。

2、 开发人月

同理,2.5个人月到25个人月以下为小项目。25个人月以上为大项目。

3、 项目复杂度

软件项目的复杂度还可以用软件的用户使用人数、数据库中表的数量、表的记录数来衡量:

软件使用人数:10-1000人为小项目,1000人以上为大项目。

数据库表的数量:20-100张为小项目,100张以上为大项目。

表中的记录数:10万-1000万为小项目,1000万以上为大项目。

此外,项目运行能够给客户带来的收益大小、项目的业务逻辑的复杂度都可以成为项目大小考量的内容。

如果项目都不能达到小项目的水平,我们这里就不把它看作项目了,因为低于小项目的项目很多是个人编程,这与项目众人参与的特点有点不符。

所以我对程序员的建议是:

1、 要主动参加项目

无论大项目还是小项目程序员都要努力参加进去,因为只有做了项目自己的能力才能提高。不要静静待在那里,等待别人挑选,而是积极主动表示加入项目的愿望。在我负责过的项目过程中,我对主动要求加入项目的程序员往往给与更多的机会,因为这样的程序员具有主动性,工作更好开展。一个项目的出现就是一个机会的出现,把握项目就是把握机会。机不可失,时不在来。

2、 不要放过小项目

程序员不要以小而不为,只有做过若干个小的项目后,程序员才能去做大项目。那些想一步就做大项目的程序员,往往会失去小项目锻炼的机会,往往参加到大项目后,感到力不从心。项目虽小也同样可以锻炼人,程序员可以有更多机会体验项目负责人的脚色。学会从整体角度上来看待编程。

3、 要积极准备参加大项目

对于已参加过小项目的程序员,一定要把握机会,积极准备参加大项目,项目越大,越锻炼人。在大项目中要学会摆正自己的位置、虚心向团队其他成员学习。要在平时没有项目的时候,要多做些技术准备,多关注可能的大项目开发内容。在项目开发中,则可以把重点放在体会不同功能模块之间的关系上。学会从关联的角度上看待编程。

根据我的经验,我认为程序员要经过5-6个小项目的锻炼才能入门,而经历了3个以上的大项目的程序员才开始成熟。当然我们不能排除程序员的天才成分,有的程序员会再很短的时间达到一个很高的水平。但是,绝大多数程序员成长是必须通过项目来催化的,尤其是大的项目催化更加重要。说白了,项目如同阳光,程序员如同禾苗,关系就是那么简单。

以上《软件业职位总结3 项目管理类[2]》一文,由编辑精心撰写而成,希望对您的职业规划有所帮助,更多精彩请访问“管理类求职信”专题!

相关文章

最新更新