Pairing without Programming

19 Feb 2014

Pairing is often associated with programming. There's a Wikipedia article about pair programming, but nothing on pairing in general. And yet, it's a fantastic technique for getting anything done well, especially when neither of you really know exactly how to approach a problem.

For a week and a half now, I've been working with Sandro on the business side of Codurance. From next week, I'll be heading to a client to do some actual programming, but in the mean time, I've been working on recruiting, promotion, client relations, and I've also had a little more time to spend on LSCC.

I've been really enjoying myself, and with good reason. I've never run a company before, and while I'm not really doing that now, I'm helping and learning a lot. This is mostly down to pairing. We pair on a lot: we've written the job specifications together, worked on training material, sent emails to clients and customers, debated our approach to apprenticeships and what's desired of our craftsmen and craftswomen, figured out what we want and need from an office… the list goes on and on. We've conceded a number of important points to each other that only made sense because we gave ourselves the freedom to think with instantaneous feedback.

We pursue all these things because they're what's going to put food on the table, and at some point, we need to eat. Discussion begets discussion though, and we've found ourselves regularly arguing the merits of domain-driven design, schools of TDD, up-front design, architecture, various frameworks and patterns, and pretty much everything else under the sun. (It turns out Sandro and I disagree on a lot.) These are the discussions I've missed from working with like-minded software developers; people who care about all the end-results of their productivity, not just the one that you see on the screen immediately, but how that user interface will look three months from now, how simple it is to add functionality and how much joy or suffering you'll bring the next person who has to work with your output.

Pairing also allows us to comfortably talk about situations that are generally kept quiet between employers and employees. Creating an environment in which we can talk about anything has allowed us to discuss salaries, working conditions, flexibility in working hours and even our own lifestyles. Sandro's just had a baby and needs to rebuild his life around him; by bringing this to the table as a concern of the company, not just his personal problem, it encourages everyone else to make their colleagues aware of their own personal situations. I'm really hoping this will result in a company which doesn't just say it cares about its employees, but is designed from the outset to take their needs, desires and aspirations into account. By pairing on the company itself, we can shape it into something we love.

I'm thoroughly enjoying pairing on everything. I've only been at Codurance a short time, but it feels like I've come home.

Oh, and we're hiring. :-D

This post was cross-posted to my personal blog.