[This was posted earlier here]
Tallie Gabriel reports this month that a large fraction of freelance workers are “software developers” . She is referring to a survey by Squarespace indicates that 29% of freelancers develop software, and this fraction may grow .
The survey indicates that these workers are a bit older (and therefore more experienced) than freelancers overall and more likely to have kids. They are reported to be even more predominantly male.
There is, of course, tons of coding work available, and employers are happy to “pay as you go” for many tasks. So it is not very surprising that there is a booming “will code for food” sector.
The survey found that these coders report work less than a full work week, and earning a bit less than conventional employees. This ability to earn enough with flexible hours is probably a key to the high satisfaction reported.
I’ll point out that this survey should be taken with a bit of care. The definition of “software development” lumps together a broad range of skills and tasks, and the pay and opportunities vary quite a bit within this range. The needs of employers will continue to evolve, so past performance is definitely not a prediction of future success.
As a (retired) software engineer, I’m not overly surprised by these findings.
A lot of coding has always been done independently (at home, at night, down in the basement of the building next door (in the case of Mosaic), etc.), and a lot of coders essentially go from short term project to short term project, even in conventional organizations. So working freelance fits the work practices of many “coders”,
The survey also notes that the freelance developers are generally enthusiastic about and participate in open source software projects. This makes tons of sense, too, in that participation in OSS is pretty much a freelance activity. If you like coding enough to donate your time to open sourcing, you’ll be even happier doing something similar for pay.
Gabriel’s article discusses the question of “learning as you go”, or at least trying to. I.e., bidding on a contract that requires technical skills that you do not quite have, with the idea of figuring it out on the job. As she says, this can get a freelancer in a lot of trouble, with missed deadlines, swollen time commitments, and customer dissatisfaction.
This problem is quite familiar to anyone in the field (I mean, who hasn’t taken an assignment that required new skills?) and especially to anyone who has had to recruit and lead software teams. It is unusual to find people with exactly the skills needed for a new project, and such paragons are hard to get and probably expensive. But on the other hand, taking a chance on a rookie is a risk, and teaching people on the job can be very costly (especially if you are tying up other skilled workers supervising the work of others).
Glancing at the survey report, I was struck by the list of skills and roles of the freelance developers. Specifically, I was struck by what isn’t in the list. Things like documentation, testing, software maintenance, configuration management, and, most of all “team leader”.
Now, in part this reflects the particular jargon used in the survey, which lumps some of the functions into categories such as “back end” or “full stack” or “product manager”. But still, the freelance roles are really concentrated in the area of pushing out new products quickly, not on supporting products already in use—which I would say is what software work is mainly about.
The Subspace survey reports that workers in their sample really hates the social overhead of organized work (meetings, tasks other than coding, dealing with other people), and are “less motivated by company culture and more motivated by remote work flexibility”. In other words, “I just want to code, I don’t want to bother with the rest of the business.”
That’s fine and good, but my experience suggests that this isn’t necessarily the best way to do software, even if some programmers prefer it.
The short term, project oriented commitment of freelancers that means that there is little opportunity to develop (and be rewarded for) “institutional knowledge” and memory. (And, by the way, it can also mean that they don’t understand the big picture, which can lead to building totally useless software, i.e., solving the wrong problem.)
Beyond just plain experience (“been there, done that”), senior software people are valuable holders of knowledge about things like “why we did it that way” and “how that obscure module actually works” and “how we figured out that problem”. No matter how good you might be, there is no substitute for this kind of experience.
In fact, I suspect that some freelancers are actually semi-permanent contractors, hired on multiple contracts precisely because they have this kind of knowledge. And in such a case, freelancing basically amounts to a preference for one kind of employment relationship over another.
Possibly most important, short term deliverable-focused freelance coding makes it challenging to assemble and maintain development teams. Software is really, really complex, and good software is generally a team effort. My personal rule of thumb was and is that I might be the smartest programmer in the room (maybe), but I’m never smarter than the union of everybody in the room.
Some of my proudest achievements in software development involved fostering a great team. This is a difficult challenge (programmers are notoriously egotistical, opinionated, and, shall we say, “boisterous”), and it is even more difficult if some or all of the team are short term contractors with limited commitment to the team per se–and never in the office. I personally wouldn’t be totally happy leading a software project relying on freelance workers.
This last point raises the question of the potential value of coworking for these freelancers. I can see reasons why freelance programmers would benefit from a coworking space. My impression is that in some cases a software project might be executed by a team of freelancers who work together (at least some of the time) in a coworking work space. Coworkers might find work through community connections, and especially, might connect with a successful development team of local coworkers. A coworking community would also be extremely helpful for building such a team, and would also be an opportunity to successfully learn new skills.
But the survey data seems to indicate that few of these freelance software developers (~15%) mainly work in coworking space, and prefer small projects on which they work alone. Taking this survey at face value, there is clearly a large cohort of people who like coding alone, and are very satisfied to get reasonable pay for relatively small and time limited projects. This group seems to have little interest or use for coworking space or coworking community.
I guess this should be filed under “coworking is not for everyone”.
- Tallie Gabriel, What most people don’t know about one-third of the freelance population, in Freelancers Union Blog. 2019. https://blog.freelancersunion.org/2019/08/07/what-most-people-dont-know-about-one-third-of-the-freelance-population/
- Subspace, The Rise of the Contract Coder: A Report on the State of Freelance Software Development. 2019. https://robertmcgrath.files.wordpress.com/2019/08/cb696-riseofthecontractcoder2019subspace.pdf
(For much more on what makes coworking tick, see the book “What is Coworking?”)
What is Coworking?