When I think about leading a development team and the possibility of one day running my own little software development business I always think about what sort of a place I would want that to be. What sort of environment would I create, what sort of developers would I hire and what sort of culture I would want to instill in those around me. Were I the one paying people to write software what would I want to see from them? Since I have no wish to move away from developing software I suppose it makes sense for me to want the best for my hypothetical developers because I’d still be one, or at the very least deeply involved in what they are doing.

In July Ernie Miller1 was interviewed about the concept of “Humane Development”, a concept that focuses on providing a better operating environment for everyone involved in the software development process. It’s a philosophy that preaches open and honest communication, and to me seems to be hinting towards a “remove the bullshit” attitude towards software development that I really subscribe to, without outright saying it.

There are four key values for Humane Development. They’re empathy, honesty, trust, and autonomy.
Ernie Miller

Recently, the team I was working in was split into three smaller teams, each focused on a particular pillar of the next phase of the larger overarching project. As part of this the managerials entrusted each team to operate somewhat independently of one another, with only a small number of shared deadlines and dependencies between them. This has meant that as a team, we have been able to come up with our own processes, timelines (to some degree) and sprint goals. This increase in autonomy has correlated with an increase in how much I enjoy being at work, mostly because I enjoy a bit of a process optimisation.

Through this increase in autonomy and my continuously evolving thoughts on the concept of humane development I found myself utterly fascinated and drawn to one particular idea that is mentioned in Ernie Miller’s blog post on Humane Development2; The idea that developers should be allowed to work when they want to. In the context of running my own company I’m quite intrigued by this idea, because I immediately envision a very small, tight-knit development team that would work when inspiration or motivation strikes. I suppose that’s my idealistic side bubbling to the surface.

I’m not sure how viable such an idea really is though, but if given the chance, it is what I would strive for. I’d still prefer the people I hired to live within easy driving distance of some central office/authority, but mostly because I believe being able to have ‘down time’ with the people I work with has had the greatest impact on team cohesion out of any formal initiatives I’ve been through in the workplace. I also feel as though by having a real base of operations for people to come in to it’s easier to enable them to be as productive as possible.

Any task that centres on idea creation just flows more naturally when you’re in the same room. Sometimes you need that big whiteboard to nut out ideas with a colleague. Sometimes you work better if you get together in the same space with a decent coffee fuelling the process. And beyond that, sometimes you don’t have the ability to set up the most optimal workspace at your own home, which is what an office could hopefully provide. Nicer chairs, better monitor layout and quieter working conditions are all things I see an office environment could potentially offer to those that need it, depending on how much people love their home office setup.

Then again, maybe I’m just a sucker for nice office setups worthy of being a stock photo.