I had a great time visiting my good friend Jim in Charlotte this past weekend while the wives were selling crafts at the Country Living show in Atlanta. Many hijinks ensued, but one of the most rewarding was our discussion of different approaches to co-working, as well as expansions on the concept that could redefine how we work. We come at the conversation from two different angles, and I want to give Jim the opportunity to explain his vision, so I won't go into too much detail about his particular suggestions.
It suffices to say that Jim has been co-working at a local space for some time now. Where he sees opportunity is in an organization that could take care of the administration - invoicing, taxes, space provisioning - leaving freelancers, small proprietors, and other independent developers free to pursue their business. The organization could be run on the mutual model, where all the "clients" are owners.
I'm intrigued by this idea, but I want to skin a slightly different cat. My experience of co-working has been quite different due to Richmond's lack of a dedicated space for it. Our group has had to be more ad hoc, using Twitter and Google Groups to spontaneously organize meetings at local coffee shops on an irregular basis. Everything I've read on starting a co-working venue stresses the need to build the community first, rather than getting the location and expecting people to come to it.
Building on this idea of community-centric development, where developers working on their own client projects reach out to each other for mutual aid and support, I start to wonder whether the co-working group could not be more. Having worked as an employee for software companies - especially consultancies, agencies, contractors, and the like - it begins to occur to me that what we're building in the community solves many of the problems that impel developers towards employment in the first place.
After all, while it's no cakewalk, freelancing in the development world has never been easier. Especially in the emergent technologies such as more dynamic, web-oriented languages and mobile development, work is plentiful. The capital requirements are almost zero, as you probably already own everything you need to get started - an internet connection, a computer, and maybe a phone. It's all about your ability to deliver, to manage client relationships, and carve out an area of expertise that differentiates you. Plenty of tools exist for managing the invoicing, taxes, and client communication for pennies a day.
Because of the relative ease of going out on your own, we should expect to see an increase in independent developers. The demand is definitely there; while it can be a good deal for us individually, it's often an extremely good deal for the client. Agencies have so much overhead they need to balance that their rates can be three or four times what we can afford to charge. While we may boost our earnings by eliminating all that overhead, it seems clear to me that, more often than not, the client is the one who benefits the most by the lower costs and decreased commitments that come from piecemeal contracting with independents rather than investing in a full scale relationship with another business.
The danger is not that we cannot compete, but that we become an alternative to wage labor for these clients and that they will treat us as such. Reduced compensation is not the only downside of employment; there's also the lack of control and the sense of dependency that people feel towards their employer. By having a more flexible contract from which either party can more easily walk away, we get more bargaining leverage to be sure, but that says nothing about the relationship we will have once we agree on a billing rate. Clients can be just as bossy and disrespectful as bosses, and they will often try with independent contractors what they would never dream of trying on a consultancy.
Indie developers get treated like ersatz employees precisely because, often, that's how we sell ourselves: hired hands to the the client's bidding. We're cutting out the staffing agency, perhaps, but we're certainly not positioning ourselves as serious competitors to agencies who aren't selling services so much as bundles of expertise. In order to have control over the kind of work we do, in order to build a reputation as a source of solutions and not just a tech odd jobber, we have to be able to compete with the IT firm. But what is a firm / agency / consultancy, after all? It's just a bunch of people who do what we do, with a few differences.
First, they know where to find each other on a regular basis, and so they can work together as a rule rather than as a special appointment they make with each other. Freelance for a while and you'll realize this is no small matter. In doing so, they build a rapport, a collective competency that multiplies their individual capabilities. Being able to break problems up into sections and tackle in tandem - or being able to have a manager who can help organize this - increases predictability and, often, quality.
Second, it's not just their status as a team; it's the diversity of their skills. Very few agencies only do development; they usually couple it with a hefty dose of design, marketing and strategy acumen, project management, client management, etc. A one stop shop staffed with a team of people all specializing in different parts of the delivery of software can serve as a compelling package deal. Clients are willing to pay three to four times what freelancers will charge just to have all their technology needs taken care of by one vendor.
Third, they don't have to focus on running the business per se: the bookkeeping, the billing, the facilities management, the recruiting, following up on leads, getting paid. Because the people doing our kind of work are employees, they enter into the employment agreement assuming these details will be taken care of (or that they will focus on these details and not have to do development work). The organization handles mundane concerns that so often bog independents down.
Before we ask how we indies can compete, we should first ask ourselves whether we really want to. I'm not convinced we should position ourselves as direct competitors necessarily. Doing our own bookkeeping and client management may suck sometimes, but it's awfully grounding; we never lose perspective and get disconnected from the meat and potatoes of how we earn our living. There is a certain confidence and self-reliance from knowing that what you're building is yours. You're expanding your skill set beyond being a geek prodigy to being a person who can have an impact in the industry and in the community on your own terms, not some boss's or accountant's. If your point is to grow to become an agency, then this article isn't going to appeal to you anyway, because I think employees suck just as much as employers.
But the facade of a fully integrated, unified, monolithic firm can make freelancers seem quite inadequate. It's a myth, of course: there's very little that an organization can bring to bear on a problem independent of the specific individuals involved - specific individuals that can vary in quality, are not always easily replaced when they up and leave, etc. Committing to delivering consistency to clients outside the boundaries of the firm can be dishonest when there's no consistency within the boundaries of the firm, but we've convinced ourselves that's the myth clients want to hear. That's why firms place so much emphasis on building their own corporate brand; because it serves as a convenient stand-in for the people who actually do the work but could leave anytime. The brand will never quit, and the client's relationship is with the brand, not the people.
The myth of the firm works, not because it's a uniquely superior solution for the client, but rather because a more honest arrangement has not been demonstrated competitive. After all, the biggest strength of a firm is the productive relationships developed between the workers. Funnily enough, this is precisely what we're building in a co-working community; a place where people know they can go for support, for assistance in an area outside their expertise, for a rapport and feeling of camaraderie. If this is where the agency's strength lies, there's no reason independent producers couldn't come together to build their own teams that are not tied to a brand or a boss but can nevertheless produce client value at least competitive with a firm.
Imagine a non-profit entity organized by independent developers in a town for the purposes of managing a workspace and perhaps administrative staff for our individual businesses. We don't go into the office because we need to; we go because we want to - because we want the company, we want to compare notes on solutions or commiserate about problems, and we want to see what others are doing. We build the relationships with each other without needing to control each other via employment.
Now some interesting possibilities arise. Imagine if I am trying to sign a client for a project, but they need more development labor than I can provide. Or they need a designer. Well, it just so happens I know some guys I can call in. They may not work "for" me, but we have a rapport, we've worked through problems in the past, and I trust them. I know what they bill. I can bring them in and do the work - perhaps as subcontractors, perhaps through an ad hoc entity, perhaps as independent contractors with the client. It doesn't really matter; what matters is that we're finding a way to meet a client's needs outside of growing our own business and hiring people. We're capturing the strength of the firm without becoming it.
Here are some other possibilities:
We offer training for people who want to get involved in software development, and give them opportunities to exchange their time and energy to learn the skills they'd need to build their own business and perhaps join our group.
We become a destination for clients who, perhaps at first, merely want advice. We place an emphasis on educating them about quality so they can make informed decisions about IT services. By making them better clients who can employ our expertise in a less distorted, more efficient manner, we help the entire industry. And we get great leads.
People who still work for "the man" in I.T. now have another option. They have more leverage in demanding better pay and treatment from their employer, because now they see the alternative. They might even be able to pick up some work from us if they get fired or need to quit. This raises the bar for wage labor and all boats rise.
If some of the above sound like a trade guild or union, then you're understanding me. But it neither has to necessarily work out like that nor like anything in particular. The precise direction in which any of this would evolve is a secondary concern.
What's more important to me is that we see the potential and possibilities in the act of striking out on our own. We don't need to conform to the standards set by a bunch of large, corporatist behemoths who thrive off of inefficiency and mediating between the client and the producer. We don't have to think of our independence as wage labor by another name. There's room for real organizational innovation in the business of software development.
By taking initiative in solving our own problems, by meeting our own needs creatively and unconventionally, we might transform this stagnant and conservative industry. Who knows, we might even provide an organizational model for how workers in other industries can better work. Remember: we didn't stop working for "the man" just to do business like him!