`
参照物
  • 浏览: 12675 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

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

阅读更多

转载自IT学习社区:http://bbs.itcast.cn/forum-102-1.html

 

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

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

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

    – 威利·米勒

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

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

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

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

 

英文原文:Swapping Developer Roles: A Lesson in Empathy and Cross Disciplinary Work

分享到:
评论

相关推荐

    交换编程-结对编程的延伸实践

    ### 交换编程—结对编程的延伸实践 #### 一、引言 交换编程作为一种新型的软件开发模式,是对结对编程的一种延伸...对于那些希望提高团队协作能力和稳定性的软件开发项目来说,交换编程无疑是一种值得尝试的新模式。

    让java网站开发从此简单起来[一个项目只用一个Servlet和一个Dao类]demo

    在给定的项目中,作者尝试简化这个过程,通过仅使用一个Servlet和一个DAO类来构建整个网站。这种方式旨在降低复杂性,提高开发效率。 Servlet在Java Web应用中扮演着服务器端处理程序的角色,它接收HTTP请求并返回...

    J2me 基础学习 rpg游戏开发学习

    Java 2 Micro Edition (J2ME) 是一种用于开发小型设备和嵌入式系统的 Java 平台,尤其在早期的移动设备,如功能手机和早期的智能手机上非常流行。RPG(Role-Playing Game)游戏是指角色扮演游戏,这类游戏允许玩家...

    易语言源码易语言文本变量交换源码.rar

    使用临时变量的交换方法是程序中较为直观的做法,通过创建一个临时变量来暂时存放其中一个变量的值,然后通过赋值操作来完成交换。例如: ```e a = 10 b = 20 临时变量 = a a = b b = 临时变量 ``` 然而,更有趣的...

    c++游戏开发经典案例详解.pdf分享

    而实践是检验真理的唯一标准,不断尝试和改进,将理论知识转化为实际代码,是成为一名优秀游戏开发者的关键步骤。在学习过程中,遇到问题时,不要忘记利用开源社区、论坛和教程资源,它们是你成长的宝贵财富。

    在复杂的项目开发中使用结对编程

    经过一定时间后,两人会交换角色,以便于双方都能获得实际操作的机会和经验。 #### 二、结对编程的优势 1. **提高代码质量**:结对编程通过实时的代码审查,能够及时发现并修正错误,从而显著提升代码质量和可维护...

    Android客户端远程登录web服务器数据交换实例

    在Android开发中,实现客户端与Web服务器的数据交换是一项常见的任务,尤其在移动应用需要与远程数据库交互时。本文将深入探讨“Android客户端远程登录Web服务器数据交换实例”,讲解如何使用MySQL数据库、JSON数据...

    基于PHP的网站后台角色权限管理系统源码.zip

    授权部分则依赖于角色-权限模型,当用户尝试访问资源时,系统会检查其角色是否拥有相应权限。 【API接口】如果系统设计得当,还可以提供RESTful API接口,使得其他应用或服务能与后台进行数据交换,实现更灵活的...

    基于Java与HTML的武汉0329-tingshu-parent项目搭建与登录模块开发源码

    在当前的软件开发领域,基于Java与HTML的技术栈依然是构建Web应用的主流选择之一。特别是对于需要实现用户认证功能的系统,Java因其...对于希望提升Java Web开发技能的专业人员来说,这个项目是一个非常好的学习资源。

    基于JavaScript核心技术的yctv视频平台设计源码

    项目“基于JavaScript核心技术的yctv视频平台设计源码”正是这一领域中的一次创新尝试,它不仅仅是一个简单的视频服务平台,而是一个融合了多项前沿技术的复杂系统。该项目采用了JavaScript这一广泛使用的网络编程...

    基于JavaWeb全栈开发的入门到精通教程源码

    XML文件作为数据交换的重要格式,在Web服务中扮演着重要角色。教程中的456个XML文件帮助学习者理解和实现如何使用XML进行数据的存储与传输。 整体来看,这套教程源码不仅覆盖了JavaWeb全栈开发的主要技术点,更通过...

    USB 转串口驱动 嵌入式开发

    - **调试工具**:嵌入式开发人员常使用USB转串口设备作为调试工具,通过串口连接到目标板,发送命令、读取反馈,实现对微控制器或嵌入式系统的调试。 - **固件更新**:许多嵌入式设备支持通过串口进行固件升级。...

    can总线的数据交换PPT学习教案.pptx

    为了更好地理解和应用CAN总线,开发人员需要深入研究其数据帧和远程帧的结构设计,以及错误帧和过载帧在异常情况下的处理机制。此外,对CAN总线网络的物理层和链路层功能的掌握也是必需的。物理层涉及信号的电气特性...

    基于Python开发的外星人入侵小游戏设计源码

    在项目中还有一个JSON文件,它是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在这个游戏中,它可能被用来存储游戏的高分记录或者玩家的游戏进度信息。 整款游戏的设计精良,功能齐全。...

    Delphi+10.1+Berlin+DataSnap+开发手册+PDF扫描版及源码

    **Delphi 10.1 Berlin DataSnap 开发手册及源码详解** DataSnap是Embarcadero Delphi中的一个强大框架,专为构建分布式应用程序而设计。在Delphi 10.1 Berlin版本中,DataSnap提供了一整套工具和技术,使开发者能够...

    基于Java开发的中州养老项目设计源码

    中州养老项目的设计源码正是在此背景下,通过Java技术来解决养老领域应用开发的一次探索和尝试。该项目共包含107个文件,覆盖了Java源文件、XML配置文件、Git忽略文件、JSON文件以及YML文件等多样化的文件类型,这...

    基于Python和Shell开发的ibm db2客户端工具设计源码

    在其他类型的文件中,JSON文件可能被用来存储配置信息或者数据序列化的结果,它们易于人类阅读和机器解析的特点,使得其在现代软件开发中广泛应用于数据交换格式。 项目中还包含了一个Shell脚本文件,这表明虽然该...

    linux驱动开发学习步骤

    2. **编写一个简单的Makefile**:尝试为自己的驱动项目编写一个Makefile,确保它能够支持使用`make`命令进行编译和清理。同时,确保Makefile能够与Linux内核的构建系统兼容,以便于后续的集成测试。 #### 二、实现...

    这是2017年10月开发的,是小程序原始版本的官方开发框架。其主要功能包括蓝牙

    由于微信小程序官方原始版开发框架的推出,开发者们开始尝试利用这一框架来构建各种小程序,涉及生活服务、游戏娱乐、商业零售等多个领域。这一框架的发布,为小程序的快速普及和应用拓展奠定了基础。随着时间的推移...

Global site tag (gtag.js) - Google Analytics