明天对于绝大多数人来说是一个一般的日子,然而对于我来说很有留念意义。因为 15 年前的明天,我入职 SAP 成都研究院,始终工作至今。
我入职时的职位是 developer, 也就是通常所说的开发人员。15 年过来了,我的身份没有产生任何变动,我在 SAP 成都研究院没有尝试过其余诸如架构师或者开发经理之类的职位。尽管我往年曾经年满 40,真正成为了一个 ”大龄程序员“,但我依然和刚毕业的年轻人一样,持续从事着一线编程开发和 SAP 产品交付工作。
本文没有任何鸡汤成分,只是简略的把我在 SAP 成都研究院 15 年的工作经验分享进去,心愿对同样打算在开发畛域长期奋斗的敌人们有所启发。
我在 SAP 成都研究院的开发生涯,依照工夫程序和顺次待过的开发团队,能够分成上面几个阶段。
- 2007~2009:SAP BYD, Form 开发
- 2009~2010:SAP BYD, BO/Field Extension 开发
- 2010~2012:SAP Solution Development
- 2012~2014:SAP CRM 开发
- 2014~2016:SAP CRM Fiori 开发
- 2016~2018:SAP CRM Addon 开发
- 2017 ~2018:SAP C4C 客户 Support
- 2018~2020:SAP 成都研究院数字翻新空间
- 2020~当初:SAP 电商云 Spartacus UI 开发
早在 1994 年读初中时,我就开始在学校左近的电脑游戏厅玩电脑游戏了,那时候的电脑游戏厅还不能称之为网吧,因为连局域网都没有。高考填志愿时,我认为“电子科技大学”=“电子游戏大学”,所以天经地义地报考了这所大学,并拿到了计算机专业的硕士学位。事实上,我在大学这几年(2000 年~2007 年),正好赶上了国内外电脑游戏倒退的黄金期间,我也的确玩到了很多经典的传世神作。在寝室同室友联机星际争霸,和在战网上玩暗黑破坏神的美妙岁月,是我人生一段宝贵的回顾。
对于我的这段大学时光,参考这些文章:
- 没有电脑没有手机没有网络没有恋情——留念我的电子科技大学九里堤校区大一生存
- 一个工作 13 年的 SAP 开发人员的回顾:电子科技大学 2000 级新生退学指南
2007 年研究生毕业找工作,在过后的大环境下,计算机专业大学生待业的抉择除了出国和考公务员之外,排名第三的就是进外企。2007 年压根还没有 BAT 之说,我也和我教研室的其余师兄师姐一样,一门心思想进外企。起初我就抉择了 SAP 成都研究院。
我研究生专攻的是 Unix/Linux 环境下的编程开发,校园招聘时也拿到了腾讯 Linux 后盾开发工程师的 offer,工作地点在深圳。起初有敌人调侃我说,如果我 2007 年抉择的是腾讯,当初说不定早就财产自在了。兴许是这样吧,然而如果走腾讯的那条分支,大概率我也不可能会和当初的老婆结婚,更不会有当初的儿子了。财产自在和老婆孩子二者只能选其一的话,我必定抉择后者。
对于我的校园招聘之路,参见这篇文章:我是怎么和 SAP 结缘的 – Jerry 的 SAP 校园招聘之路。
2007~2009:SAP BYD, Form 开发
Form 开发团队是我在 SAP 成都研究院待过的第一支开发团队。开发职责是应用 Adobe Form Design 这个桌面端的设计软件,开发 Form Template. 这些模板以 XML 格局存储,运行时会被来自 SAP Business ByDesign 零碎后盾的业务数据填充,最初生成一个 PDF 文件依据各种渠道 (Email,打印机,或者间接显示到浏览器) 进行输入。
比拟侥幸的是,我退出 SAP 成都研究院的第二年,就和过后组内其余两位共事 Patrick 和 Ian 一起,创造了一种容许客户不通过 Adobe Form Designer 也能间接批改 Form 模板的办法,起初咱们把这种办法申请了专利,专利号如下图所示:
起初这个专利胜利地实现成为 SAP BYD 的一个规范性能,客户如果仅仅须要对 BYD Form 进行简略调整,无需再装置重量级的 Adobe Form Designer,而仅仅在浏览器里点击几次鼠标即可实现。
2009~2010:SAP BYD, BO/Field Extension 开发
工夫来到 2009 年,通过两年的磨难,我曾经能纯熟胜任 Form 开发的前后台工作,此时领导又给我安顿了新的挑战,让我去负责 SAP BYD Business Object 和 Field Extension 的开发工作。同 Form 相比,BO 和 Field Extension 更加靠近 SAP BYD 的设计外围。因为所谓 Business Object,就是 SAP 依据本人多年在企业治理畛域的积淀和积攒,对业务流程进行形象而设计出合乎一系列最佳实际规范的模型。从此,我开始在工作中应用 BO 的开发框架 BOPF,并且学习 SAP BYD 是如何设计并实现字段的端到端扩大和流程级别的可扩展性(Process Extensibility)。我的这些所学起初都输入到了我的公众号文章里:
- SAP 产品的 Field Extensibility
- SAP 产品加强技术回顾
明天回顾本人 2009~2010 这两年的工作经验,我的评估是:买椟还珠。我过后把全副精力都放在了钻研 SAP BYD BO 和 Field Extension 的技术实现上,明天看来,我所钻研的这些不过是 SAP BYD 的一些皮毛。过后 SAP BYD 开发团队外部有一台共享文件服务器,外面有一个 BO 文件夹,上面别离是 CRM,SRM,FIN,SCM 等子文件夹,外面稀稀拉拉全是各个领域内 BO 的设计文档,包含每个 BO 每个节点的每个字段,保护的是什么内容,为什么要设计这样的字段等等。
对于一个云 ERP 零碎来说,这些形象的数据模型才是设计中的精髓所在,而我过后熟视无睹,沉醉于这些模型底层的 ABAP 实现细节。
如果把金庸《天龙八部》里刻画的江湖类比成编程开发畛域,萧远山算得上是一位顶级程序员。
萧远山当年每晚潜入少林藏经阁窃取武学典籍并自学,对扫地僧成心给他筹备的一些佛经熟视无睹:
老僧又道:“居士第二次来借阁的,是一本《般若掌法》。过后老僧暗暗叹气,晓得居士由此入魔,愈隐愈深,心不忍,在居士惯常取书之处,放了一部《法华经》,一部《杂阿含经》,只盼居士能借了去,研读参悟。不料居士沉迷于文治,于正宗佛法却束之高阁,将这两部经书撇在一旁,找到一册《伏魔杖法》,却欢喜鼓励而去。
Jerry 当年犯了和萧远山同样的谬误。
2010~2012:SAP Solution Development
2010 年,我所在的 BYD 开发团队,更名为 SAP China Solution Development 团队。这两年内我参加了两个大的开发我的项目:
(1) SAP Customer Briefing Android 原生利用开发
这个我的项目间接让我成为一名忠诚的 Android 粉丝。从这一年开始,我应用的手机从 Nokia 换成了 Android 并继续至今。
(2) SAP Cloud Application Studio 开发我的项目
我在 SAP 从事的简直都是应用程序级别的开发,这是我第一次也是惟一一次参加的对一款开发工具自身的开发。SAP Cloud Application Studio 基于 微软 Visual Studio Isolated Shell,采纳 C# 进行开发。
我第一次体验到了批改一行代码,须要破费 40 分钟构建能力看到批改后成果的酸爽,过后无比思念 ABAP 改完代码之后秒激活秒失效的顺畅体验。咱们团队为 SAP Cloud Application Studio 削减了新的性能,即容许客户在 IDE 里创立 Application Exit,一旦激活,会主动在 SAP BYD 后盾生成对应的 BAdI Enhancement 实现。
2012~2014:SAP CRM 开发
2012 年我辞别了工作了五年的 SAP BYD,开始从事 SAP CRM 的开发。我所在的团队负责 SAP CRM Product Master 即产品主数据管理这个模块。感激之前五年的 BYD 开发工作,让我打下了松软的 ABAP 开发根底,所以 CRM 开发很快就上手了。做了一年多的工夫后,我感觉本人触碰到了 ABAP 开发的技术天花板了。我把本人遇到瓶颈的困扰向我的领导吴院长反映了,正好过后国内不少 CRM 大客户在应用 SAP CRM 时遇到了一些问题须要专家解答,吴院长让我跟着过后 SAP 的专家团队一起帮忙客户解决我的项目施行中遇到的问题。
从此我失去了贵重的返回客户现场的机会,理解到客户理论业务流程中是如何应用 SAP CRM,这加深了我对 CRM 软件自身的了解,更颠覆了我之前对于 SAP 产品开发一些固有的观点。在反对客户的过程中,我意识了 SAP 很多售前和销售共事,也结识了不少客户方的 SAP 从业人员,至今依然和这些敌人们放弃着分割。
2014~2016:SAP CRM Fiori 开发
2014 年,SAP 成都研究院成立了 CRM Fiori 开发团队。我退出了这支团队,从此点亮了一个新的开发技能:SAP UI5. 这也是我零碎学习 JavaScript 这门编程语言的终点,对我的帮忙始终继续至今。
这三年的 SAP Fiori 利用开发生涯里,我也在 SAP 社区上发表了大量的 SAP UI5 开发相干的英文技术博客,播种了很多国外的关注者。局部博客起初我又手动翻译成中文,发在了我的微信公众号上。
JavaScript 的确是一门须要用毕生的工夫去修炼的编程语言。
2016~2018:SAP CRM Addon 开发
2016 年,SAP 成都研究院 CRM Fiori 开发团队把手头负责的 8 个 CRM Fiori 利用移交给了印度共事,而后退出到了一个新的开发我的项目中去:把 SAP CRM 作为一个 Addon,移植到 SAP S/4HANA 中去。
这个我的项目的理论停顿,在我这篇文章里做了介绍:Hello World, S/4HANA for Customer Management 1.0.
也正是这个我的项目,让我取得了在 SAP 德国总部工作三个月的宝贵机会。当初回顾起来,那真是无比欢畅的三个月:
- Jerry 2017 年的五一小长假:8 种经典排序算法的 ABAP 实现
- Jerry 的 2017, 编程与游泳
也同样是在 2017 年,因为我在 SAP Community 的继续输入技术文章,我被提名为 SAP Community Mentor:
从此有了本人的专属衣服:
2017 ~2018:SAP C4C 客户 Support
2017 年,SAP 成都研究院成立了一支新的 SAP C4C 规范开发团队。我也挂靠在了这支团队里,一半的工作工夫持续从事 SAP CRM Addon 的开发工作,另一半工夫就花在帮忙一些国内 C4C 客户解决其我的项目施行中遇到的疑难问题。对于 SAP C4C 这个脱胎于 SAP BYD 而来的云产品,我有一种说不出的亲切感,毕竟后者是我退出 SAP 之后接触到的第一个产品并为之奋斗了五年。目前国内技术社区上很多对于 SAP C4C 开发相干的博客,都是我依据本人这段时间工作中积攒的第一手教训而写的。
2018~2020:SAP 成都研究院数字翻新空间
2018 年,我辞别了在德国总部工作时意识的泛滥共事,来到了我工作 6 年之久的 SAP CRM,退出了 SAP 成都研究院数字翻新空间团队。这又是一段欢畅的三年时光。这个团队工作的内容次要是围绕 SAP Customer Experience 旗下的产品,做一些概念验证和原型开发,开发语言和开发工具不限。我也由此跳出了 SAP CRM / C4C / UI5 的限度,接触了 SAP Marketing Cloud,SAP Field Service Management,SAP Customer Data Cloud,SAP CPI, SAP Conversation AI,SAP Kyma,SAP Hybris,SAP BTP 等产品,在原型开发过程中尝试了 Docker,Kubernetes,AR 等技术。
作为一个南方人,我在 2018 年的 12 月份出差去了大雪纷飞的沈阳,参加一个 SAP 和沈阳主动所单干的工业 4.0 我的项目,真正体验到了千里冰封万里雪飘的北国风光。
对于我在 SAP 成都研究院数字翻新空间工作的更多点点滴滴,参看这两篇文章:
- 2019.9.27,SAP 成都研究院数字翻新空间团队建设,射箭和游泳
- SAP 成都研究院数字翻新空间小伙伴们在 2020 SAP 上海 DKOM
2020~当初:SAP 电商云 Spartacus UI 开发
天下没有不散的筵席。来到 2020 年,因为公司组织架构的变动,SAP 成都研究院数字翻新团队发表遣散。我又双叒叕退出了一支全新的团队,负责 SAP 电商云的前端开发。
这是我第一次在一个除了我自己外其余团队成员全是老外的团队内工作,而应用的编程语言 TypeScript 和开发工具 Angular,我之前没有任何根底。我深知学习一门编程语言的最好方法,就是在工作中应用它。所以,我很珍惜现在可能和这些具备丰盛的 Angular 开发专家们一起共事的机会。
流水帐般的工作经验就总结完了,感激每一位急躁浏览到这里的敌人。作为一个开发人员,我认为不可能有人能把握所有的编程语言和开发工具。我能致力去做的,就是持续放弃虚心的态度,不以专家自居,虚心向本人四周所有值得我学习的开发人员看齐,学习对我工作中有用的各种常识。
程序员是一个须要一生学习的职业,让咱们互相共勉。
谨以此文留念本人在 SAP 成都研究院的 15 年工作生涯。感激浏览。
更多浏览
- Jerry 的 2017, 编程与游泳
- 一个 SAP 开发人员的 2018 年终总结
- 一个 SAP 开发人员的 2019 年终总结
- 一个 SAP 成都研究院开发工程师的 2020 年度总结:未知生,焉知死
- 一个 SAP 成都研究院开发工程师的 2021 年度总结:既没有厚积,也未能薄发
- 一个 SAP 开发工程师十余年的技术写作之路回顾