I’ve heard it said that a change is as good as a rest. As someone who has never sat still, I have probably made this my guiding philosophy. I joined the tech industry in 2016 and have changed employers, employment terms, roles, sectors, locations and environments several times - each time learning something new about the way I am able to access work as a developer. Each time, realising that with every pro, there’s naturally a con. I have written articles and given talks about the way we think as developers; about learning and the things that help us to remain teachable; even the obligatory ‘tips and tricks’ piece - but on the other side of making that jump into contracting, I’ve realised I’ve a lot to say about how we choose to do our work.
In an industry where we work in the actual internet, building tiny corners of it, you’d think we’d all be remote by now. Indulge yourself for a moment in a time-travel chat with your past self. You only need to go back to say 1999. Explain to little-you that we have devices that allow us to see each other while we talk, that we can do that for the price of broadband and a device as opposed to those 20p a minute calls we made to pals after school, and that everything, from sharing code to presenting talks can be done through the one device we work on. Little you is excited, right? But now tell little-you that we still pay business rates on air conditioned offices in big cities; braving rush-hour public transport or roads in order to arrive, put on our headphones and do exactly the same work while sharing the same physical space with other people. Little-you is confused, right?
Remote work has been a taboo for such a long time. It feels a little futile writing about the speed at which employers and, to be fair, employees have embraced working from home when in fact, we’re in the middle of a lockdown that sees much of the globe resorting to doing that under government orders. I suspect though that when we are no longer in a pandemic, or dare I say, between pandemics, we will return to business-as-usual, with people relieved to have face-to-face meetings as an option and everyone where they can be kept an eye on.
I have worked in so many seemingly progressive workplaces who have approached a request by a staff member or colleague to work-from-home with suspicion. As a mother of 2, and a multi-faceted human being, remote work as an option has allowed me to balance adult life with work effectively. The benefits for me personally include saving the somewhat punitive cost of childcare, saving the sky-high price of tickets for unreliable trains and basically never having to take a sick day - it’s rare that you’re too sick to open a laptop.
But let’s face it, why do my employers care about how much I spend on trains? Well, it’s likely they don’t. What they will care about is the fact that if I have a chance to maintain anything like a sustainable work-life balance, I might just stay put. The stats around the cost of retention vs the cost of new-hires is a factor that will speak for itself. They care when I’m late because I’ve been held up by signal failure and they probably should care when I arrive at my desk too tired and cross to achieve anything much until I’ve talked myself down. You might be sold on the promise that an investment in your employees well-being is one that will pay off for you over and again, in terms of profit. You might not even need the profit adjunct to consider it.
My latest adventure sees me contracting; touting my wares about town to any Sam, Jane or Harriet that’ll pay me for my services. It’s a strange time to start something new, sure, but it turns out, you can go through life carefully considering all the variables before you make a huge decision and still be blindsided by factors you had never imagined that are entirely beyond your control, and continue to put one foot in front of the other anyway. So here we are.
The brevity of this new life has meant that much of what I learned about contracting, I learned while in-house. I learned during projects that threatened to overrun that the person in charge would say ‘We need to get a contractor in.’ It always sounded to me like the tech equivalent of ‘I think we’re gonna need a bigger boat.’ When the project was done and the contractor had done their thing, they went off into the world again, ready to fix problems elsewhere, for whoever needed their services.
I often looked at these people with a mixture of awe and curiosity. I loved that they served a limited purpose; it wasn’t their job to care too much about whether the company won the pitch, they didn’t need to be at Christmas parties and they avoided so much of the least pleasant side-effect of working with other adults in an office environment: the politics. They never had down time because they were there to deliver. The no-man’s land of life between projects wasn’t a reality to them. And if it was, it was because they weren’t at work at all.
I couldn’t get my head around how they managed it all. They would arrive and have no real first day, they’d need to get straight into things and they got no weepy goodbyes when they went. I made a point of saying a proper hello and welcome to every contractor who joined my team in my first few months of my career working in tech. After a while, I noted that others didn’t really do the same. 50 new LinkedIn contacts later, I could see why.
Engaging with a contractor when you’re perm can be a discombobulating experience. When you’re working out if you can justify taking a day of your limited annual leave to watch your kid’s school play and you have lunch with someone who does your job but has decided not to come in for August, it can be jarring. You’re reminded pretty quickly though that while you can choose to take a day to recuperate when you’re knocked out with a cold-but-honestly-it-was-more-like-flu, they are going to need to consult the spreadsheet before they allow themselves that little luxury.
As an employer though, it’s really important to be aware of this disparity. Talk to your permies and explain to them why you’re making that call. Ensure that your people know that they are the people you invest in, send on training and involve in decision-making. Avoiding hierarchies is hard but essential. And I don’t mean ‘Oh yeah I’m the CEO but I sit in the open plan office like everyone else.’ Acknowledging inequalities fortifies us in teams; ignoring them creates problems.
And while we’re there, let’s make sure we introduce this lot to the team. It’s going to make life for everyone a lot easier if that contractor gets taken out to lunch on their first day and given a proper induction. Sure, it’s costing you, but it’s also establishing a good foundation for teamwork.
As a permie
The thing I was most sad to leave behind when I made the leap from Perm to contract was not the all-hallowed sick day, but the feeling that you can be a part of the family. And whether you’re in a huge company or a small agency, family feels like the right term to me.
Permanent employment, for better or for worse, allows you to form ties to colleagues who you know you’ll share a space with for a good while, physical or otherwise. Long-term outcomes are also relevant to you. On a cynical level, because your employment depends upon them being favourable; in a more holistic sense, because you have come to care about the company, the people in it and the work that it does. You have ownership. If you didn’t, it would be hard to keep doing what you do each day.
Colleagues become friends but also a checklist of special skills. You want to know how best to extend this functionality? Fine, so-and-so built that. Ask her. You want to run your approach past someone who will be testing the finished piece? Great. This tester is incredible at breaking things. Speak to him.
There are other things that I didn’t know I’d miss about being permanent. I have realised that I’m quite a high-level thinker when it comes to my work. I need to know the whys as well as the hows to do meaningful work. When you’re parachuted into a project and given a defined piece of work to do, you might not have access to those wider aims or the thinking behind the project and that can really affect the way I solve a problem. Working inside of an organisation, it’s not just the code across projects you have access to, it’s the backstory too. We did this for client A and it worked out fine until they asked for Feature Z. This time around we need to plan for Feature Z+.
Software vs agency
Possibly the most whiplash moment for me in going from place to place was the shift between agency and software. Oof! What a landing that was. In theory, the client's needs dictate the way you use your time in either case. In theory, every minute you spend thinking, writing code or fixing it after the fact is from a budget in both worlds. In practise though, who the clients actually are really matters.
When you’re in house, building software for the executive board, you are all pulling in the same direction because you share the same aims. The client knows about a huge outage that set you back two weeks; or a week of firefighting when something that looked watertight was actually pretty leaky. Your client knows that you don’t have a QA person right now so is, ideally, sensitive to the factors that contributed to that leaky release. After all, it was their decision not to hire someone to do it.
There’s no room for this kind of set back in the agency world. Agencies tend to have a reputation for keeping their teams on late into the evening and pull requests raised over weekends. It’s not difficult to see why either. If Client A has an emergency, why would Client B care? When you’re building software Client A and B are usually golfing buddies. In some cases, they’re the same person.
Speak to anyone who has worked in an agency and you’ll hear stories from both sides of the spectrum. During those rare quiet times, how do you log a day’s work? You came to work to work but how do you account for 7 and a half hours when all that’s on your to do list is a couple of bug fixes? When the project is near complete, and you know what the budget looks like and it comes to logging, can you really justify saying that something that was scoped at 2 hours actually took you 8? It takes a lot of courage to be rigorously honest around these things when you know that it will disappoint a client. It takes an awful lot of faith too, that your ability is not the real factor at play in slowing down the pace.
Culture can play a massive part in what happens at this fork in the road. In a team that is well supported, listened to by managers and adept at collaborating, the ‘overspend’ will be flagged. As a consequence, the next scoping exercise will be better informed, more reasonable, more flexible and perhaps it will even allow a contingency for overspends going forward.
It’s here that it comes back to who the clients are, once again. If the client you’ve landed has chosen you because you’re ‘cheap’, listen up: you’re not cheap.
Cheap doesn’t mean that you’ll get the product out the door in fewer hours. It means that your developers will be putting in more hours in their evenings and their weekends. Cheap means that your project managers aren’t logging half of the time they are moving cards around a trello board, chasing devs for updates and having ‘informal’ catch ups with the client.
I may sound like a hippie when I say this but the quality of the product you end up with is directly proportional to the happiness of the team building it. Happy teams build great products because they are able to be honest with their teammates. They are able to share good ideas and bad and garner honest feedback on both. To mix a metaphor or two, they never reinvent the wheel and charge for it because the left hand knows what the right is doing.
You’d be forgiven for thinking the ideal place to land would be working for yourself. I spent some years dreaming of picking up work that was entirely mine. No unreasonable time frames for specs, no wild promises made by folk who won’t be building and you get to choose your clients too.
I have been quietly picking up freelance work for the last 4 years. It’s allowed me to boost my earnings and without it, I wouldn’t be the proud owner of a clapped out campervan but it has been a baptism of fire. My first client was a friend and I couldn’t believe my luck and the timing of it. Something I could build in my own time for some much needed pocket money and I love to build! My second client was a friend too and by then, I knew that there were a few pitfalls associated with working for pals and I was far less excited.
What I hadn’t quite learned and would soon was that working on your own means you are all things to all people. Design? Check. Project management? That’s me. Accounting? Bleurgh, also me. And then there’s the front end/back end divide that you end up straddling. It was freelancing that made me appreciate two things. One, how hard it was to truly be adept enough to call yourself a full-stack developer. Two, the meaning of the phrase ‘Jack of all trades, master of none.’
Until I worked freelance, I hadn’t cared too much what a project manager, for instance, actually did with their time. I didn’t realise they’d been making my life easier for years. My clients would come to me and they’d say ‘We’d like to go live in 3 months’ and I would say ‘Sure!’ Then three months would pass and no one had any content. Was it my job to nudge the client to write the content? Yes. My job to make sure it wasn’t reams and reams of copy? It was.
Don’t even get me started on design. My last launch looked beautiful at the ‘first draft’ stage, in my humble opinion. The client liked it but they wanted more purple. Much more purple. By the time I was done with it I could have cried. Surely it was someone’s job to show a client what a nice, clean build could do with their branding? It was. It was mine.
The freedom that comes with being master of your own schedule is indeed exhilarating, but the drawbacks were plentiful. I loved the idea of working when I wanted to but found that it often meant that time I’d usually count as hallowed, weekends, evenings, were no longer. Being the boss of your project means you’re always ‘on’. As a contractor, based in an agency, or a developer at a software company, I could switch off my emails for a weekend and worry little about it. Ask your friends who own small businesses when the last time they did that was.
Today, I contract. I work for companies that need me for distinct pieces of work, and I leave when it’s done. I have enjoyed the intensity of this arrangement thus far. You don’t pay someone a day rate unless you really need them and knowing that I can choose to take a few weeks off if I choose to gives me a real buzz. I was warned that when a day ends up ‘costing’ you, you tend to work more and I don’t know if I just really value my comfort or if it’s that I have far too many responsibilities outside of work jostling for my attention, but I can’t see it being an issue for me.
As a contractor it is my responsibility to train me. I am not paid to get acquainted with the-trendy-new-framework on the job. It’s all on me and if I want to remain hirable, it’s key that I make the time for it. The days of keeping weekends sacrosanct are over and it’s about now that I’ll discover how much of this work I love. 9-6 is one thing but when you’re at your desk on a sunny Sunday and the hours float by while you hammer out another ‘Hello, world’ that you learn what this work means to you.
The pandemic has meant that many people in my situation have found themselves without work; the market is dealing with uncertainty, the likes of which it has never encountered. As a consequence, I consider myself incredibly fortunate to have work to do. While we’re all at limited capacity and dealing with our own particular set of circumstances, it is worth taking a look around and asking yourself what challenges other people are facing. Some are trying to keep their employees employed, others are furloughed and trying to come to terms with the weeks ahead without their work. We’ll be back together soon and we’ll all be changed by this period - we have an opportunity to put our best foot forward on this next build. It’s empathy that’s going to set us on the right path for it.