A Clavicle Education

Co-location is intrinsic to some software development and it can also have social benefits, build an esprit de corps and smooth out the kinds of communication issues that time zones and typing often cause. But, for me, there’s another softer reason why co-location is advantageous – I learn stuff in passing from the natural interactions I have in the course of a working day.

When I go to a colleague’s desk to ask about some functionality, and they pull up source files for inspection, I’m looking at the text, but I’m also interested in the editor they’re using, the powerful ways it lets them search/replace and the fact that it has a plug-in for fancy diffing that I wasn’t aware of and that I can use myself next time.

Sitting with a developer as they write code is a welcome insight into the mindset of someone who really knows the nuts, bolts, screws, rivets, nails and other fixings when my skills, relatively speaking, extend to being able to tell a bradawl from a bread knife. And it’s often an interesting view inside a piece of the product too, with architectural details prompting thoughts on potential test vectors.

Workmates with expertise in our application and the domains it’s used in dispense nuggets of useful information too – perhaps just by having their browser open on a site when I go over to talk to them I discover a whole new resource of testing material. Or when they work the product I see new paths through it that I can try to exploit next time I’m in that area.

Even the way that different staff interact with their computers is a constant source of new end-user behaviours. A hundred tabs in one browser? Navigating the Windows desktop and its applications by keyboard only? Numerous applications open for hours even though they’re finished with, and the machine is running like a dog? Constantly shuffling Windows to and from the centre of the desktop to reflect the user’s focus? They’re all out there, and plenty more.