<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Sarah Mei &#187; pairprogramming</title>
	<atom:link href="http://www.sarahmei.com/blog/tag/pairprogramming/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.sarahmei.com/blog</link>
	<description></description>
	<lastBuildDate>Sun, 22 Jan 2012 20:16:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Speak Ruby in Japanese</title>
		<link>http://www.sarahmei.com/blog/2010/09/04/speak-ruby-in-japanese/</link>
		<comments>http://www.sarahmei.com/blog/2010/09/04/speak-ruby-in-japanese/#comments</comments>
		<pubDate>Sat, 04 Sep 2010 21:59:32 +0000</pubDate>
		<dc:creator>sarahmei</dc:creator>
				<category><![CDATA[ruby]]></category>
		<category><![CDATA[japan]]></category>
		<category><![CDATA[japanese]]></category>
		<category><![CDATA[language]]></category>
		<category><![CDATA[pairprogramming]]></category>
		<category><![CDATA[rubykaigi]]></category>

		<guid isPermaLink="false">http://www.sarahmei.com/blog/?p=678</guid>
		<description><![CDATA[I&#8217;ve studied Japanese on and off for more than ten years &#8211; mostly &#8220;off.&#8221; I took a year of language when I was in college, but since then it&#8217;s just been periodic classes at Soko Gakuen in San Francisco. I managed to pass the JLPT level 3 a few years ago, so in Japan last [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve studied Japanese on and off for more than ten years &#8211; mostly &#8220;off.&#8221; I took a year of language when I was in college, but since then it&#8217;s just been periodic classes at <a href="http://sokogakuen.org/" target="_blank">Soko Gakuen</a> in San Francisco.</p>
<p>I managed to pass the JLPT level 3 a few years ago, so in Japan last month, I was decent at ordering food and navigating the subway. But I quickly discovered that I couldn&#8217;t really talk to another programmer. None of my classes even taught me how to say &#8220;programmer,&#8221; let alone &#8220;code,&#8221; &#8220;object,&#8221; &#8220;method,&#8221; &#8220;development environment&#8221;&#8230;<span id="more-678"></span></p>
<div id="attachment_726" class="wp-caption alignleft" style="width: 310px"><a href="http://www.sarahmei.com/blog/wp-content/uploads/2010/09/pair-programming-1.jpg"><img class="size-medium wp-image-726" title="pair-programming-1" src="http://www.sarahmei.com/blog/wp-content/uploads/2010/09/pair-programming-1-300x223.jpg" alt="" width="300" height="223" /></a><p class="wp-caption-text">@sarahmei, @t_wada, @sakuro (photo by Lee Lundrigan)</p></div>
<p>Dictionaries would normally be my next recourse, but it&#8217;s pretty hard to look this stuff up. As in the US, programmer culture in Japan has its own slang. But I had a chance to pair with some Japanese devs at the Pair Programming Cultural Exchange that <a href="http://twitter.com/t_wada" target="_blank">@t_wada</a> and I ran at RubyKaigi (see left), so I picked up a little bit. And since I&#8217;ve been back, I&#8217;ve been translating technical articles for fun. (What else would you do on a 12-hour flight?)</p>
<p>As a result, a lot of this list comes from my notes. I also added words I found in <a href="http://twitter.com/#search?q=rubykaigi" target="_blank">the RubyKaigi Twitter stream</a>, <a href="http://www.ultrasaurus.com/sarahblog/2009/12/japanese-geek-speak/">Sarah Allen&#8217;s blog</a>, and <a href="http://www.mightyverse.com/phrase_lists/pair-programing" target="_blank">Mightyverse&#8217;s pair programming phrases</a>, among other locations. Any errors are, of course, my own.</p>
<p>The list is short &#8211; there are many more things I&#8217;d like to know how to say. And I guessed at the right katakana for some of the loan words. So: <strong>please send additions and corrections</strong>[<a href="#thanks">*</a>], kkthx! I&#8217;ll add anything vaguely technical to the list.</p>
<p>I hope it provokes more cross-language Ruby discussion.</p>
<table border="0">
<tbody>
<tr>
<th>English</th>
<th>Kanji</th>
<th>Kana</th>
<th>Romaji</th>
</tr>
<tr>
<td>block</td>
<td></td>
<td>ブロック</td>
<td>burokku</td>
</tr>
<tr>
<td>blog</td>
<td></td>
<td>ブログ</td>
<td>burogu</td>
</tr>
<tr>
<td>cache</td>
<td></td>
<td>キャッシュ</td>
<td>kyasshu</td>
</tr>
<tr>
<td>character</td>
<td>文字</td>
<td>もじ</td>
<td>moji</td>
</tr>
<tr>
<td>code</td>
<td></td>
<td>コード</td>
<td>koudo</td>
</tr>
<tr>
<td>core library</td>
<td></td>
<td>コアライブラリ</td>
<td>koa raiburari</td>
</tr>
<tr>
<td>developer</td>
<td>開発者</td>
<td>かいはつしゃ</td>
<td>kaihatsusha</td>
</tr>
<tr>
<td>development</td>
<td>開発</td>
<td>かいはつ</td>
<td>kaihatsu</td>
</tr>
<tr>
<td>development environment</td>
<td>開発環境</td>
<td>かいはつかんきょう</td>
<td>kaihatsu kankyou</td>
</tr>
<tr>
<td>diary (often used in place of blog)</td>
<td>日記</td>
<td>にっき</td>
<td>nikki</td>
</tr>
<tr>
<td>digit</td>
<td>数字</td>
<td>すうじ</td>
<td>suuji</td>
</tr>
<tr>
<td>dot (as in foo.bar)</td>
<td></td>
<td>ドット</td>
<td>dotto</td>
</tr>
<tr>
<td>expected failure (of a test)</td>
<td>予想通りの失敗</td>
<td>よそうどおりのしっぱい</td>
<td>yosoudoori no shippai</td>
</tr>
<tr>
<td>feature</td>
<td>機能</td>
<td>きのう</td>
<td>kinou</td>
</tr>
<tr>
<td>flexible</td>
<td>柔軟</td>
<td>じゅうなん</td>
<td>juunan</td>
</tr>
<tr>
<td>full-width (as in character)</td>
<td>全角</td>
<td>ぜんかく</td>
<td>zenkaku</td>
</tr>
<tr>
<td>global (as in variable)</td>
<td></td>
<td>グローバル</td>
<td>guroubaru</td>
</tr>
<tr>
<td>hashrocket</td>
<td></td>
<td>ハッシュロ ケット</td>
<td>hasshuroketto</td>
</tr>
<tr>
<td>implementation</td>
<td>実装</td>
<td>じっそう</td>
<td>jissou</td>
</tr>
<tr>
<td>internal structure</td>
<td>内部構造</td>
<td>ないぶこうぞう</td>
<td>naibu kouzou</td>
</tr>
<tr>
<td>latest</td>
<td>最新</td>
<td>さいしん</td>
<td>saishin</td>
</tr>
<tr>
<td>method (on an object)</td>
<td></td>
<td>メソッド</td>
<td>mesoddo</td>
</tr>
<tr>
<td>modification</td>
<td>変更</td>
<td>へんこう</td>
<td>henkou</td>
</tr>
<tr>
<td>multibyte (as in character)</td>
<td>多バイト</td>
<td>たバイト</td>
<td>tabaito</td>
</tr>
<tr>
<td>multibyte (as in character)</td>
<td></td>
<td>マルチバイト</td>
<td>maruchibaito</td>
</tr>
<tr>
<td>object</td>
<td></td>
<td>オブジェクト</td>
<td>obujekuto</td>
</tr>
<tr>
<td>plugin</td>
<td></td>
<td>プラグイン</td>
<td>puraguin</td>
</tr>
<tr>
<td>programmer</td>
<td></td>
<td>プローグラーマ</td>
<td>purouguraama</td>
</tr>
<tr>
<td>refactoring</td>
<td></td>
<td>リファクタリング</td>
<td>rifakutaringu</td>
</tr>
<tr>
<td>refactoring</td>
<td>改善</td>
<td>かいぜん</td>
<td>kaizen</td>
</tr>
<tr>
<td>runtime</td>
<td></td>
<td>ランタイム</td>
<td>rantaimu</td>
</tr>
<tr>
<td>spec</td>
<td></td>
<td>スペック</td>
<td>supekku</td>
</tr>
<tr>
<td>statement</td>
<td></td>
<td>ステートメント</td>
<td>suteetomento</td>
</tr>
<tr>
<td>string</td>
<td>文字列</td>
<td>もじれつ</td>
<td>mojiretsu</td>
</tr>
<tr>
<td>test</td>
<td></td>
<td>テスト</td>
<td>tesuto</td>
</tr>
<tr>
<td>test framework</td>
<td></td>
<td>テストフレームワーク</td>
<td>tesuto fureemuwaaku</td>
</tr>
<tr>
<td>threadsafe</td>
<td></td>
<td>スレッドセーフ</td>
<td>sureddoseefu</td>
</tr>
<tr>
<td>tool</td>
<td></td>
<td>ツール</td>
<td>tsuuru</td>
</tr>
<tr>
<td>tutorial</td>
<td></td>
<td>チュートリアル</td>
<td>chuutoriaru</td>
</tr>
<tr>
<td>ugly (as in code)</td>
<td>かっこ悪い</td>
<td>かっこわるい</td>
<td>kakko warui</td>
</tr>
<tr>
<td>usage</td>
<td>使い</td>
<td>つかい</td>
<td>tsukai</td>
</tr>
<tr>
<td>variable</td>
<td>変数</td>
<td>へんすう</td>
<td>hensuu</td>
</tr>
</tbody>
</table>
<p><a name="thanks">[*]</a> ありがとう:</p>
<ul>
<li><a href="http://twitter.com/threedaymonk" target="_blank">@threedaymonk</a> for a correction to multibyte digit.</li>
<li>Nobuyoshi Nakada for corrections to variable and multibyte character/digit, and addition of full-width character/digit.</li>
<li><a href="http://twitter.com/boblet" target="_blank">@boblet</a> and <a href="http://karmag.dreamwidth.org/" target="_blank">karmag</a> for a correction to development environment.
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.sarahmei.com/blog/2010/09/04/speak-ruby-in-japanese/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Thoughts on two months of pairing</title>
		<link>http://www.sarahmei.com/blog/2010/04/14/thoughts-on-two-months-of-pairing/</link>
		<comments>http://www.sarahmei.com/blog/2010/04/14/thoughts-on-two-months-of-pairing/#comments</comments>
		<pubDate>Thu, 15 Apr 2010 05:58:55 +0000</pubDate>
		<dc:creator>sarahmei</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[pairprogramming]]></category>
		<category><![CDATA[pivotal]]></category>

		<guid isPermaLink="false">http://www.sarahmei.com/blog/?p=343</guid>
		<description><![CDATA[Previous to joining Pivotal Labs, I didn&#8217;t do a whole lot of pair programming. Hoo boy. It&#8217;s been a little over two months since I started, and the number of hours I&#8217;ve spent solo programming since then would all fit in one workday. I&#8217;ve had some surprising realizations &#8211; about myself, my style, and my [...]]]></description>
			<content:encoded><![CDATA[<p>Previous to joining Pivotal Labs, I didn&#8217;t do a whole lot of pair programming.</p>
<p>Hoo boy.</p>
<p>It&#8217;s been a little over two months since I started, and the number of hours I&#8217;ve spent solo programming since then would all fit in one workday. I&#8217;ve had some surprising realizations &#8211; about myself, my style, and my abilities &#8211; and more than a few DUH moments. This post is more a collection of anecdotes than a coherent essay, but if you&#8217;ve wondered what full-time pairing is like, I hope it gives you a few insights.</p>
<p>It does contain some profanity. I blame my co-workers for that.</p>
<p><span id="more-343"></span></p>
<h2>On Constraints</h2>
<p>Pivotal works a strict 8-hour day, in keeping with the agile principle of sustainable pace. But because all projects are paired (you cannot buy the services of a single Pivot &#8211; we only come in pairs) everyone has to be in the office at the same times every day. So everyone arrives at 9, everyone takes lunch from 12:30-1:30, and by 6:15 the office is a ghost town.</p>
<p>I knew I&#8217;d love the work &#8211; and I do &#8211; but I thought I&#8217;d be fighting the schedule. Nine to six would have been fantastic 10 years ago, but now that I have a husband and two kids&#8230;not so much. There isn&#8217;t a daycare in the city that stays open past 6, and it&#8217;s much harder for me to go to doctor appointments, school events, and all the other kidly activities that are, without fail, held between 9 and 6.</p>
<h2>The Punchline</h2>
<p>Now that I&#8217;m doing it, I <strong>love</strong> the fixed schedule. At other jobs, around 4pm every day, I&#8217;d start wondering about when I needed to leave. I&#8217;d try to remember who I was picking up, and when, and then I&#8217;d look it up on my calendar, and then I&#8217;d text Peter and ask whether there was anything I needed to ask or tell the daycare folks, and then I&#8217;d stress about getting enough work done before I had to take off.</p>
<p>There&#8217;s none of that anymore. I know exactly when I&#8217;m leaving, and since my pair is leaving at the same time there&#8217;s no pressure to stay longer to finish something off. When I&#8217;m working, I can be completely present. When I&#8217;m done, I don&#8217;t have to drag a laptop home and check email or fix the build once I get there. I don&#8217;t even know how to get into Pivotal&#8217;s VPN from home. I walk out of the building at 6:05 with a clear mind and a clear schedule for the rest of the night.</p>
<p>It&#8217;s fucking exhilarating.</p>
<h2>On Getting Shit Done</h2>
<p>Fundamentally, what I love about software development is writing code that people actually use. I love to finish things. So anything that makes me feel like I&#8217;m really GSD makes me incredibly happy.</p>
<p>When people talk about pairing, you hear a lot about how it &#8220;amplifies&#8221; their productivity. I am going to go on record with the truth, however. Pairing does not amplify my productivity. Instead, it erases all the bad habits I have that keep me from being a superstar on my own.</p>
<p>When I&#8217;m pairing, I can really get shit done.</p>
<p>By myself, I have a lot of roadblocks:</p>
<p><strong>Rabbit Holes. </strong>When trying to figure out some thorny bug by myself, I often follow the wrong line of inquiry too far. I follow it sometimes for the sake of completeness &#8211; of knowing with 100% certainty that some factor is <strong>not</strong> what&#8217;s causing the problem &#8211; when 90% or even 50% certainty would do. Something in my brain craves completeness, occasionally to the detriment of productivity, and particularly when I am tired (hello, parenthood). I usually don&#8217;t notice it when it&#8217;s happening. However, if I have to explain to someone else what I am doing, the ridiculousness of it all suddenly becomes obvious and I&#8217;m able to break out.</p>
<p><strong>Distractions.</strong> If I&#8217;m working by myself, I&#8217;m on email, I&#8217;m on IM, I&#8217;m on twitter, oh my tests are running so I&#8217;ll check hacker news&#8230;and on and on. That time adds up over the day. And of course once I look at my email I&#8217;ve switched contexts so going back to my code is another context switch, and even though it may only take a few minutes, that also adds up. It feels <strong>amazing</strong> to work solidly for four hours at a time on a problem. But somehow when it&#8217;s just me, I can&#8217;t always keep that focus. I think it&#8217;s the addition of the social input and output that lets my frontal cortex actually attend to the problem at hand, without going ooh-shiny all the time.</p>
<p>That, and the guilt trip from my pair when I do wander.</p>
<p><strong>Cheats.</strong> If someone&#8217;s watching, I don&#8217;t take shortcuts. I write the tests first. I refactor code that needs it. I focus on doing the simplest thing that could possibly work, without being sloppy. I make sure I understand what I&#8217;m doing before I do it. I&#8217;d like to say that I always do these things when on my own&#8230;I really would. But the truth is that sometimes I put logic in my view code, because christ, if I move that then I need to put it in a helper and make a new file and add a new spec, and I said I&#8217;d be done by the end of the day and it&#8217;s 4:30 and no one&#8217;s reviewing my code so&#8230;I just do it.</p>
<p>But if someone else is watching what I&#8217;m doing&#8230;I just don&#8217;t. That feels incredible.</p>
<p><strong>Too-Clever Syndrome. </strong>On the other side, I get excited by knotty technical complexity. I love to dive in and start changing things to see what happens in situations where it would really be better to write some tests first. And, I like pushing the boundaries of the language, but I don&#8217;t work on experimental or research code &#8211; someone has to read and maintain it &#8211; so all the clever metaprogramming is really not suitable.</p>
<p>But it&#8217;s so much fun! And I get to revel in how smart I am! It sounds stupid to say that out loud, though. So I don&#8217;t even go there.</p>
<h2>The Nine-to-Fiver</h2>
<p>I often hear programmers &#8211; mostly young, mostly single &#8211; talk  disparagingly about &#8220;commodity programmers.&#8221; They usually mean people  who program at work but spend their free time on other stuff, and aren&#8217;t  really interested in tech.</p>
<p>Since I became a parent, I&#8217;ve turned into that person &#8211; the one who  needs to leave at a fixed time and can&#8217;t work weekends. So for a lot of my peers, that means I&#8217;m not &#8220;passionate&#8221; enough, and that I can&#8217;t really be a  good engineer. I got that reaction enough times that I started  to believe it. Well, fuck that. I know I am amazing at what I do, and I  love it. But it&#8217;s not my whole life.</p>
<p>Working at a company that really respects the boundaries of my time AND enables me to kick ass and get shit done all day has seriously been a revelation.</p>
<h2>Socialitis</h2>
<p>On the spectrum of social awkwardness, I fall somewhere between the  engineers and the marketing guys. Like many engineers, I miss social  cues, don&#8217;t make enough eye contact, forget people&#8217;s names, and have a  hard time making small talk. However, I can fake these skills decently  well when necessary, and I&#8217;ve noticed that it&#8217;s a muscle that I can  exercise &#8211; the more I do it, the better I get, and the less I have to  think about it.</p>
<p>About a month after I started at Pivotal, I went to a UCSD engineering alumni  event. At these events, where I am  usually the only person not working in Enterprise with a capital E, the  social interaction part of the evening is a lot of guys staring at each  other&#8217;s shoes. In the past I&#8217;ve tried to get conversation out of these  people, but between their awkwardness and mine it was like  pulling teeth. But this time, for some non-obvious reason&#8230;it was easy.  The people and the shoes were about the same.</p>
<p>It&#8217;s me who had changed.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sarahmei.com/blog/2010/04/14/thoughts-on-two-months-of-pairing/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
	</channel>
</rss>

