Developing and maintaining a pipeline of work, existing clients, and potential clients has been one of the more tricky aspects of doing freelance work so far. When I was starting out, all I had was a vision of how I wanted my career to progress. Unfortunately, that vision didn’t come with actual work built into it. Over time, my pipeline of work has improved a bit and I’ve of course learned a few lessons.
Harvard Business Review has data suggesting that freelance workers are getting up to 84% of their work from word of mouth, not advertising or recruiters or freelance sites.
The way HBR dissected the data is pretty specific of course, they classify based on number of hours worked and then again by age, but the study matches well with my experience.
Lets take a closer look at what is happening.
Agile has fostered a fair bit of change in how software development happens. Change in what people value, how people work together, and changes in openness and and candor. For a long time, software was a black box, or close to it at least. A business feeds in some sort of information about the problem they are trying to solve in the form of requirements, and maybe six months later they get something. That something may or may not have solved the problem. If the problem wasn’t solved, the cycle begins anew.
This post is, in a way, a response to Justin Rohrman’s post about “Ageism in the Tech World“. Does it exist? Yes. Is it detrimental? It certainly can be. Does it have to be? No.
Overcoming ageism, or any other “ism”, requires taking control of our own career trajectories. How do we do that? We make choices and invest our efforts in areas that will ultimately prove beneficial.
Yes, it’s that simple.
No, it’s not easy.
No, there is no one size fits all method to doing this, but here are some things that I have done to address this in my own career.
Ron Jeffries, signer of the Agile Manifesto and co-creator of Extreme Programming, has a new book (currently in beta) out titled The Nature of Software Development. The Nature of Software Development is an accumulation of experience and ideas Ron has collected over his past 50 years of software work. The work is divided into two segments, The Circle of Value which explains his ideas on how software work should be done, and Notes and Essays which are questions from readers and reviewers as well as anecdotes from his experience.
When I ask friends why they moved to a new company, the most common answer I get is they were “just looking for something different”. When salary, benefits and other side “perks” are not part of the equation, their answers tended to end up being one of these three things:
- To learn something new.
- To be challenged and do better.
- To be surprised.
That tells me those things aren’t happening in their old environment, and the person believes they couldn’t make those thing happen — the change is impossible given the work, or the politics, or something else. The answer that comes to mind may be to pull up stakes an start over elsewhere. Sometimes, that is the right answer, but I have to wonder – how far did they push before coming to that conclusion?
Before you quit that old job, I’d like to offer you a challenge.
If you said to yourself “I just got hired today. I want to make the next 30 days a blueprint for success”, what would you do?
Software development hasn’t existed for all that long now, maybe 60 or so years. Things have changed a little during that time, and some things have come full circle. One significant shift that has occurred, is a change in how we think software work should be done. This shift can be seen in the way our development teams are put together.
Hello to everyone who reads “Uncharted Waters”. I am excited to be one of the writers to contribute to this space, and looking forward to collaborating with Matt and Justin on future posts. For those who do not know me, I’ve been a software tester for twenty years (a lot more about that below) and I have had a wide and varied career, touching many different industries and disciplines. Through them all, the primary theme has been to test software and devices, and to encourage other testers to learn more, do more and dare more. It’s my hope that I can continue that tradition here and in future posts.
I officially became a “software tester” in 1994, when I was working with Cisco Systems. Actually, the title I was given was “Development Test Engineer”. I’ve had a variety of job titles since then, such as Application Engineer, QA Engineer, QA Tester, Lead QA Engineer, and other variations that HR departments deemed necessary. I was given the choice of choosing my own title (within reason, of course) when I went to Sidereel. I asked them “Can my title be “Software Tester?” After a quizzical look, they said “Sure, if that’s what you want.” Only once in my career have I had my actual work discipline in my official title. By any other name, do we not still test software the same?
The past twenty years have taught me that experiences with testing are all unique. I have worked for seven different companies. Each has had its own take on what testing is and what made testing “good”.
At Cisco, planning your work and working your plan was a huge part of the job. In the 90s, ISO 9000 was all the rage. I would create test plans, trying to think of every possible area, only to have it turned back with “sorry, we need more detail”. I learned the art of “turning the requirements sideways”. Every listed requirement was reworded into a test case. Did it help me test better? It made for a massive checklist, but I’m not sure it did much to improve the quality of the code.
Testing Virtualization Software
Wow, what a blessing. The systems were streamlined. It didn’t matter what the real machine hardware was, the virtual machine abstracted away everything. One machine to be used everywhere. We did not have voluminous test plans. Instead, we did lots and lots of bug reporting, followed by numerous bug fixes and retesting. Each setup and teardown was clean and seamless, but we worked with a lot of images for all the possible software combinations.
Synaptics was all about touch. Everything had some aspect of how the body carried electricity. Additionally, I learned a lot about environments, including extreme heat, extreme cold, extreme wet and dry, extreme turbulence and various other conditions, not to mention getting pretty handy with an ESD gun. It was heady and scientific. I often struggled to understand what I was doing. When I did understand it, though, what a ride!
Time For Video Games
“Testing games; that has to be the most fun job ever!” Truth is, do not mistake playing games with testing games. For example, take a movable character and rub it over every surface to see if you fall through any cracks. Repeat for every scene. It’s not fun, though that was just one aspect of testing games. The most memorable experience was the language barrier. Every test plan, bug report and test report had to be reviewed for consistent language use. A QA Liaison would take all of our test artifacts and translate them into Japanese. The next day, we’d receive replies from Japan (translated back into English) that we’d review in our daily meetings. I learned a lot about the precision of words. It takes discipline to write unambiguously (or as close to that as possible).
Immigration Law Case Management
Case management for foreign nationals requires strong analytical skills and attention to detail. My testing had to pass legal audits with the tiniest details intact. My best testing tool was an abundant use of personas, making up entire families and back stories, to see if I could follow them all the way through the necessary workflows. It required learning many corner cases and scenarios, but it proved worth it in the long run.
Testing a Video Content Site
The world of television required a total rethinking of who my customers were at any given time. The end users, the studios that generate content, aggregation services that gather links, the advertisers, etc. are all different customers, each with a different expectation. The ability to focus and defocus rapidly proved extremely valuable.
Today, I work for a company that creates collaboration tools. Our system focuses on one piece flow. There are no bugs while a story is in process. We talk about issues, rework, missed test cases and under-scoped features. We deal with bugs when they hit our staging server (which is our production environment). Testers get involved early in the game. To minimize rework and story churn, we aim to be at every story design and kickoff so we can articulate issues with requirements or implementation ideas.
Is There a Right Way to Test?
Anyone looking to say “there is a right way to test” will feel silly if they trace my path. There are many right ways to test. They are as unique as each organization. I am certain of one thing. Each company helped build skills that informed every job that followed. I’ll learn a lot more in the next twenty years, though I can’t say how many companies or ways of testing that will include.
Next time you are at the office, take a look at the average age of the folks around you. The people doing the tech work; programmers, testers, ops and admin people. You’ll probably see some folks in their 20s, a few more in their 30s. From there the numbers quickly drop off.
My data sample is admittedly biased, and definitely unscientific. I’ve worked at mostly early stage startups for the past few years and those have a tendency to attract younger people for a variety of reasons.
Probably partly because startup benefits usually aren’t very competitive, and partly because of the crazy hours most tech startups expect from people.
The question of why people leave tech so early is interesting.
I want to know where people are going when they leave hands on tech jobs, and why.
If you’ve been on the internet in the past few weeks, then you’ve probably heard that Steve Ballmer resigned from the board of Microsoft in August, just seven months after he resigned as CEO. The commentary on the internet is about what you’d expect: Not just Top Ten Reasons Steve Ballmer Failed as Microsoft CEO, but also similar-themed articles with the exact same title “Why Steve Ballmer Failed” in The Atlantic, The New Yorker, and on BusinessWeek.
Ironically, all the folks who said Steve didn’t innovate picked the same title for their article.
Yet let’s look at reality here: From 2000 to 2014, Ballmer took Microsoft from $25 billion in sales to $70 billion. That computes out to 7.5% growth in sales per year — starting when dotComs were over-inflated and continuing through the real estate crisis of 2008. Growing at 7.5% in one year may not sound impressive, and it might not be hard if you have annual sales of a few million, but try having to add a few billion in new sales each year and doing thirteen times in a row.
How it is possible to call Steve Ballmer a failure as a CEO? In what way?
Let’s talk about it. Continued »
In the first part of my Starting freelance series, I talked about a few tactics for developing negotiation skills. Hopefully you were able to use that to get a little more money from your tech freelance gigs, or at least get the rate you were shooting for.
In the second part I wanted to talk about a few ways to I am currently preparing myself financially for the ups and downs of the independent life. I’m not independent yet, but preparing has been an interesting experience.
I’m hoping that preparing and developing these ideas now will pay off in the long run.
A lot of this could apply to any type of freelance / independent worker, but this will be directly related to going independent in the tech world.