“当你不再是程序员,很多事会脱离掌控”—— 对话全球最大独立开源公司SUSE CTO

标签: | 发表时间:2022-08-29 07:36 | 作者:
出处:https://mp.weixin.qq.com

【CSDN 编者按】作为全球企业级开源解决方案领导者SUSE的CTO,Brent Schroeder见证了一波又一波技术潮流赋能企业创新发展,为企业注入新活力。同时,他也感受到技术革新给企业的商业策略、运营方式和IT基础设施所带来的冲击。他认为,在如今开源和云原生大潮来临的时代,企业需要做好新一轮乘风破浪的准备。

作者 | 宋林飞      
出品 |《 新程序员》编辑部

1992年,三名来自德国的数学系学生和一名刚毕业不久的软件工程师共同成立了一个UNIX服务小组,这也是SUSE的雏形。两年后,SUSE发布了其首个Linux发行版—SUSE Linux1.0。此后,SUSE与IBM、SAP等头部科技企业逐渐达成合作,并巩固了自身在企业级Linux解决方案供应商中的地位。经过三十年的发展,SUSE已然成为了头部开源技术供应商之一,除了原有的企业级Linux产品外,它还向客户提供Kubernetes管理平台和边缘解决方案,利用团队专业的开源技术帮助企业用户实现业务增长。

作为SUSE的CTO,Brent Schroeder在概括自己的日常工作时说道:“我现在做的事和我作为学生、程序员时本质上没有区别,都是在解决问题,变化的是所解决问题的深度和广度。”他表示,现在往往需要跳出这个时代,预判十至二十年后的技术发展趋势,从而提前布局SUSE的产品和研发方向,在未来持续地为用户提供适应时代的解决方案。在从事技术行业的几十年中,Brent Schroeder见证了互联网兴起、大数据时代,再到如今的开源、云原生发展壮大,一波又一波的技术浪潮不断冲击着企业的商业策略、运营方式。在新技术,新思潮带来的变革中,企业唯有在人才、技术、基础设施等方面提前做好准备,才能更好地抓住机遇,应对不断变化的外部环境。除了技术方面的思考,为SUSE团队提供必要的支持也是他管理工作的核心。回想他从程序员向管理层的转型经历,Brent Schroeder坦诚地说:“当你不再是执行者时,很多事都脱离了你的掌控,这令人沮丧。”他认为软技能的培养对想要从事管理工作的技术人尤为重要。

在本期《 新程序员 004》的采访中,Brent Schroeder就程序员向管理层转型所遇到的挑战及企业该如何应对新技术潮流的冲击分享了他的观点。以下是本次访谈的详细内容。

学生时期与代码邂逅


邹欣:20世纪80年代,你在美国爱荷华州立大学攻读计算机和工商管理双学位,那时计算机科学还不像现在这么火热,是什么引起了你对编程的兴趣并决定学习这个专业,直到成为一名技术专家?

Brent Schroeder:决定修双学位是因为我那时就感受到了技术赋能商业运作的潜力。我与编程的渊源可以追溯到高中时的编程课,我在Apple II上开发了一个课表管理程序,帮我在排课表时省去了很多麻烦。尽管最初只是用程序实现一些简单的功能,但在那个纸质文件盛行的年代,编程对效率的提升作用深深吸引了我。

在后来的职业生涯中,我致力于探究解决问题的方式,这个习惯也一直驱动着我。作为一名技术专家,我从事的工作可以概括为理解企业在业务中遇到的挑战,并使用技术方式帮助他们解决那些被认为太困难、太昂贵或太耗时的问题,这是非常令人兴奋的。

邹欣:大学期间你印象最深刻的一个人或一件事是什么?

Brent Schroeder:老实说,选出一件事或一个人还是挺难的,因为实在太多了。美国爱荷华州立大学的计算机科学专业非常有竞争力,历史悠久。第一台数字电子计算机—ABC计算机(Atanasoff-Berry Computer)就是在爱荷华州立大学诞生的。但至今我时常会想起一位离散逻辑学的教授在开学第一天对我们的“挑衅”:“向你右边及左边的同学作自我介绍,因为到期中考试的时候,你们之中将有一个不会再出现在这儿了(因为课程很难)。”

邹欣:你提及,在大学期间你就感受到了技术赋能商业的潜力,那时你是否为自己作出了清晰的职业规划?

Brent Schroeder:在我二十多岁时,其实没有长远的规划和目标,只是单纯地享受解决问题的过程和学习新技术。直到进入职场十年后我才开始规划自己的职业蓝图。我最初给自己定下的目标是成为一名技术部门经理,后来慢慢地开始承担管理责任、熟悉CTO的角色,这对我很有吸引力。


SUSE CTO的“岗位描述”


邹欣:从一名学生,到程序员,再到技术专家、CTO,这一路你的思考方式和对技术的理解一定在不停变化,能否与我们分享在不同阶段它们是如何变化的?

Brent Schroeder:从学生到进入职场至今,我所做的事本质上都是解决问题。但变化的是所解决问题的深度、广度和时效。

当我还是一个程序员时,我关注的是赶紧把代码写好,与客户对接,思考如何满足他们实时的业务需求,多数时间需要我解决的问题都是具象的。我的产出看得见、摸得到,在短期内就可以生效并能马上得到客户反馈。

当我进入管理层后,大部分精力都花在了打破团队隔阂,解决他们的问题。比如给团队提供合适的工具,帮助他们提升培养能力,定位团队中的问题,使他们更好地协同等,所处理的事物越来越多样,我需要去平衡自己可用的时间,并且产出不会在短期有直观效果的成果。

成为CTO之后,我思考问题的眼界和层次有了天翻地覆的变化,需要以超前于现有技术环境一代甚至两代的视野来分析整个技术生态的发展趋势。包括预判哪些技术会出现、哪些会成功、哪些不会向预期的方向发展。并以此为依据,结合目前客户和行业所面临的挑战,使用适当的技术组合来帮助他们提前布局,实现商业目标。

邹欣:的确,当作为一位程序员时,你只需要解决具象的问题,产出马上就能被看到。但当你进入管理层,级别越高,你做的事影响越深远,同时也需要更长的时间才能见效。在适应这种变化的过程中你可曾遇到过挑战?

Brent Schroeder:无论是我自己,还是在帮助其他人从程序员向管理层转型的过程中,我发现最大的挑战是“你不再是执行者”。因为在之前的职业生涯中我们已经习惯参与到项目的具体事宜中,通过自己的产出来推进项目的进程。如此,项目成功与否、质量如何,对我来说完全可控。

当你进入管理层之后一切都变了。规划好方向后,剩下的工作需要依靠团队来完成,我能做的只是给他们权限和支持,不能再切实地控制项目走向。尤其是当项目进展不顺利时,这会使人非常沮丧,你会忍不住地想深入细节,自己动手完成一些工作。但你必须摒弃这种想法,如果你把时间花在项目执行层面,就没时间做你的本职工作,为团队成员提供必要的支持。

所以,在角色的过渡中,个人心理建设很重要。需要认清自己的动力是马上得到别人的认可,还是从更宏观、长远的角度来推动事情的发展。

邹欣:许多学生和年轻技术人都认为只要掌握了过硬的技术,自己就无所不能。但当他们慢慢深入职场,参与到更大的团队中,开始参与管理工作时,除了技术能力外,软实力也开始变得重要。你对此有何见解?你认为想要自己的职业生涯能更好地发展,哪些软实力是不可或缺的?

Brent Schroeder:我认为对于技术人而言,技术实力固然重要,但真正将开发者、管理者和CTO区分开的正是软实力。有很多开发者尽管资历很深,但他们还是宁愿留在一线,因为他们认为软实力的提升对他们是很大的挑战。

对于未来想要参与管理的技术人而言,与人交往的能力往往比技术实力更重要。比如,你所带领的团队中有表现较好的成员,这时你就需要思考如何在工作上给他们挑战从而帮助他们更好地成长,如何通过奖励机制激励他们,如何使他们发挥带头作用从而使整个团队得到提升。同时,你的团队中也会有表现欠佳的成员,你需要给他们适当的引导、培训,鼓励他们,通过管理手段改善他们的表现,使其成为团队的贡献者而不是团队的“拖油瓶”。此外,你的团队可能还需要与其他团队合作,你需要说服他们和你一起为了共同的目标努力。

这些都是作为管理者每天都会遇到的挑战,想要克服这些困难,人际交往能力是不可或缺的。不幸的是,这种能力是从课本上学不到的,只能通过不断地实践来培养。


开源与软件的强强联合


邹欣:前面提到,你初学编程时使用的是闭源的Apple II,但如今的学生学习时刚接触的大多是开源系统。对于这种变化,你怎么看?

Brent Schroeder:我认为这种变化是令人兴奋的。虽然Apple II不是现在意义上的开源系统,但我们也有对其进行修改的权限。记得当时我和几个同学在学校机房的电脑上恶作剧,在命令行中动手脚,这样别人在执行这些命令时系统就会给出奇奇怪怪的反馈,至今想起这些我依然感到非常有趣。如今的学生能够看到底层代码并自由地对其进行修改,这能使编程的学习充满乐趣。

邹欣:在如今的科技产业中,许多企业都在使用开源协作来驱动创新。你认为开源为什么能成为推动科技创新的主要实践?

Brent Schroeder:开源能推动创新是因为它激发了工程师们与同行合作的热情,从而把世界上最优秀的工程师们聚集在一起,通过开放协作的方式共同攻克业内难题。

开源社区是多元化的,这体现在社区成员拥有不同的背景、经验,来自不同的环境。将这些多元化的经验、特点综合在一起,所产生的能力要远远超过公司内部一群身处“与世隔绝”环境中的程序员。通过这种大规模合作,多元化的社区,开源软件才能实现快速的迭代和创新。

邹欣:假如一个项目的参与者越多,项目中的Bug就越容易被发现和修复,质量也会变得越来越好,这无可厚非。但对于企业级开源软件来说,因为它们在企业运作中扮演重要角色,很多企业对于如此开放的软件难免会不信任。那么,该如何解决这些企业用户的担忧?

Brent Schroeder:不可否认的是,我们这些沉浸在开源中的人常常会忽视外行人对开源软件的误解。我上周参加了一个金融行业的专题讨论,很多出席的行业人士都表示了他们对引入开源软件的担忧。

我认为要做好企业级开源解决方案,除了促进开放协作,同时也要关注软件的可控性和社区治理机制来确保产品的质量和安全性,这些是企业用户最关切的。尽管在开源协作中社区的多元性和活跃度非常重要,但开源项目必须要向着既定的方向发展,这就需要社区治理能力,保证社区内的成员都向着同一目标贡献。有许多开源项目都是由于缺乏共同的方向,导致了开发过程中不必要的复杂性和优先级冲突因而越做越差。

因此,要解决企业用户的担忧,可以从以下方面着手:

  • 确认项目目标,使社区成员保持同步。

  • 从开发流程上重视软件的完整度和安全性,手段包括严格的代码审查机制、测试制度,并保证每一次上线都经过此流程。

  • 如果开发中使用到了外部软件,需注意外部软件是否存在漏洞和安全问题。

假如开源开发严格按照完善的流程执行,所产出软件的安全性、可控性会超过闭源软件,因为它从设计到落地得到了无数社区精英的关注。你可以想象假如在闭源公司中要雇佣这么多人来审查代码和进行安全测试成本会有多高!


云原生浪潮下的科技公司


邹欣:除了开源之外,云原生在近几年也异常火热。自云原生概念被首次提出以来,大家对云原生的定义仿佛一直在变化。我们该如何理解这种定义的变化?基于现在的环境和你的理解,你如何定义云原生?

Brent Schroeder:虽然云原生在迅速发展,但我不认为它定义的本质在改变,变化的是在定义范围内我们能实现什么。行业对云原生最初的描述中提及了许多概念,包括DevOps、微服务、敏捷开发、持续交付、公司文化和流程,更多的是过程和结果,而不是特定技术。这代表云原生所使用的技术可以不断发展、变化,以构建可伸缩、有弹性、持续迭代、在云上可靠的应用程序。

在早期,大家还在讨论什么类型的应用与云原生更匹配,但随着云原生产出了越来越多的价值,如今人们希望将它应用到更多的场景中,所以必须开拓新的技术手段。

我对云原生的定义非常简单—它是流程和技术的结合,让企业可以构建和快速迭代应用,使应用具有动态伸缩的能力,赋予基础设施更高的容错率,并可移植到所需的业务领域以满足业务需求—这意味着它可以运行在公有云、私有数据中心中,或广泛分布在各种边缘节点上。

邹欣:云原生如今已成为实现企业数字化转型的技术趋势。在引入云原生之前企业应该有何准备?企业该如何拥抱云原生趋势?

Brent Schroeder:云原生会对企业的技术、人才、商业战略等方面带来冲击,如果企业不做好周全的准备,云原生技术引入会对企业产生负面影响。

引入云原生技术从企业购买云服务开始,因为云原生不会在一夜之间发生。它需要企业加大对IT部门和业务部门所需人员,以及必要技术的投资。

人才方面,从IT运营团队、平台架构师到开发人员,他们必须经过适当的培训,学习云原生开发所需技能。人才投资会大大提高成功的概率和效率。

企业和员工必须熟悉云原生架构下的开发流程,采用以CI/CD开发和交付方法为核心的DevOps文化。

选择合适的技术。容器、Kubernetes、基础设施,通过自动化代码来管理权限管控或安全策略,都是云原生技术概念。

总的来说,企业拥抱云原生首要考虑的应该是思想、策略和人才培养,最后才是技术。虽然大多数云原生基础设施的技术都是开源的,但我们强烈鼓励企业与技术提供商加强合作,借助技术提供商的丰富经验来协助技术引入和项目的生命周期管理。

邹欣:云原生技术正在渗透传统行业,在未来十年,哪些行业受到的云原生影响最大?云原生将如何改变它们?

Brent Schroeder:我认为所有行业都会受到云原生的冲击。如今,每个行业的公司都在变成技术公司。无论是零售、制造、金融、运输、医疗,甚至是政府服务,都面临着向客户提供多样化服务和新功能的挑战。企业必须能够更快地作出反应,来支持多样化的需求,应对变化—而云原生方法和技术可以实现这一点。

前段时间,我与一家石油公司就边缘计算技术进行了沟通,我惊讶地发现他们也将自己定位成一家科技公司。他们认为云原生技术可以提升内部系统对石油基础设施的监控能力,提升其解决和预判问题的效率,使企业运作更平稳、可靠。

邹欣:对于云原生时代的开发者来说,他们必须具备哪些技能才能满足行业的需求?

Brent Schroeder:我认为开发者必须掌握云原生相关的方法论,包括DevOps、CI/CD、微服务等。技术行业的发展目标是尽可能从业务开发中抽象出底层技术,这使得业务开发人员能专注于业务交付,而不是IT基础设施。但对于底层架构工程师来说,他们有更多需要掌握的技能,包括容器、Kubernetes等。


SUSE成功的“秘诀”


邹欣:SUSE的研发团队目前主要关注哪些研究领域?

Brent Schroeder:SUSE是创新、可靠、安全的企业级开源解决方案的全球领导者,超过60%的财富500强企业依赖SUSE来驱动他们的业务。我们专注于企业级Linux、Kubernetes管理平台和边缘解决方案的研发,并与社区合作,使我们的客户能在各个领域创新。

简化和扩展云原生应用是我们研发的重点领域,因为企业对它的需求日渐紧迫。时至今日,云原生开发需要很多专业技能和新技术。为了让更多的企业享受云原生的红利,SUSE专注于简化容器、Kubernetes、边缘计算等企业级解决方案。这些解决方案将在2022年及以后走向企业,帮助他们实现应用程序升级和数据集成。

邹欣:Kubernetes正在成为“一切”的平台,SUSE如何帮助用户更好地融入这个技术潮流?

Brent Schroeder:我想扩展一下此观点—Kubernetes和Linux正在成为一切的平台,Linux作为企业基础设施和操作环境,而Kubernetes被用来编配平台,它们相互配合。SUSE的产品正在为客户提供完整的企业级解决方案。首先,我们有可适配企业用户几乎所有基础设施的企业级Linux操作系统——SUSE Linux Enterprise。然后基于Kubernetes的企业容器管理平台SUSE Rancher—它是业内可扩展性最高、最开放的Kubernetes平台,帮助用户管理分布在多个数据中心、多个云和边缘结点的集群,部署混合和多云架构以解决业务痛点问题。最后,为提升开发人员的生产力和灵活性,SUSE提供Rancher Desktop和SLE BCI(基于容器镜像)。

邹欣:“如何从开源中赚钱”仍然是中国所有开源创业公司所面临的主要问题之一,SUSE有什么经验或建议可以分享?

Brent Schroeder:开源是SUSE的核心,它推动我们与客户合作创新。开源技术的源代码面向所有人开放,因此开源商业化的业务模型是要向客户提供代码之外的增量价值。

SUSE通过提供大量开源项目的发行版来传递这种价值。这使得客户不必成为开源项目的专家,也能专注自身的业务,将人力主要投入在服务客户层面而不用担心基础设施。

这种业务方式的挑战是客户认为他们可以自己构建和支持这些开源项目。这无可厚非,如果有足够的时间和资源,很多企业都可以这样做。但是,我总是会反问考虑这种模式的潜在客户:“你们的业务目标是什么?既然引入开源是为了支持业务或服务客户,为什么不允许专业的开源供应商来为你们部署开源基础设施?”

— 推荐阅读 —

新程序员001-004》已全面上市


相关 [程序员 脱离 对话] 推荐:

“当你不再是程序员,很多事会脱离掌控”—— 对话全球最大独立开源公司SUSE CTO

- -
【CSDN 编者按】作为全球企业级开源解决方案领导者SUSE的CTO,Brent Schroeder见证了一波又一波技术潮流赋能企业创新发展,为企业注入新活力. 同时,他也感受到技术革新给企业的商业策略、运营方式和IT基础设施所带来的冲击. 他认为,在如今开源和云原生大潮来临的时代,企业需要做好新一轮乘风破浪的准备.

普通程序员、文艺程序员、2B程序员

- 可可 - 宇宙的心弦
希望能引起广大苦逼的正在学或者已经学过c++人的共鸣和会心一笑吧. 如何辨别自己在现实还是虚拟世界.

如何面试程序员?

- bluesnail - 阮一峰的网络日志
你要面试一个程序员,应该问他什么问题. 有人在Hacker News的讨论区里,请求指点,怎么才能在面试中发现合格的人. 众人纷纷出主意,有很多高质量的回帖,我觉得挺有启发,就整理出了下面这篇文章. 首先,最重要的是,你自己一开始就应该想清楚:. 哪些途径和方法可以发现这样的人. 只有明确这些根本性的问题,才能正确高效地完成面试.

程序员的本质

- Allen - 译言-电脑/网络/数码科技
来源What do programmers really do?.   很多人(包括我岳母)认为计算机变得如此智能,所以在不久的未来将不再需要程序员. 另外一些人认为程序员是天才,他们在电脑前能不断地解决复杂的数学难题. 甚至不少程序员对他们是做什么的都没有清晰的概念.   在这篇文章中,我想给不知情的人解释一下程序员到底是做什么的:.

程序员人生之路

- myartings - 博客园-首页原创精华区
   程序员人生之路(强烈推荐,分析的透彻. ),某程序达人的人生感悟,估计没有半个甲子的时间,是绝对不可能感悟出来的.    相对同时刚出校门同学从事其它行业而言优厚的薪水,以及不断学习更新的专业知识不仅仅让你感到生活的充实,更满足了你那不让外人知的虚荣心. 在刚出校门的几年中,你经常回头看看被你落在后面的同学们,在内心怜悯他们的同时,你也会对自已天天加班的努力工作感到心里平衡:“有付出才会有回报”这句话在那几年中你说的最多,不管是对自已的朋友们还是自已的爱人.

程序员装B指南

- Qing-Run - 博客园-首页原创精华区
1.电脑不一定要配置高,但是双屏是必须的,越大越好,能一个横屏一个竖屏更好. 一个用来查资料,一个用来写代码. 总之要显得信息量很大,效率很高. 2.椅子不一定要舒服,但是一定要可以半躺着. 3.大量的便签,各种的颜色的,用来记录每天要完成的事务,多多益善. 沿着电脑屏幕的边框,尽量贴满,显出有很多事情的样子.

程序员收入报告

- diaoxsh - cnBeta.COM
最近,波兰的程序员Chris(也叫KreCi)公布了他的第十四期程序员收入报告. 数据显示,上月是目前为止他收入最多的一个月. Chris的收入并不是指他的工资或薪水,Chris是一个自由职业者. 他的收入也不是来自个人承包软件工程的收入,他更像是一个果农,种了优良的果树,只要不断的给这些果树施肥浇水,这些果树会给他带来源源不断的财富.

程序员的利器-SourceInsight

- Alex - 博客园-首页原创精华区
作为程序员,大部分时间是在已有的代码上代码工作. 要对已有的代码进行调整,首先就要搞清楚当前代码中蕴含的逻辑关系. 所以常常有程序员调侃说花了大半天时间看代码,最后写代码的时间只有几分钟. 所以,对已有代码的分析质量将影响(甚至会决定)最终代码修改的质量. SourceInsight在代码分析上给予程序员极大的帮助.

程序员?还是小丑?

- Vingel - cnBeta.COM
和你从不认识的人坐在一起,试图弄清楚他是个程序员还是个小丑. 我没有想侮辱任何人的意思,而且,我是第一个要感谢这么多年的教育和努力终于把我变成一个专业小丑的人. 对于程序员新手,我充满怜悯,为了和缓的帮他热热身,我给了他一道温和的问题来消解我们之间的陌生. 我让Ada写一段程序,在纸上,打印出“hello“这个词10次.