关于我

本人职位实施工程师,在一家不大不小的非互联网公司摸鱼近十载,从毕业之初的菜鸡逐渐成为了现如今会摸鱼的老油条菜鸡。想想一路摸索走来掉进了很多坑,很多坎坷,也算一把心酸一把泪,满纸皆是荒唐言。

软件实施工程师具备技能(一名软件实施工程师的自我修养)(1)

以前领导有句话说的,不管是啥,不管会不会,先开始弄,出问题了再解决问题。于是我就一路莽了下来,一步步走到了今天,还算公司没开除,也算不幸中的万幸。我也倒还算老实,仅仅弄断过一次网络,删除过一次现网目录,没啥其他大错。导致我现在理解的实施就是,开始走走走,然后遇到坑,找土堆,找铲子,填了它,继续走,遇到灌木丛,找斧子砍了它,到河边,找人员修条桥或者找条船开过去,历经千辛万苦,到达终点。遇山开山,逢水搭桥,没有过不去的火焰山。

摸鱼的地方是个不大不小的公司,没阿里腾讯华为大,但也有几千上万人。就是给甲方做专用软件,导致一年中大部分时间不在公司,哦,不该这样说,该说一年就没有几天在公司呆着,天天过着差旅生涯,如此这般竟到了第九个年头,话说的十年之期已到,也没人恭迎龙王。只能恭迎摸鱼王。

我理解的实施人员的职责与基本要求

因为我是做专用软件的,而且只在一家公司呆过,只能以我的理解来说,可能说的不全面,还请谅解。我理解实施负责的环节就一下几个方面:项目部署发布,演示,培训,项目落地交维。

如果有现成的产品他在整个流程中的位置是:

1.销售营销人员与用户侃大山找内容业务;

2.售前人员介绍本家产品,用户感兴趣,下一步;

3.实施人员闪亮登场,部署发布;

4.售前或实施人员演示;

5.用户满意,同意合作;

6.销售营销人员签字拟合同立项;

7.需求人员找用户过需求定方案;

8.架构师或研发经理制定相应开发规划;

9.项目经理盯项目进度;

10.研发人员负责开发,研发完成;

11.测试人员进行黑白盒测试,有问题返回上一步,没问题下一步;

12. 实施人员再次登场,部署发布;

13.上线前培训;

14.系统割接上线;

15.运维人员接收运行维护

16.运行正常,签字盖章,验收回款

我理解的专有产品项目大致如上所示。

懂了整个流程,也就基本懂了实施需要做什么,可以看到两次实施的出现的核心是系统部署,那么核心技能就是应用部署发布,需要的技能是:基本计算机知识,linux基础,数据库基础(oracle或mysql等),weblogic/tomcat微服务等。

第一次实施出现是在签合同立项前,工作内容是部署演示,这次的根本目的就是展示已有产品,重要的是展示特长,部署不用说,要对本产品熟悉。演示就要懂业务逻辑了,会操作,知道为什么这么操作,懂业务,跟着售前一起给用户讲系统,不仅要讲明白讲清楚,还要体现优势亮点,你就是甲方爸爸肚子里的蛔虫。

这里需要的技能是:基本业务能力,语言交流能力

第二次实施出现,研发完测试完。其实有时我座位实施分摊了一些测试工作,会点测试技能也是有助力的。接着回到本行核心,系统实施部署,常规应用发在linux服务器上,所以linux基本命令是必要的,linux系统基础知识也是必要的,比如网络配置,端口配置,负载均衡等,weblogic与tomcat发布应用的基本操作及相应问题处理。部署过程中,一些基本的前后台开发知识了解也是必要的,一开始我连F12是啥都不知道,学了点前端,基本前台报错看network,后台出问题看日志,简单的缺文件少表操作能自己处理了,即使真的解决不了,也能定位问题,找对应开发人员解决。应用必然要用到数据库,企业级数据库,关系型Oracle,Mysql是目前个人用得比较多的,所以,oracle的系统知识是需要了解的,日志,备份,全库导出导入imp、impdp,archivelog,sqlloader等。如果项目用到mysql那就是mysql,如果用缓存数据库就是redis等,如果是文件数据库,就要学mongodb等。数据库本身外还有sql,基本常用sql命令,视图存储过程函数等的编写,会一些也是必要的,会更多也是极好的。

上线前培训,一方面这个是需要演讲能力,虽然没那么强,工作中见到更多的是写个操作手册或者PPT直接照着念,这点也是很无奈,遇到同事ppt写的好转售前了的;另一方面就是对整体业务的的了解。为什么?你培训的对象是用户,他们是站在业务角度去考虑你的系统,系统是用来服务业务的,他们的业务场景是如何在你的系统里如何实现是他们真正关心的,他说的业务你听不懂,你也就解答不了他的疑问,这场培训就是尴了个尬了。

之后就是交给运维了,但最好实施是需要形成文档的,包括最基本的环境文档,具体操作手册及具体的常见问题处理等,留下这些第一能确保正常交接,第二是后续遇到问题可以及时定位处理,还真遇到过没留环境文档,自己去扒环境配置的情况,一把辛酸泪。

工作中我还遇到的是比如docker安装,oracle安装,weblogic安装,arcgis安装等等。习惯后就发现实施的工作真的不像是你会了才会让你去做,而是你该去做,所以你就该会做。所以最重要的反而不是技能本身,而是你如何以最快的学习速度去接受新知识,所以重中之重还是学习能力与对新事物的接受能力。研发用了新技术,用户有了新业务,我们作为实施的都要去接触,实施不用精通,但要了解,你说什么我懂就够了,毕竟我们的目的不是去当开拓创新者,而是追随者,知道怎么用就够了,为什么要用,为什么这么用,这样比那样好在哪里,这些可以先不去了解的,你的目的只是先实现,程序先跑起来,ok,完成。

当然以上是站在一名入门级实施工程师的角度去考虑,大神请忽略,请往深挖,要多精通就多精通,不过那时大神就不再是实施工程师了。

软件实施工程师具备技能(一名软件实施工程师的自我修养)(2)

实施工程师需要的基本能力

综上所述,我们梳理下实施工程师所需要的基本能力:

重中之重:学习能力,对新事物的接受能力;

基础计算机技能:基础计算机知识,linux基本命令,oracle等数据库基本维护,weblogic、tomcat等中间件服务器的部署,基本SQL

辅助能力:沟通交流能力,业务能力,基本开发技能

额外:演讲技能,测试技能

实施工程师的发展方向

上面实施人员的基本能力了解后,发展方向其实就好理解了。个人理解,纯粹理解,毕竟我也还是在底层。

什么是职业规划,简单说就是人往高处走,说实施是低处可能说起来有点儿不舒服,但貌似工资是没那么高,摸鱼近十载在IT届只能算低保户。简单的实施入门低,不学习发展个人看来是没有太好发展的。

那么具体要怎么走?两个方向:多广,专精。

多广

我一直习惯和别人这样介绍我们实施工程师做的事儿,除了写代码,其他都做。虽然说得有点儿大,其实也是表示实施的博杂,啥也会,啥也懂,但就是没那么精。和售前比研发好,和研发比数据库在行,和DBA比业务懂得多,就是那么牛。导致现在研发有些问题解决不了推给我,DBA不在我就算半个DBA,售前交流带上我也没再怕。尤记得一次售前离职,莫名的一个培训扔给了我,一个电话叫去,一小时后培训,材料是啥都不知道,进会议室会才发现是个不小的培训,十几号人,而主讲是我,然后一顿叨叨叨,我都没明白他们都明白了……

多广的选择常规的就是项目经理,管理序列。毕竟项目经理就是那个不懂技术的,在研发眼里实施恰好就是那个不懂开发的,差不多吗。各种协调管理交流,有区别也没区别。

架构师这个路稍微有点儿难,其实更多的是研发的技术走向,但大牛们总是不同,会开发的实施人员也不是没有,毕竟我也会四五种语言写hello,world。毕竟我对架构师也不了解,我级别差些,高度不够,也是感觉这个可以有。

专精

专精这个就有点儿多了,看下实施懂哪些,就知道专精的方向有多杂。

销售:口才好,和用户熟络,也是可以的,好几个同事外包转售前;

售前、需求:口才好,业务精通,搞售前需求,好几个同事研发实施转售前;

研发:有兴趣转研发也是不错的选择,同级,但研发缺口大,虽然我还没遇到,但相比跨行转这种平转其实是可以的,以前我也想转,可惜三分钟热度,没成;

运维:感觉更多的是不想漂了,有家有孩子了求稳定,转了运维,不懂运维和实施区别?以后写;

测试:测试感觉和实施同级,需求不大,工资不高,但感觉转了没啥必要;

用户:想去甲方,转业务,有渠道方法也是极好的,也遇到好多。

其他

条条大路通罗马,工作无非几个追求,挣钱生存,追求价值生活,实现人生理想。

所以考公务员,开公司创业,自媒体运营,继承家业,回家种地,各种都是出路,为啥非得天天东奔西走挣低保。

软件实施工程师具备技能(一名软件实施工程师的自我修养)(3)

实施工程师约等于公司高层和公司大佬?

出差多不知算优点还是缺点,或者说单身时是优点,脱单后是缺点。出差绝对是生活稳定的反面,当然公司高层和大佬也经常出差,所以反向求证,实施工程师约等于公司高层和公司大佬。

就像上面所说的发展方向受限,如果不走管理或者专精方向,迟早会迈入三十五岁中年陷阱。

后记

本篇我最早在19年在csdn上写的,原文到现在有5278的阅读和69的收藏,11条赞。好多人在下面留言体现了对于实施工程师的迷茫,其实我也迷茫,所以想与大家分享我的经验。今天想起把它拿来修改进行发送,如果效果好,后面会分享下我这近十年的实施经验,感谢大家,也希望一起共同成长,走出迷茫,快乐工作,过上幸福的生活。

,