Category Archives: #freelancing

When Testing isn’t Testing

Let me ask you if this sounds familiar. You deploy a feature or a site to your customer’s staging server and send them an email letting them know that they can begin testing. After a day they email back that “Everything looks great!” and you deploy the feature to production. A day after that, your inbox is flooded with frustrated emails from your client how “everything’s broken and nothing works.”

What happened? Didn’t the client just say everything was great?

Yes they did, but unknown to you, their idea of testing was vastly different than your idea of testing.

Here was your customer’s “test”: One person in the office opened up their browser, checked to see if the pages matched the comps from their graphic designer, maybe edited a few fields and clicked “save.” They did that once, and they didn’t check edge cases, different browsers, or go through all the features you discussed in the requirements document. Then they sent you an email, “everything looks great.”

Now they’re getting angry emails from their users about how it won’t let them save in IE 6, or Firefox, or how the print margin on the printer-friendly view are off, and they’re asking “didn’t you even test this stuff.”

See the problem? When you told them that there was a “testing” phase to the project they assumed that you did all the technical testing, all they had to do was do a final sign off that everything was in the right place and looked the way it should.

Testing is an overloaded term, what you consider testing (finding bugs, checking if features work the way they’re supposed to, checking different browsers or operating systems) is different than what your customers consider testing. Your version of testing is Functional, while their idea of testing is Verification. A customer considers testing the same way they see approving a print ad or a piece or a design. If what I see on the screen matches what I expect, then it works.

They have that expectation that because they assume it’s your job (the developer or implementer of the project) to do the functional testing while it’s their job to verify.

As with most things in freelancing, this can be solved by properly setting the expectations with the client in advance. You have to make it clear that the testing phase of the project includes functional testing by the client as well.

Test Plans are great for setting this expectation, you don’t have to make them overly detailed but include the following for each test.

  • A number to identify the test in emails/bug reports
  • Steps on how to perform the test
  • Edge cases for each test (like trying to save blank forms)
  • The expected result of each test

You can work with your client to define the tests, but remember you’ll have to lead the charge on this (after all, you’re the technical expert).

I like using Test Plans for large, complicated projects and big feature releases, especially with new clients. They may seem like a pain to set up at first but believe me, the hour it will take to create a test plan will save you and your client a lot of pain and suffering post-production.

PS – Oh be sure to factor creating the test plan and managing the testing phase in your quote. But you know that 😉

Warning Signs

There’s a job posting for a developer that I recently ran across that gave me an idea for doing this blog post. I won’t directly link to it, to protect the poster, but I think it serves as a great example of warning signs you need to watch for when taking a project. Here’s how it begins:

I had previously used someone else to start the project 2 weeks ago and they just cancelled today for no reason at all and had given me nothing to work with.

Not a good start, I ask all my clients with existing websites if they’ve worked with another developer and if so, I’ll ask them why the relationship ended. A developer who drops off the planet with no warning tells me the working relationship between the client and the developer was not great. The client seemed to be blindsided by this, so proper communication while the project was in progress was not in place.

The 1st phase of the project was supposed to be completed by Feb. 4. If you can get the 1st phase done between Feb. 4 to Feb11, I will offer a bonus!! I assume work would need to be started this weekend.

Also a bad sign, the project (an ecommerce site) was expected to take a total of two weeks. This is a very tight timeline (this is likely why the developer quit, they realized they signed up for more than they could handle) even for an experienced team. Instead of returning to the customer to establish a more reasonable timeline, the poster is offering a bonus to the next poor soul! Well, at least they realize that because of the timeline and the urgency of the situation they will have to pay a premium . . .

We are a marketing company with many clients so please price out the quote accordingly as we need to mark it up a little. I’m looking for an affordable developer who I can send projects to on a regular basis. My total budget is approx. $3000 so please reply if you are serious about the timeline and budget.

. . . or not

3K for the whole project? Also check out the bait: “if you do a good job with us, we’ll send you more low paying high pressure projects.” Gee! Thanks! I think Paulo Elias said it best

Screen Shot 2013-02-05 at 10.03.34 PM

There’s second phase at the end of the month (Feb 28th), which has a lot of additional requirements and features they want added. I won’t break them down further since at that point I really zoned out.

The thing is, this might be a good project, I’m sure this project is perfect for someone. But after doing this for three years, I’ve developed a kind of gut feeling for projects (or Spidey-sense) that tells me to stay far away

I’ve developed it because I’ve taken projects like this, because when I started I didn’t know any better and because I didn’t have any idea what my time was actually worth.

Your time is the most valuable thing you have, if you commit to a bad project on bad terms, then your time will be spent on a nowhere project when you could have used that time for something else. Remember when you’re meeting with a client for a project, you should be vetting them, watch for the warning signs and run like hell if your spider-sense is tingling!


The Power of Peers

This isn’t my first blog, in fact kids, your old Uncle Pat has been blogging since 2004.

I used to be a private pilot. I’ve always loved aviation and in my early twenties, broke as hell and with way too much time on my hands (graduated college, no girlfriend, very few friends to hang out with) in 2004 I decided to give flying a shot.

From 2004 – 2010 I flew fairly regularly, about once a month. It was a lot of fun, I enjoyed the challenge of getting new ratings, testing my skills, up in the air just me and the airplane. I started blogging not long after I got my private pilot’s license, simply because I felt a single line in a logbook didn’t do what I was experiencing justice.

It was a lot of fun, for a while. Over time though I noticed a pattern, in that, I rarely left the pattern (in aviation, the “pattern” is the space surrounding the airport, usually 1000 feet above the ground reserved for taking off & landing traffic).  I would go on short hops to nearby airports, do some basic landings & takeoffs, and return back to my homefield. Soon, I stopped even making those trips.

I think I “officially” quit flying when I started Anecka, three years ago. But my heart quit on flying months before; I could blame the rising cost of rent, gas, insurance (it’s shocking and sad how expensive flying has become), in reality, I think it came down to just not surrounding myself with a group of people my own age interested in flying.

I’m an introvert, which means, I get energized by ideas, not necessarily meeting new people. It’s something I’m actively working on, and I’ve made a lot of progress, however in my twenties interacting with strangers was a nerve-wracking experience for me. I also didn’t really get how important peers can be.

Keep in mind peers are different from friends (a peer can be a friend, but not all friends are peers). Peers are people you have a mutual respect for who share a common interest or passion. Peers can help kick you out of the rut, they can challenge you to fly outside of the pattern once in a while and tackle something new. The best peers will show you where your blind spots are, help you find things that you might have missed or force you to thinking about details you thought were unimportant.

On the flip side, if you surround yourself with people who don’t understand what you’re trying to do, or who find ways to belittle or marginalize your accomplishments, then it can have a devastating affect on your success. Those people are not your peers and you have to take care to minimize your exposure to them (this is especially hard if they are family or “friends”).

I’m very lucky to have learned this, I have a fantastic wife who understands the struggles of working for yourself, because she does the same thing (peer), and I’ve sought out other entrepreneurs in Columbus at events like Wakeup Startup, Startup Weekend, and VentureCafe.

Finally, I’ve learned to reach out more to strangers and make myself available. Social anxiety is a luxury that I can’t afford anymore. If you find yourself stuck in a rut (or in aviation speak “circling the pattern”) I encourage you to get out of the home office and start to find a solid peer group. Heck shoot me a message on Twitter, or comment on this post, I’d be happy to get to know you!

Clear skies

Freelancing is Deadly, Like a Chainsaw pt. 2

In part 1, I discussed a maxim in the Freelancer’s Manifesto #4, Freelancing is Deadly. Basically the gist is that if you trade hours for money, you’re going release your product later (or not at all) and never escape the vortex of working for an hourly rate. The author, Rob Whalling, even compares freelancing to working for fast food.

That said, for a micropreneur, dollars for hours is death. If you build a business where your earnings directly correlate to your hours worked then you aren’t a micropreneur. You’re working fast food.

Now, one of the reasons why I hate manifestos is that while they are great at inspiring an audience to an idea or ethos, they are just as great at bumming you the hell out if you don’t follow the everything in the manifesto exactly. Every manifesto carries the implication, “if you don’t strictly follow everything in the manifesto, then you can’t call yourself _____” (Micropreneur, Agilist, Craftsman, here).

That wouldn’t be so bad, except manifestos are also extremely weak in instructing the reader in how to actually accomplish the edicts in the manifesto. The Freelancer’s Manifesto also tells the reader that they need to: solve a problem, avoid outside financing, find a real market for their product, become a badass internet marketer, deal with pressure, manage your time, and engage with other people in public. Which is all true, but if you’ve just set out on your own as a developer or graphic designer, how in the hell are you supposed to do all this?

The answer is freelancing, work for other people in the industry / market you want to capture.  Don’t write a single line of code, or landing page, or draw a single line in Photoshop until you have hands on experience working on a project for your target customer.

This is VERY different from just taking any and all work that comes your way just to pay the bills. This is a deliberate approach to learning the market, building a public reputation for excellence in that market, building a network of customers for your product, and building up the cash you need to develop the product you want to bring to market.

If you want to feel good about yourself, just call what you’re doing bootstrapping: the act of purposefully solving business problems for a specific market by offering your services on a contractual basis while at the same time developing a product to solve those problems at scale.

Think of your freelancing clients as potential future customers, put them on a mailing list, send them surveys, send them interesting articles or blog posts you write about their business, think about how you can turn a project you’re doing with them into a stand-alone product. Use their cash  to fund your idea.

Listen, the point is, building a business takes time. You have to be in this for the long haul and you have to use all of the tools at your disposal. Don’t throw away a perfectly good chainsaw because some online PDF told you to.


Freelancing is Deadly, Like a Chainsaw pt 1.

Have you heard about The Micropreneur Manifesto by Rob Walling? Neither had I until I ran into this post from Dave Donaldson (@arcware). If you haven’t read Dave’s blog before, you really really should.

Anyway, one of the maxims states the following:

#4 | Freelancing is Dangerous

As you look for a way out of our job you may be tempted by a seemingly easy way out: freelancing. You might have heard that doing freelance work is a great way to break free. Maybe you’ve even taken the plunge.

Every corporate cog dreams of doing freelance work because they think it consists of working in a coffee shop with attractive baristas serving free lattes, cutting a deal on your cell phone just before logging off for the day around noon to go catch a matinee.

The real story is getting a call at 7pm on Friday from an angry client telling you that their site hasn’t been updated, or the server going down at midnight and having to take care of it while you’re on vacation.

With freelance work, you essentially trade your one boss for many—except now they’re called clients. And they don’t pay for health care or vacation days, or worry about your job satisfaction. Some won’t even feel obligated to pay you for the work you’ve done.

So while it may seem tempting, freelancing typically results in working more hours, not less. Which means it will take you that much longer to get your product launched.

Now Rob isn’t wrong, this is exactly what can happen to you when you freelance. Your crazy demanding boss becomes twelve crazy demanding clients. You client doesn’t pay for the hours you bill. You’re working on the weekends and fielding phone calls over dinner while your spouse glares at you in stoney silence. If this is your life right now, let me extend out a friendly hand to you . . .

. . and slap you hard in the face.

Because it’s your fault. Because you trained your clients to be that way. They’re emailing/calling you at all hours because they know you’ll respond, because you’ve responded all those times before. They don’t pay your invoices because you’ve placed deployed their code on their servers before you’ve collected payment. They don’t pay because you haven’t billed them for time spent fixing bugs/defects in the code, because all those times before you’ve felt guilty and fixed it “just this once.”

I’ve been there, that was me my first year and a half. I spent so much time dealing with this one client my nine month savings runway dwindled to four weeks and I was a stressed out wreck.

Until I had enough, I had to fire them and take a long hard look at what I had done wrong.

And that’s where Rob’s bleak world of freelancing hell falls apart. As a freelancer, the greatest tool you have is the ability to set the conditions of your work. You decide who to work with, how much you want to get paid (notice the phrasing, it’s what *you* want to get paid) and the schedule of when the work is completed. The best time to negotiate these terms is at the start of the project; set the boundaries at the beginning of the working relationship, and enforce those boundaries throughout the course of the project (and after). You also get to fire your client if things get to a point where you can no longer continue.

That’s what I did, I fired a client that stayed with me as I went from a part-time freelancer to full-time. I took on small projects with a faster turn around, adopted tools that would help me add value to my clients that didn’t involve a lot of custom development. I learned how to ask for a higher rate, maintenance retainers, and set a timeline for payment in installments (it’s easier than you think). I also learned to say ‘no’ to clients/projects that didn’t fit my new work style. In a year, I had climbed myself out of the hole I dug for myself and started putting money back into savings.

I began to understand something about freelancing. It’s a chainsaw, wielded correctly it can quickly cut down a forest of obstacles between you and your goals. If you use it incorrectly, you can just as quickly chop off your own legs.

In the next post I’ll talk about how you can use freelancing to help you launch your product.