一次开发人员交换角色的尝试

jopen 11年前

  如果你曾经有过这样的经历,在一次开发讨论会中,人们都在热火朝天的讨论出现的问题,而且你却待在角落里打盹儿——这说明你毫不关心他们关心的问题。出现这种现象并不能简单的认定你是个没能力的蠢货(然而,你很有可能就是),而是因为你确实跟他们讨论的问题不相干。也许你从来没有写 REST 接口,处理过数据库升级问题,或为互动网站写过网页标签。你不知道哪里会有错误,难点在什么地方,或遇到的是什么样的技术挑战——你对所有的这些都不熟悉或根本不知道。为了补救这种情况,我的同事——威利·米勒和我启动了一个我们称作“开发角色互换”的实验。

  米勒是一个科班教育出身的程序员,在很多我们一起工作的项目中(e.g., Boss Blueprint),他一直在开发后端的程序,而我做前端的页面。为了能让我们对对方的工作有更多的了解和赏识,我俩决定做一个新的项目,项目中我们互换角色,我将要写后端程序,而他要写前端页面。

“前端开发的兔子洞比我想象的要深的多。就好象我走到洞边,丢一块石头,却一直没有听到触底的声音。”

– 威利·米勒

  我,同样,也感到了前所未有的阻力。我头一次接触 Ruby 语言,要从头学习像 Sinatra 或 Rails 这样的 web 框架,需要去研究那些看起来数都数不完的各种引用库。这些是如此的不同,很显然是因为我从前从未用过它们,也是因为我所面对的是完全不同类型的问题。作为前端开发人员,通常最麻烦的问题是一个按钮没有表现出色彩梯度,或有些东西没对齐。然而,不了解后台的工作原理,也许会导致前台不是最优的处理展现方式,甚至会妨碍和后台服务集成。

  经过数周在项目里艰难行进和互相帮助,我们发现这种互换角色的锻炼让我们在所有 Web 项目中都变得更容易沟通,传递思想更有效率。比如在站会中,我能更有兴趣的参与后台程序员解释他们的成绩和他们遇到的困难。我还能提出一些不弱智的问题,对问题提出一些不同角度的观点。可在角色互换前,我只能傻站在那,脑子里是想午饭吃什么或下班后干什么。经过了角色交换的锻炼,我认识到,我不仅收获了大量的关于 ruby 语言的知识,更重要的,当团队作为一个整体在创造和实现一个东西时,我对解决方案有了一个更全面的视角。

  很显然,开发角色交换在公司组织层面有一定的难度。如果在一个重要项目的中期这样做自然是不明智的。当你的团队中做一些低优先级的任务时可以考虑这样做。你能找到很多让团队成员担任不同角色的好机会。这样做不仅能让你的团队获得更大的交叉训练,同时也能帮助团队成员提高参与度、扩大视野,以更有效更优雅的方式完成项目目标。

  你们做过开发角色交换的练习吗?你们的团队有过这样的锻炼吗?说来听听!