程序员新手 0年份等级 指导(一) 开发人员IT架构总览

程序员新手 0年份等级 指导(一) 开发人员相关IT架构总览之职能分解

开发人员IT架构总览
一、职能分解

软件项目的主要组成大体上按照一个项目的生命周期流程分为: 需求、架构、开发、产品、测试、运维

需求人员:一般需求人员是项目的最开始一道环节,这些人员与软件使用方或者出资方商议确认软件开发意向转到项目实际需求的事宜,是把思路化为纸面文档甚至demo样例(即原型)的人员;

架构:先说了开发再说架构比较好;


开发人员:主要做的就是业务代码逻辑的实现;也有的引申到测试、需求、运维;
初级:承担最机械化的工作,基本都在中高级以及更高级人员的指导、指示下工作,比如初级核对、一些简单的基础白盒测试、机械化的手动日志埋点,前端较为简单的单个页面逻辑,在后端框架限制好的前提下做较为简单的业务逻辑代码工作;
中级:承担主要业务代码工作,白盒测试,简单的分层框架、IOC、AOP应用,,这个级别是整个开发人员世界的准主力,人数最多,大多数常年开发,比较靠经验化的人员组成,这个层面的人有的能独立完成中型项目,但是通常必须是做过的,也就隐含着是被人带过的,照抄的,比较机械化,当这个层级的人员很多到了30多还是这个级别,其实就是尴尬的层级,但是也是很多传统公司的软件部门喜欢的层级人员;
高级:承担重要业务逻辑代码的工作,设计白盒测试等测试方案、中小规模下自己定制框架,攻坚关键性业务代码、算法,指导中初级人员,在有些场景起到技术经理的作用,在有的公司完全就是技术经理leader的作用,这个层级我认为与中级最关键的区别就在于所谓的主观能动性,已经能尝试性地自己从0组合后端框架、技术、各种后端中间件、前端框架等,是技术leader管理岗位和架构师的有力候选阶层,真正到这个级别的人员很可能直接跳过中级就表现出了各方面的主观的自我突破欲望;

开发人员各个层级的现实:

初级大多数些新手、实习生和强拉上场的人员,很多干了半辈子开发的人其实还可能在这个级别的高层徘徊,天赋能力、用心不行;

中级很不幸的大多数30多岁还在写业务逻辑代码,但是又没啥自己想法的人,属于这个层级,尽量避免成为这样的人,要学会动脑子,否则还不如去做管理、需求人员;但是很多年纪很大的开发,只会完成任务,完成后有一堆bug留给别人帮他解决,这种最多只能算是中下级,甚至该算是初级人员;

高级开发其实现实里比较少,通常是技术经理、管理leader兼任,纯的高级开发是项目leader,有自己思想的年长开发人员,应该是很有经验、主观思想的;经常是不愿意去做架构、管理的开发人员,有着自己的特殊情况,才会逗留在这个层级,很多所谓的高级开发人员其实都是中级而已;

也就是说任何一个像样的开发人员,不管你以后成为什么职能至少开发能力和思想应该保持在高级水平,任何人掉落到中级、甚至初级,就是实际上不再是技术人员了;

开发相关的管理和辅助岗位:

技术经理、开发经理(当然有的是人员、没有挂经理头衔):一些公司有的层级通常是开发团队的顶头领导,虽然名字是技术、开发,但是经常是不用写具体代码的,属于开发团队组建者、直接管理者,审查代码、项目进度排期、检查进度和初步质量、维护项目开发阶段的管理层级文档是这个岗位的主要职责,当然不排除经理自己是初级、中级甚至高级开发,甚至是主程(有的团队里有这样的主要程序员、首要程序员的角色)这样的角色,但是大多数最多也就项目初期自己承担一点业务开发任务和框架代码任务,在架构不到位的情况下担当一部分架构的职责,不过通常不必期望可以真的比得上架构,实际上这个岗位是与架构协调技术方案为主的;有的团队技术经理(开发经理)和项目经理并不分;

项目经理、需求经理、产品经理(当然有的是人员、没有挂经理头衔):一些像样的公司有这些岗位,很可能一个人或者一组人在项目初期负责收集制定需求以及其文档,这是就是需求角色,中期管理项目开发过程,就是项目经理角色,到了发布期则开始转为产品经理,负责客户接洽和内部迭代的监督督促,其实也不会负责太多技术细节,就是个项目生命周期的主要监护人角色;大多数的项目文档,包括客户手册、文档、给开发人员的需求文档等,是客户与项目组之间的桥梁角色;在不同公司职责或大或小;经常在小公司与技术经理角色并不区分;

架构:开发之后来说架构,架构师是决定技术方向的存在;小公司用不上,大公司主心骨的角色;不过具体架构分类很多,本篇不是架构说明文档所以就不多谈了,架构也有很多职能分类,包括但是不限于:软件架构、业务架构、系统架构、数据库架构、大数据架构、云架构、基础架构、运维架构等等;具体什么是什么本篇不唠叨;

产品人员基本上我认为是项目中后期接手了需求人员的项目任务以后,负责之后的软件开发后生命周期的人员;版本上线,版本规划,迭代实施计划等由其来操作;

测试(也有的公司叫质量控制吧):测试分白盒和黑盒,白盒是与开发人员紧密相连的属于高级测试范畴,能够测试白盒的测试人员应具备的是中级以上开发能力的,白盒有功能性测试、也有性能压力测试、以及代码覆盖等类型的测试;黑盒测试是模拟用户行为的测试;一般新项目代码由开发研发出来后,发上svn或者git或者tfs;以后由测试人员(也可能是负责帮助测试人员的开发或者运维人员)手动或者devops软件系统自动将开发提交的新版本的项目工程发布到测试环境,部署安装完成,然后进行黑盒测试,黑盒测试包括用户行为、项目功能模拟性的测试、性能压测;一般会有

原文地址:https://www.cnblogs.com/sfissw/p/6127560.html