许多技术专家都面临这样一个事实,即他们在垂直方向上达到了最大值,并且不知道下一步该怎么做,因此这项工作不会变成无休止的例行工作,而是会促进专业发展。
我在IT领域工作了18年,这对我来说已经不止一次了。 今天,我想分享一下我在职业生涯的不同阶段如何应对这一问题以及由此产生的结果。
我从哪里开始
我从2001年开始担任发行公司的系统管理员。 那时我已经知道,如果没有所有可以自动化的东西的自动化,那么这项工作本身就没有多大意义。 他不仅在其职责范围内,而且还在他可以访问的所有级别上做到了这一点。 例如,我开发了一个程序,该程序可以使从中央办公室一侧的销售代表接收申请的过程自动化。 我是以系统管理员而不是开发人员的身份进行的。
之后,他在系统集成商工作,在那里他担任基础架构解决方案顾问,在8年的时间里,他成长为CTO职位,负责公司战略技术开发的关键领域。 那时,这对我很有趣,因为它为专业发展提供了机会。 我将一些工程师调整为开源技术,这些技术在我们的市场上并不特别流行,我们开始研究OpenStack作为VMWare产品的替代产品。
一段时间后,我意识到当没有进一步发展的机会时,我已经达到顶峰,以前被视为挑战的任务变成了例行工作。
很明显,是时候改变方向了。 我搬到SoftServe,最初是作为一名建筑师接受采访的,但是由于缺乏外包经验,我只能担任高级职位。 我意识到这只是退后几步,但有时有必要加速并更快地前进。
外包客户路径
我被一个现有客户的新项目所吸引。 因此,有必要从全面研究开始,以找到最佳技术解决方案。 我对可能的选择方案进行了比较分析,得出了其中的最佳解决方案,并将这些结果提供给了客户。 他分别批准了我的选择,他们离开了我来实施此项目-我担任架构师,与一名Python开发人员一起工作。 在六个月的时间里,该项目已发展成一个由20个人组成的团队。 这很困难,但很有趣。 然后,由于客户公司的政治程序,该项目被关闭。
结果,我最终进入了储备库,并且已经为当时可以通过的认证制定了计划,仅两个小时之后,他们就为我提供了另一个客户的项目,该项目也刚刚开始。 那时,我确立了自己在该领域的优秀专家的地位,为过去的客户处理了这一任务,因此他们首先想起了我。 结果,我从事了两年的新项目。
这是一项流行的服务,其Web应用程序在美国流量中排名前50位。 客户面临许多问题,例如,由于外部环境,来自用户的请求流量急剧增加时,该服务无法扩展并且无法承受负载。 客户要求我们彻底改变该决定,并开始将其转移到另一个软件平台。 除了工程部分(整个基础架构,CICD,监视,日志记录等)之外,我们还涵盖了部分DevOps,并与重写旧解决方案的开发人员紧密合作。
我很幸运,因为这个项目是由经验丰富的解决方案架构师领导的。
我看了他的作品,学到了很多东西。 例如,我意识到我以前低估了软技能的重要性,因此我需要朝着这个方向努力。 毕竟,选择技术上正确的解决方案固然很好,但是您还需要能够将愿景传达给客户,以便客户理解并接受我的观点,然后在团队内部进行调整。 没有这个,就没有机会表现出良好的结果。 架构师是客户和技术团队之间的桥梁。 六个月后,这位解决方案架构师离开了该项目,并将其职能移交给了我。
首先,很难做到这一点,因为条件完全由企业决定,因此我们需要捍卫自己的利益,才能确定我们正在发布优质的产品-例如,速度对客户很重要,他们准备在未经测试的情况下发布,我们应该允许什么不能。 在过去的一年中,我们已成功地将服务移至新平台。 之后,客户返回给我们,要求将解决方案转移到另一个云平台。 这持续了一年。
我意识到我已经准备好进行更复杂的任务。 在工作的同时,我开发了建筑,修了课程,获得了证书。 除了某些点解决方案或更改外,我们的项目上没有剩下任何架构任务。 因此,在我面前的问题再次是-继续前进。 我可以找到一个更复杂的客户项目来解决架构问题。 但是他将第一次(六个月以内)保持新奇有趣,然后无论如何他都会进入稳定和舒适区域的阶段。 这样的工作适合很多人,这很正常。 但是我一直在寻找更动态的环境。
那时,卓越中心开始在我们公司积极发展。 我的许多朋友去了那里,我看到他们在那儿做有趣的事情。 在考虑了前景并权衡了所有利弊之后,我决定搬到这个部门。 那是在2019年初。
如何建立卓越中心(CoE)的工作?
CoE是公司中的一个特殊小组,吸引有针对性的非平凡任务。 我们专注于咨询。 我们被要求启动新项目,赢得新客户,建立团队合作。
CoE候选人的要求集比平常高。 例如,我们不关注点技术的深入知识,而是关注超越和学习新事物的能力。 沟通技巧也起着重要作用。
我们的专家参与了该项目的明确任务。 在售前团队工作时,我的环境更加动态。 我们与刚进入公司的项目联系在一起,以发展他们的概念,然后由交付团队实施。
该方案如下所示:
正在与客户举行一次初步会议,以了解仍有待解决的问题的背景,我们将从何处获取输入数据。
之后,我们开始与发现过程合作,该过程包括两个阶段:
- 现场-根据案件的复杂程度和项目的规模,我们会根据客户的需求去客户办公室一周/两次/尽可能多的时间,并与团队举行会议和研讨会,以研究我们正在解决的问题。 我们去找他们,因为为此举行的个人会议比电话交谈更为有效。
- 异地-我们将获得的所有信息返回给我们的团队,以便一起准备文档。 它包含了项目的架构构想,并说明了需要做什么以及为什么要做,并解释了如何解决该任务。 当您需要尽可能详细,透明地解释所有内容,准备质量模板,计算预算以便客户没有任何问题时,这是非常重要的阶段。
客户已收到所有文档,然后决定是否实施建议的解决方案。 在大多数情况下,他都同意。 然后,我们的公司签署以下合同,然后项目团队开始工作。
我仅在初始阶段(一到两个月)连接到项目的实施,以便确定工作,尽可能预测项目的过程,找出可能突然出现并破坏工作计划的细节(例如,来自客户的新投入)。 此外,在创建建筑文档并安排项目团队的工作之后,不可抗力的风险降到最低。
在与交付团队合作的同时,我参与了三到四个客户的预售工作。 而且,如果有任何项目被推迟,那么大多数新项目通常都在排队等待。 例如,这个星期天我从休斯敦回来,到星期三为止,在不久的将来,我已经与三个不同的客户进行了现场会谈。
如此动态的工作节奏并不会使我筋疲力尽,反而会受到指控。 平均而言,我一个月与客户呆一个半星期,其余时间则与基辅团队一起工作。 但是在客户端需要花费几个月的时间时,会有一些例外。 通常,如果您查看我们团队的统计数据,那么在国外,我们每年最多要花费6个月的时间。 现在我们有来自美国和欧洲(英国,奥地利)的客户,最近另一个项目出现在新加坡。
除了动态之外,在这项工作中,我还有机会与不同的人进行交流并帮助解决他们的业务问题。 重要的是要学会理解他们的观点。 要做到这一点,摆脱周围所有人都有偏见的刻板印象,只重视他们的意见,不准备听别人说话。 在我的实践中,大多数客户都愿意接受合作,因为他们了解他们自己无法解决的特定问题,而您是帮助他们的专家。
我们必须在技术和软技能方面快速重建和学习新事物。 通常,您需要亲自参加现场会议。 因此,您有责任充分代表您的公司并证明您是具有高水平专业知识和经验的专业人员,以便您可以解决问题。
同时,您需要有时间不断学习和发展,并遵循出现的趋势和技术。
没有秘密:您需要消耗大量内容-阅读,参加在线课程,认证,在YouTube上观看视频。
我可以建议:
- 加入国际软件架构俱乐部。 许多经验丰富,志同道合的人随时准备帮助朝着架构和非凡的问题解决方向发展。
- 阅读。 不仅是专业文献,而且还有有关知识领域的文献。
- 学习新事物。 停止思考技术。 学会根据您要解决的业务问题思考。
我每天遇到如此多的挑战,以致在可预见的将来不太可能会变成例行公事。