头图

2007年1月11日~2022年1月11日,我在 SAP 成都研究院这15年

JerryWang_汪子熙

今天对于绝大多数人来说是一个普通的日子,然而对于我来说很有纪念意义。因为 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 年),正好赶上了国内外电脑游戏发展的黄金时期,我也确实玩到了很多经典的传世神作。在寝室同室友联机星际争霸,和在战网上玩暗黑破坏神的美好岁月,是我人生一段珍贵的回忆。

关于我的这段大学时光,参考这些文章:

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)。我的这些所学后来都输出到了我的公众号文章里:

今天回顾自己 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 德国总部工作三个月的宝贵机会。现在回忆起来,那真是无比欢乐的三个月:

也同样是在 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 成都研究院数字创新空间工作的更多点点滴滴,参看这两篇文章:

2020~现在:SAP 电商云 Spartacus UI 开发

天下没有不散的筵席。来到 2020 年,由于公司组织架构的变动,SAP 成都研究院数字创新团队宣布解散。我又双叒叕加入了一支全新的团队,负责 SAP 电商云的前端开发。

这是我第一次在一个除了我本人外其他团队成员全是老外的团队内工作,而使用的编程语言 TypeScript 和开发工具 Angular,我之前没有任何基础。我深知学习一门编程语言的最好办法,就是在工作中使用它。所以,我很珍惜如今能够和这些具有丰富的 Angular 开发专家们一起共事的机会。

流水帐般的工作经历就总结完了,感谢每一位耐心阅读到这里的朋友。作为一个开发人员,我认为不可能有人能掌握所有的编程语言和开发工具。我能努力去做的,就是继续保持谦虚的态度,不以专家自居,虚心向自己周围一切值得我学习的开发人员看齐,学习对我工作中有用的各种知识。

程序员是一个需要终身学习的职业,让我们相互共勉。

谨以此文纪念自己在 SAP 成都研究院的 15 年工作生涯。感谢阅读。

更多阅读

在这里插入图片描述

阅读 485

Jerry Wang的SAP技术专栏
SAP成都研究院开发专家,SAP社区导师,SAP中国技术大使
836 声望
1.6k 粉丝
0 条评论
836 声望
1.6k 粉丝
文章目录
宣传栏