acm-header
登录

ACM通信

BLOG@CACM

通过变革演进:让你的团队拥抱变革


叶戈尔·Bugayenko

几年前,我作为架构师加入了一个Java编程团队。当我签约的时候,我的老板滔滔不绝地说开发团队是多么有才华,虽然架构还可以改进,但它仍然是一个很好的基础。没问题,对吧?毕竟,他们雇用我是为了推动变革,如果团队像承诺的那样有才华,清理架构就不是问题了。

仅仅过了几个星期,我就意识到实地的现实与此大不相同。首先,30名程序员中的大多数都是相当初级的。虽然他们中的一些人有动力和进取心,但许多人会努力解释静态方法和对象方法之间的区别。

哦,那承诺的“好”建筑呢?只不过是由不同的人在不同的时间点编译的。java文件的合并。“建筑”这个词没有什么韵味或道理。

上述问题都不是关键问题。如果初级程序员有天赋和动力,他们就会掌握这些技能。如果架构一团糟又如何?只要有改变的意愿,这个问题也可以解决。这可能需要一段时间,但耐心和努力会有回报。

事实证明,“愿意改变”才是关键问题。大多数开发人员已经学习了一种特定的方法,并依赖于一组特定的工具。开发人员喜欢的许多工具都被真正的面向对象编程人员所痛恨,包括Spring、MyBatis、singleton以及getter和setter。

我面临着一个严峻的挑战:我需要对开发团队进行改组,但我是一个局外人和新人。我几乎没有政治资本,没有预先建立的关系,虽然我有老板的支持,但我没有实施彻底变革的授权,尤其是在一夜之间。

如果我只是禁止Spring,我可能还会把我的合同扔进碎纸机。解雇只是“何时”的问题,而不是“是否”的问题。相反,我发起了一场游击战,积累资源,在条件有利的时候发起攻击。

我的长期目标是让整个团队不断发展并接受变化(意思是:更好的实践)。从短期来看,这意味着建立我自己的“少数派团队”,最关键的是,这个团队将支持我的变革愿景。

然而,“革命”对大多数程序员来说是一种威胁,尤其是那些最有经验和资历的程序员。我不怪他们。进化对他们的职业生涯是个威胁。如果我站在他们的立场上,我自己可能也会抗拒改变。

然而,有些事情必须改变。问题是如何建立我的少数派团队来支持变革。

第一步是接触年轻的程序员,我指的不是年龄,而是职业生涯。新员工通常不太抗拒改变,对革命更开放。我选择了最好的,我指的是那些最渴望和愿意学习的人。

经过几次交谈后,我把我的团队缩小到7名程序员。很明显,他们没有得到适当的指导,也没有成长战略。这似乎令人担忧,但对我来说,这是一种好处。我就可以重新开始了。

现在,该如何处理这张白纸呢?首先,我成了他们非官方的导师。我首先检查他们的代码并提供关键反馈。这种反馈是由知识支持的,特别是博客文章和书籍来建立我的案例,并增加自己的知识。

接下来,我每周组织讲座。这些游戏面向所有开发者,而不仅仅是我的团队。然而,不出所料,我的团队参加了每一场讲座,而其他人则进进出出,或者根本懒得出席。

最后,我重构了一些代码,并让我的团队检查了我的pull请求。这些小而有挑战性的任务给了我的团队一些可以咀嚼的肉,可以讨论的话题,可以讨论的想法。这有助于建立团队的团结,在几个月内,我的团队就有了真正的凝聚力。

我的少数团队不再满足于架构。最重要的是,他们没有袖手旁观,而是挑战现状。这确实造成了紧张,但也为进化提供了基础。

没有糖衣,我的努力造成了开发者之间的分歧。但这就是通过革命进化的方式。

随着时间的推移,其他程序员也加入了我们的行列,并开始使用这个程序。关于解决问题的真正讨论出现了。事情正朝着正确的方向发展。测试覆盖率增加了,对象变得不可变。我没有根除Spring,但我确实放松了它的控制。

我在不到一年的时间里自愿离开了这个团队。对我来说,更绿的牧场在别处。尽管如此,我还是为进化埋下了种子。

以上这些你都可以做到,随着时间的推移,你还可以做到更多。但你必须从今天开始。不要等到你获得了“头衔”才去推动改变,即使你只是一名初级开发者也要从现在开始。如果有什么区别的话,那就是它会帮助你在以后的职业道路上获得合适的职位头衔。即使你是一个初级开发人员,你仍然可以成为导师。

你需要的是为改变而奋斗的动力、远见和承诺。

叶戈尔·Bugayenko他是软件工程和管理平台Zerocracy的创始人和首席执行官。


没有发现记录

登录为完全访问
»忘记密码? »创建ACM Web帐号
Baidu
map