米勒是一个科班教育出身的程序员,在很多我们一起工作的项目中(e.g., Boss Blueprint),他一直在开发后端的程序,而我做前端的页面。为了能让我们对对方的工作有更多的了解和赏识,我俩决定做一个新的项目,项目中我们互换角色,我将要写后端程序,而他要写前端页面。
“前端开发的兔子洞比我想象的要深的多。就好象我走到洞边,丢一块石头,却一直没有听到触底的声音。” – 威利·米勒 |
我,同样,也感到了***的阻力。我头一次接触Ruby语言,要从头学习像Sinatra或Rails这样的web框架,需要去研究那些看起来数都数不完的各种引用库。这些是如此的不同,很显然是因为我从前从未用过它们,也是因为我所面对的是完全不同类型的问题。作为前端开发人员,通常最麻烦的问题是一个按钮没有表现出色彩梯度,或有些东西没对齐。然而,不了解后台的工作原理,也许会导致前台不是***的处理展现方式,甚至会妨碍和后台服务集成。
经过数周在项目里艰难行进和互相帮助,我们发现这种互换角色的锻炼让我们在所有Web项目中都变得更容易沟通,传递思想更有效率。比如在站会中,我能更有兴趣的参与后台程序员解释他们的成绩和他们遇到的困难。我还能提出一些不***的问题,对问题提出一些不同角度的观点。可在角色互换前,我只能傻站在那,脑子里是想午饭吃什么或下班后干什么。经过了角色交换的锻炼,我认识到,我不仅收获了大量的关于ruby语言的知识,更重要的,当团队作为一个整体在创造和实现一个东西时,我对解决方案有了一个更全面的视角。
很显然,开发角色交换在公司组织层面有一定的难度。如果在一个重要项目的中期这样做自然是不明智的。当你的团队中做一些低优先级的任务时可以考虑这样做。你能找到很多让团队成员担任不同角色的好机会。这样做不仅能让你的团队获得更大的交叉训练,同时也能帮助团队成员提高参与度、扩大视野,以更有效更优雅的方式完成项目目标。
你们做过开发角色交换的练习吗?你们的团队有过这样的锻炼吗?说来听听!
英文原文:Swapping Developer Roles: A Lesson in Empathy and Cross Disciplinary Work