今天对于绝大多数人来说是一个普通的日子,然而对于我来说很有纪念意义。因为 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 开发工程师十余年的技术写作之路回顾

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

  1. 周计划周记录:2022年6月6日-2022年6月12日

    1. 一周醒言 形势越紧迫,心理越乱就越被动. 学一门技术就是为了解决问题,所以要时刻带着这样的问题研究技术:使用场景是什么?为什么要这样用? 一定要让自己拥有核心竞争力,不可替代!遇到什么事,第一点 ...

  2. 【贪玩巴斯】带你一起攻克英语语法长难句—— 第二章——并列句全解 2021年12月17日——2022年2月5日

    [贪玩巴斯]带你一起攻克英语语法长难句-- 第二章--并列句全解 2021年12月17日--2022年2月5日 并列句 1.什么是并列句? 2.并列连词以及与其同义的逻辑关系词 1.常见的并列连词 2 ...

  3. 周计划周记录:2022年5月16日-2022年5月22日

    1. 一周醒言 规则只是用来约束普通人,对有权有势的人是没有用的.这个社会上,游戏规则就是这样的,轮不到你不玩. 其实受委屈和挨骂也是工作的一部分.没有本事就不要装清高,没有物质想要生存下去就要受委屈 ...

  4. 注意 2022年一级计算机考证报名2021年12月29日-2022年1月7日

    2022全国计算机等级考试报名 2022年3月全国计算机等级考试报名将于2021年12月29日-2022年1月7日进行,报名网址为教育部考试中心NCRE考务管理系统(https://ncre-bm.n ...

  5. 今年是SAP进入中国25周年,我从2007年毕业进入SAP成都研究院,也马上就待满14年了。

    今年是SAP进入中国25周年,我从2007年毕业进入SAP成都研究院,也马上就待满14年了.

  6. 2022年8月29日-2022年9月4日(ue4热更新视频教程学习和rhi源码抄写,本周40小时,合计1522小时,剩余8478小时。)

    目前Ue4视频教程进行到了 mysql(7.1),tf1(2.3),oss(12.1),蓝图反射(1.7),ue4 apk(3.7), 根据月计划,本周进行以下内容.rhi部分源码总共47949行(含 ...

  7. 周计划周记录:2022年6月13日-2022年6月19日

    1. 一周醒言 游戏规则就是这样的:人际关系就是等价交易,没人愿意与一个毫无价值的人交朋友. 过去如何,不影响我现在/未来成为谁,只要自己坚定前行! 自己想要的,就去问,动手要!不要寄希望于别人! 受 ...

  8. 周计划周记录:2022年6月20日-2022年6月26日

    1. 一周醒言 今日之果是昨日种的因,明日之果由今日之因所致. 职场中,必须学会在孤立无援.四面楚歌之下,还能生存下去! 黄金10年开始,定个小目标,赚个2000W,杀出底层! 不管读书还是打工,最终 ...

  9. 2022年4月30日~2022年5月1日 复盘

    五一假期正式开始.放假了,放假了,这两天没有工作,所以把这周的计划给完成一遍.2022年5月2日就休息一天,反思上一周的情况. 先把放假的这两天总结一下. 工作总结 无,放假了.也反思了一下上周的工作 ...

  10. 周计划周记录:2022年8月1日-2022年8月7日

    1. 一周醒言 小孩子的世界谈感情,成年人的世界谈利益. 整个社会本来就是不公的,有时间去抱怨不公,倒不如提高自己,让自己成为不公的受益者,而不是受害者. 不管何时何地,一定要提高自己的核心竞争力,让 ...

最新文章

  1. linux虚拟网络设备--eth, tap/tun, veth-pair(九)
  2. Java的代理模式之静态代理和动态代理
  3. 逛街 最短距离+花费
  4. [转]CocoaPods安装和使用教程
  5. python是一门高级的计算机语言对吗_Python是一门怎样的编程语言
  6. C# DataTable笔记
  7. php mysql5.7.110安装教程_MYSQL教程mysql5.7.19 winx64安装配置方法图文教程(win10)
  8. 色彩丰富的水彩纹理背景,配合排版和简单的设计元素,给任何设计带来乐趣。
  9. django项目验证码(PIL库实现)
  10. jquery click()方法模拟点击事件对a标签不生效的解决办法
  11. jfinal 一对一 实体类怎么写_新祥旭考研一对一:考前必知的四大答题技巧
  12. 某种家庭式光伏发电系统设计
  13. 预充电电路工作原理_课堂 | 为什么锂电池在充电过程中首先要进行预充电
  14. (Spline)三次样条求解
  15. vue富文本使用详解
  16. SMETA验厂咨询,Sedex验厂工厂的自检流程有哪些
  17. 瑞幸小鹿茶正面杠上喜茶,茶饮新零售鹿死谁手?
  18. 任职母校!C9,迎来新副校长!
  19. 【魔方攻略】四阶魔方教程(原创)
  20. 史上最全的团队文档协作及管理工具盘点,看看哪款适合你

热门文章

  1. Trendmicro Officescan 服务器迁移
  2. 超好看的二次元个人主页源码
  3. 《Android框架揭秘》——1.2节通过启动过程分析Android Framework
  4. 用python海龟画一个三角形_海龟画笔---和孩子一起学python
  5. 创建Person接口(即“人”),它有setData()和getData()方法对“人”属性name、sex和birthday赋值和获得这些属性组成的字符串信息创建类Student实现Person接口
  6. 服务器内存条显示性能下降,特么的终于找到CPU超频,反而跑分降低的原因了,申请加精!...
  7. 【基于 RT-Thread Studio的CPK-RA6M4 开发板环境搭建】
  8. Photoshop DDS转化插件的一些问题
  9. 智能手机玩转Smart3D三维建模介绍
  10. Android 银行账号