The physical side of the software process
When folks talk about the “Software Development Process”, there’s usually a lot of talk about gathering requirements, or tracking issues, or verifying business logic, and so on. Whether waterfall or agile, the discussions on development processes almost always focuses on tools and concepts. Methodologies.
Over the years I’ve grown suspicious of any and all promises attributed to methodologies. If there was a single best way to develop software, we’d have all settled on it years ago and everybody would build this stuff the same way and nobody would be making thousands of dollars selling books on “The NEW Software Development Methodology” or running enormous conferences to explain their NEW Software Development Methodology.
But to be honest, I’ve found the biggest gains in productivity and general developer happiness rarely come from methodologies or tools. Bug trackers are all basically the same. Each developer has their favourite IDE that they’re most comfortable using.
The biggest gains I’ve ever found come from PHYSICAL improvements. I blogged on my own blog about the value of a couch when I was project managing. I remember when a shop I was working at brought in some consultants who relied on sticky notes for virtually everything, and what a tremendous value that was. I’ve also blogged about the design of the whiteboard and why it’s so important in collaborative design work.
FreshBooks just moved into a shiny new office. It’s a beautiful place, high-ceilinged and open, with lots of meeting space and all that. We’re very happy, even if construction is still ongoing around us and gets a little (a lot!) noisy at times. But it was a chance to design an office just the way we wanted it, which meant:
Lots of whiteboards! They’re not all properly mounted on the walls yet, but we have nearly a 1:1 ratio of developers to whiteboards. Massively useful tools, even if it’s just for posting silly cartoons on. The ability to just say, “Look, here’s what I’m thinking,” and draw out a diagram or a couple of circles or whatever is huge and it’s easy to think you don’t need it. There’s simply no such thing as too many whiteboards.
Meeting spaces. We were kind of hurting for meeting room space in our old office, but the new one gives us a lot of options. There are quiet nooks where a couple of folks can gather and a few proper meeting rooms of different sizes for intense sessions where you need everyone to focus (and whiteboard!). My estimation is that you need at least one meeting room per ten employees.
Open spaces. The office is a wide-open room, which I know some folks don’t like (Hi Joel!), but at FreshBooks we’re all chipping in on handling phone calls, or helping out vetting one of Saul’s crazy ideas, so it’s important to us that everyone’s available all the time. There’s an unexpected side effect of this: if you hold a meeting of some type in such an open space, EVERYONE can see it happening. We do a daily stand-up with all the developers every day at 10:30 — just a quick go-round of what everyone is doing today. Back in our old office the development team was separated in different rooms so not everyone could tell at a glance that the stand-up was happening so there was always some rigamarole around getting everyone organized. In our new space, folks can SEE the meeting happening and they jump up to get in on things. It’s natural and automatic and makes us all more productive.
Getaway space. There’s also a big lounge/kitchen area away from everyone’s desks where you can just get away and kick a ball around, grab something to drink or take a nap on a comfy couch. The kitchen is big and spacious, so lots of folks can get to putting meals together without clonking into each other. Interesting conversations happen here — there’s an ongoing plan to become international jewel thieves that we flesh out a little more each week — and it’s important to have space that facilitates pointless encounters because you never know where inspiration will strike.
Space is SO important. There are so many fantastic ways to improve a team’s productivity that don’t involve purchasing expensive software licenses or hiring high-priced consultants. A $500 couch or a $200 whiteboard or even just a $5 pack of sticky notes can do more for your team if you implement it properly.
Anyone else got stories about low-tech solutions for high-tech problems?











9:21 am
I love this, so true! Very productive to think of “Space” as a technology … applying one’s experience into a arranging systematic surrounding.
I often hear of institutions getting new computers, equipment, etc … but never hear about how physical space will be deployed to make everything work together .. thanks.
9:38 am
Sorry for the typo in the previous comment …
As for other stories, there is a great example in the DVD “the making of The Incredibles.” Not only do they discuss some very cool tools invented, they discuss how Steve Jobs set up Pixar studios to have a centrally located restroom and lounge area, so programmers, designers, etc, would naturally mix and have conversations. I was amazed at how much they credit this single fact with their success.
9:16 am
Space is the first consideration in any creative activity – painting, theatre, etc. Somedays I try and fool myself into thinking the blank page before me is a white board….(today that’s not working).
After space, I would add food. One CIO I supported declared at a meeting “It’s amazing what people will do for coffee and a muffin!” But food is a great ice breaker and the act of ‘breaking bread’ with someone builds collaboration.
Way cool!
1:23 pm
You’ve nailed it! In my last life, the software development space was very nice, but traditional, cubicles. Productively was barely acceptable.
In my previous life to that, we had consciously purchased cubicals that went 4in above the desk surface. We had 60+ cubicals. Productivity was stellar! Nobody could hide in their cubicals.
4:06 pm
Yeah, there’s no perfect solution, but being conscious of the environment and its impact is one of the simplest, most effective levers I’ve ever found for my team’s productivity.
Thanks for all the comments, folks!