Pair Program and Feel the Flow

Pair Program and Feel the Flow

Gudny Hauknes, Kari R?ssland, and Ann Katrin Gagnat

iMAGiNE THAT YOU ARE TOTALLY ABSORBED by what you are doing— focused, dedicated, and involved. You may have lost track of time. You prob- ably feel happy. You are experiencing flow. It is difficult to both achieve and maintain flow for a whole team of developers since there are so many interrup- tions, interactions, and other distractions that can easily break it.

If you have already practiced pair programming, you are probably familiar with how pairing contributes to flow. If you have not, we want to use our experiences to motivate you to start right now! To succeed with pair programming, both individual team members and the team as a whole have to put forth some effort.

As a team member, be patient with developers less experienced than you. Con- front your fears about being intimidated by more skilled developers. Realize that people are different, and value it. Be aware of your own strengths and weaknesses, as well as those of other team members. You may be surprised by how much you can learn from your colleagues.

As a team, introduce pair programming to promote distribution of skills and knowledge throughout the project. You should solve your tasks in pairs and rotate pairs and tasks frequently. Agree upon a rule of rotation. Put the rule aside or adjust it when necessary. Our experience is that you do not necessarily need to complete a task before rotating it to another pair. Interrupting a task to pass it to another pair may sound counterintuitive, but we have found that it works.

There are numerous situations where flow can be broken, but where pair pro- gramming helps you keep it:

? Reduce the “truck factor.” It’s a slightly morbid thought experiment, but how many of your team members would have to be hit by a truck before the team became unable to complete the final deliverable? In other words, how dependent is your delivery on certain team members?

??128 97 Things Every Programmer Should Know

?

???????????????Is knowledge privileged or shared? If you have been rotating tasks among pairs, there is always someone else who has the knowledge and can com- plete the work. Your team’s flow is not as affected by the “truck factor.”

? Solve problems effectively. If you are pair programming and you run into a challenging problem, you always have someone to discuss it with. Such dialog is more likely to open up possibilities than if you are stuck by your- self. As the work rotates, your solution will be revisited and reconsidered by the next pair, so it does not matter if you did not choose the optimal solution initially.

? Integrate smoothly. If your current task involves calling another piece of code, you hope the names of the methods, the docs, and the tests are descriptive enough to give you a grasp of what it does. If not, pairing with a developer who was involved in writing that code will give you better overview and faster integration into your own code. Additionally, you can use the discussion as an opportunity to improve the naming, docs, and testing.

? Mitigate interruptions. If someone comes over to ask you a question, or your phone rings, or you have to answer an urgent email, or you have to attend a meeting, your pair programming partner can keep on coding. When you return, your partner is still in the flow and you will quickly catch up and rejoin him.

? Bring new team members up to speed quickly. With pair programming, and a suitable rotation of pairs and tasks, newcomers quickly get to know both the code and the other team members.

Flow makes you incredibly productive. But it is also vulnerable. Do what you can to get it, and hold on to it when you’ve got it!

时间: 2024-12-21 12:19:48

Pair Program and Feel the Flow的相关文章

Uva 10806 来回最短路,不重复,MCMF

题目链接:https://uva.onlinejudge.org/external/108/10806.pdf 题意:无向图,从1到n来回的最短路,不走重复路. 分析:可以考虑为1到n的流量为2时的最小花费: 建图: 一个点到一个点的容量为1,费用为距离. 1 #include <cstring> 2 #include <cstdio> 3 #include <vector> 4 #include <queue> 5 #include <algorit

opencv3.1自带demo的介绍和运行操作。转载

opencv3.1自带demo的介绍和运行操作. 下列实验基本都试过,有些需要根据自己的电脑修改一些路径或者调试参数. 值得注意的是,控制台程序输入有时候要在图像所在的窗口输入相应的指令.我的电脑上安装了vs2013和2015. vs2015+opencv3.1/2.4.9在我的电脑上经常有这个错误:xxxx处有未经处理的异常: 将一个无效参数传递给了将无效参数视为严重错误的函数 ,或者提示在vector.h里的错误.后来用VS2013+Opencv3.1就没有这个问题. opencv可能还是有

10 Questions To Make Programming Interviews Less Expensive--reference

Conducting Interview is not cheap and costs both time and money to a company. It take a lot of time to find the right candidate for a job from 100s resume you receive from consultants and agents. They will always tell you that this guy is a Java Guru

[转载 ]POJ 1273 最大流模板

转载 百度文库花了5分下的 不过确实是自己需要的东西经典的最大流题POJ1273 ——其他练习题 POJ3436 . 题意描述: 现在有m个池塘(从1到m开始编号,1为源点,m为汇点),及n条水渠,给出这n条水渠所连接的池塘和所能流过的水量,求水渠中所能流过的水的最大容量.一道基础的最大流题目.但是模板小心使用,目前只是求单源点的最大流. 参考数据: 输入: 5 4 1 2 40 1 4 20 2 4 20 2 3 30 3 4 10 输出: 50 程序实现: 增广路算法Edmonds_Karp

[ST2017] Lab5: Using SOOT --generate Control Flow Graph for Java program.

登陆 GitHub, 访问 https://github.com/Sable/soot, 下载 zip 包

Conditionals and Control Flow

Part 1: if and else Statements 1. Comparisons operators > Greater than < Less than <= Less than or equal to >= Greater than or equal to == Equal to != Not equal to 2. if Statements Now let's see how we can use comparisons to ask yes or no ques

POJ2014 Flow Layout

Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 3161   Accepted: 2199 Description A flow layout manager takes rectangular objects and places them in a rectangular window from left to right. If there isn't enough room in one row for an ob

Application binary interface and method of interfacing binary application program to digital computer

An application binary interface includes linkage structures for interfacing a binary application program to a digital computer. A function in a relocatable shared object module obtains the absolute address of a Global Offset Table (GOT) in the module

[USACO09JAN]全流Total Flow

题目描述 Farmer John always wants his cows to have enough water and thus has made a map of the N (1 <= N <= 700) water pipes on the farm that connect the well to the barn. He was surprised to find a wild mess of different size pipes connected in an appa