Posts Tagged ‘work’

You, Inc.

Monday, December 14th, 2009

Are you an employee who dreams of starting your own business? You have an idea that excites you when thinking about it. You visualise the finished product coming to life. You imagine all the money rolling in from sales. That is great but it could be months or years down the road. Do you really need to wait that long to start a business?

No. You already run a business, and that business is You, Inc.

No matter if you are an employee or employer, you are operating a business. Each month you have revenue (income) and expenses. You have a balance sheet (whether you realise it or not). You have at least one customer. Sounds like a business.

One of the best realisations I have had in my career is that I am not an employee, I am a business of one. As an employee, I choose to provide my services to one client. As a business, it is quite risky to have just one client. However, if you choose to do so, you need to be aware of the pros and cons.

Thinking as owner of You, Inc. puts me in a different mindset than if I consider myself an employee. As an employee, the company is in control of the work I do. As a business owner, I am in control. It helps me question things like: Is this the kind of business I want to be in? Am I providing good value? Will my clients want to work with me again?

When you start thinking of yourself as You, Inc., different questions start to come up? Am I running my business well? Am I investing in the future of my business? How can I grow? Is it smart having only one client? What are the goals for my business?

It is important to run your business well because how you run You, Inc. today is the way you will run a “traditional” business. If you do not communicate well with your client now, then you will not communicate well with clients in the future. If you are running a loss every month, you will do the same with your business. Does You, Inc. operate with little or no debt? It is important to get You, Inc. running smoothly before moving onto bigger things otherwise you won’t be able to handle them.

A year after winning the lottery, most winners say they wish they had never won. Generally, life only lets you move on to the next step when you are ready. If you jump too far ahead, such as in the case of lottery winners, it usually causes too much hardship.

To run You, Inc. successfully, copy what successful businesses do. Just do it on a lower scale.

Good businesses spend money on sales and marketing.
Good businesses do not rest on their past. They are constantly investing in development of new products (skills).
Good businesses demonstrate values and try their best to live up to them.
Good businesses reward those who help them.
Good businesses treat others fairly and courteously.

To shift your mindset, spend a little time each day thinking about your business. If you were in control, what are some things you would do differently? Then realise that you are in control.

How to Torture Programmers

Monday, December 7th, 2009

Do you have a programmer in your life that drives you up the wall? Would you like to be rid of him forever? You can! Just follow these five simple steps and your programmer will run crying for the hills.

1) Put him in an open office

Remove as many barriers to communication as possible. Put the most talkative person – the person who can’t keep quiet for more than five minutes – as close as possible. It’s best if you have many non-programmers within earshot so they can chatter about topics of non-interest to the programmer.

Microsoft did a study that showed that for each interruption, it takes a programmer at least 15 minutes to get back into the focus they were in before being interrupted. If you have everyone in an open office, there will be more interruptions and chances for torture.

2) Lockdown his machine

Don’t let him pick the tools he wants to do his job. After all, security is paramount and programmers can’t be trusted. Instead, give him the tools that you choose. Preferably pick ones that companies with a large sales staff directly sold to you. Only let him use one browser – and that browser is IE 6.

When you hire a mechanic to fix your car, he would go nuts if you told him he could only use one wrench. The same is true of programmers. Limited tools means more frustration!

3) Timely Interruptions

Programmers generally work in 45 minute blocks. The first 15 minutes is gathering information, identifying the problem and coming up with a plan to solve it. The next 15 minutes is trying different methods and learning about which ones work. The final 15 minutes is putting the learning to use, figuring out the solution and implementing it.

If you want to torture programmers, you need to time your interruptions. Interrupt too frequently and he will never start work. Interrupt too late and he will have accomplished his task already. You want to hit that sweet spot around 25-30 minutes. This will break his state and cause him to lose much of the learning he has acquired to solve his task. Do this at strategic points throughout the day and he will leave feeling he has accomplished nothing.

When you interrupt, do it for some mundane reason. The more pointless and non-urgent the better. Also, be sure not to ask if he’s busy. You don’t want him to have the opportunity to put your interruption on hold.

4) Provide Pointless Work

Or, better yet, no work at all. Force the programmer to still come to the office and sit there all day. He can surf the Internet but isn’t allowed to work on anything challenging or useful. This might be fine for a couple days, especially if he has been overworked, so you may need to give this plan some time. After a few weeks, the programmer will be dreading the morning when he has to go to work and not be productive.

5) Shoddy Equipment

If the psychological torture isn’t good enough, it’s time to turn physical. Buy the cheapest equipment you can. Make sure his chair has as little adjustments as possible. Even better, have him sit on a stool. Gravity will do the work for you and strain will start to cause problems with the programmer’s spine, shoulders and arms. He will start developing back problems causing him pain for a long period of time.

Your company does not need to put up with happy and productive programmers anymore! Just implement these 5 simple steps and you will have broken their spirits. Productivity will cease and morale will plummet. Work will soon be torturous for programmers just like it is for you.

The Ups and Downs of Freelancing

Thursday, November 26th, 2009
Since summer 2008, I have logged over 600 hours of freelance programming work through the website odesk.com.  It has been an interesting experience.  I started freelance work because I missed programming.  In May 2008, I moved to China and ended up becoming an English teacher.  While English teaching is rewarding in its own way, I missed the satisfaction that comes from solving technical problems and creating systems.
I reviewed a few freelancing websites including Rent a Coder and eLance but settled on oDesk.  Why? There was no signup fee with oDesk and the fee is simply 10% of earnings.  I remember other sites charging 15% and having complicated systems of bidding for jobs. oDesk seemed to offer the best model without taking too big a chunk or requiring an upfront fee.  I definitely did not want to pay an upfront fee since I was just getting started.
Getting the First Job
Within a few weeks of looking, I landed my first task.  Getting the first task is always the most difficult.  It is a catch-22.  Buyers want to see feedback to know you are reliable but you can’t get feedback until you have your first completed task.  How did I get it?  I had completed some tests to show my knowledge and added items to my portfolio but I believe I got the task because of the cover letter.
In the job description, the buyer outlined that he wanted an addition to a part of his admin page.  My cover letter specifically addressed his problem and offered the steps I would take to solve it.  This must have made me stand out as I was hired and told to go at it.  This was a fixed price job.  It would be the first and last fixed price job I would consider doing.
Fixed Price Downsides
Upon completing the task according to the original job description, the buyer then asked if a change could be made to make things easier.  I informed him that the work suggested was outside of the original job description and I would be able to do the work but would need to negotiate more money for the task.  After that, the task was closed and paid.  I did not receive a reply from him.
This taught me my first lesson with freelance programming: fixed price work is a bad deal.  With software, it is very difficult to define all the requirements needed for even the most trivial of tasks and you can forget about getting every detail on larger projects.  This makes it impossible to estimate time needed and rate to charge.
This task was a small one and I was paid $25 for it.  Since it ended up taking me nearly 5 hours, it wasn’t a good deal for money but it did enable me to get on the system and lead to my next job.  Just over a year later, I have now been able to land tasks for $30 per hour or more.
Earning More
How did I increase my rate?
1) Judge a book by its cover
I don’t waste my time applying to every job that interests me anymore.  I am selective.
First off, I only look for jobs that pay hourly and that look like they will be a long-term deal.  It’s not worth it to take on tasks that will be done in less than a couple weeks because you then need to spend more time looking for more work.
Secondly, from the job description, try to guess if the buyer will be in your price range.
Keys I look for:
well written job description that tells me the buyer has experience and is looking for a quality developer
location: buyers from North America, Western Europe are generally going to have the ability to pay more than buyers from less developed countries
previous work: oDesk shows the previous work that the buyer has hired and the rate.  If the rate is much lower than yours for a comparable task, move on!  Be careful though that you aren’t comparing apples to oranges.  Just because someone pays $3/hr for data entry doesn’t mean they are looking to pay that for a developer
2) Keep Moving Up
Finally, move up from tasks that are too competitive.  Tasks that have too much competition will have a ceiling on how much someone will pay no matter how good you are.  For example, I did a number of tasks converting PSD image files into valid XHTML/CSS code.  After a while I realised that no matter how well you do the job, it will be difficult to find anyone willing to pay more than $20/hr for it.  If you do a Google search, you will find tons of places that are offering this service.  Now, I only take programming tasks and have left behind the CSS tasks.
3) Your cover letter is your sales pitch
Buyers probably get around 50 cover letters for each programming job.  Stand out by keeping yours brief and to the point.  I keep mine at two paragraphs.  The first paragraph addresses the buyers specific problem they are looking to solve.  I have received jobs just because the cover letter addressed specifically what they were looking for.  The second paragraph gives generic info about me such as my availability.
I have posted a job as a buyer looking for a web designer and about 75% of the cover letters were generic.  If you address the buyer’s concerns directly, it will definitely put you in the top of the heap.
4) Always be applying
This is an open market.  You should always be on the lookout for new opportunities. This applies to both employees and the self-employed.  If someone is currently paying you $20/hr, then keep applying to jobs but apply at $30/hr (or whatever you feel is a fair rate).  It usually takes me about 30 minutes per day to find three interesting jobs and apply to them.  If you get an offer at a higher rate, the payoff is definitely worth it.  You’ll get a lot of rejections but those don’t matter because you already have work.
5) Figure out why you were hired
…and emphasize it on your cover letter.  Some people might hire you because of your availability.  For me, I always emphasize that I am a native English speaker, I am from Canada and I communicate in normal language – not tech-speak.  Many of the people hiring developers on oDesk are not technical.  They don’t really know (or care) what jQuery or YUI is.  They just want to hire someone who can communicate clearly and get the job done.  That’s it!  I see so many people with titles like “5 yrs exp Cobol/Lisp/JS/PHP/Perl” and it’s sad.  The buyer does not really care and you are wasting a great opportunity to stand out from the crowd.  Find out what makes you different and emphasize that.  It probably has nothing to do with the programming languages you know.
Pros and Cons
There are ups and downs to working as a freelancer vs being an employee.  The first one is in the name: FREElancer.  You are free to work how, where and when you want.  Feeling sleepy and want to take a nap after a few hours of work? Go right ahead.  Want to go to another city for the week and work from there? Just do it.  Need to go out during the day and work in the evening? No problem.  I’ve done all these.
On the other hand, there are no benefits like you might get at a job.  No holidays, no vacation time, employment insurance, health benefits or whatnot.  A mistake I made when first setting my rate is not adjusting for that.  If you take your pay as an employee, the equivalent as a freelancer should be at least 20% more.  Some people will say as high as 100% more.
I recently came across a study which showed that self-employed people do not make as much money as they would if they were an employee, but they are much happier.  This correlates to my experience being self-employed vs employed.  I may not have as much money but self-employment keeps things interesting.  Some weeks I worked 50+ hours, others around 20.  For a guy like me who values his free time and can always find things to do, it is a great position to be in.  Freelancing is always challenging and exciting.

Since summer 2008, I have logged over 600 hours of freelance programming work through the website odesk.com.  It has been an interesting experience.   In May 2008, I moved to China and ended up becoming an English teacher.  I started freelance work because I missed programming.  While English teaching is rewarding in its own way, I missed the satisfaction that comes from solving technical problems and creating systems.

I reviewed a few freelancing websites including Rent a Coder and eLance but settled on oDesk.  Why? There was no signup fee with oDesk and the fee is simply 10% of earnings.  I remember other sites charging 15% and having complicated systems of bidding for jobs. oDesk seemed to offer the best model without taking too big a chunk or requiring an upfront fee.  I definitely did not want to pay an upfront fee since I was just getting started.

Getting the First Job

Within a few weeks of looking, I landed my first task.  Getting the first task is always the most difficult.  It is a catch-22.  Buyers want to see feedback to know you are reliable but you can’t get feedback until you have your first completed task.  How did I get it?  I had completed some tests to show my knowledge and added items to my portfolio but I believe I got the task because of the cover letter.

In the job description, the buyer outlined that he wanted an addition to a part of his admin page.  My cover letter specifically addressed his problem and offered the steps I would take to solve it.  This must have made me stand out as I was hired and told to go at it.  This was a fixed price job.  It would be the first and last fixed price job I would consider doing.

Fixed Price Downsides

Upon completing the task according to the original job description, the buyer then asked if a change could be made to make things easier.  I informed him that the work suggested was outside of the original job description and I would be able to do the work but would need to negotiate more money for the task.  After that, the task was closed and paid.  I did not receive a reply from him.

This taught me my first lesson with freelance programming: fixed price work can be a bad deal if you’re not careful.  With software, it is very difficult to define all the requirements needed for even the most trivial of tasks and you can forget about getting every detail on larger projects.  This makes it impossible to estimate time needed and rate to charge.

This task was a small one and I was paid $25 for it.  Since it ended up taking me nearly 5 hours, it wasn’t a good deal for money but it did enable me to get on the system and lead to my next job.  Just over a year later, I have now been able to land tasks for $30 per hour or more.

Earning More

How can you increase your rate?

1) Judge a book by its cover

I don’t waste my time applying to every job that interests me anymore.  I am selective.

First off, I only look for jobs that pay hourly and that look like they will be a long-term deal.  It’s not worth it to take on tasks that will be done in less than a couple weeks because you then need to spend more time looking for more work.

Secondly, from the job description, try to guess if the buyer will be in your price range.

Keys I look for:

  • well written job description that tells me the buyer has experience and is looking for a quality developer
  • location: buyers from North America, Western Europe are generally going to have the ability to pay more than buyers from less developed countries
  • previous work: oDesk shows the previous work that the buyer has hired and the rate.  If the rate is much lower than yours for a comparable task, move on!  Be careful though that you aren’t comparing apples to oranges.  Just because someone pays $3/hr for data entry doesn’t mean they are looking to pay that for a developer

2) Keep Moving Up

Finally, move up from tasks that are too competitive.  Tasks that have too much competition will have a ceiling on how much someone will pay no matter how good you are.  For example, I did a number of tasks converting PSD image files into valid XHTML/CSS code.  After a while I realised that no matter how well you do the job, it will be difficult to find anyone willing to pay more than $20/hr for it.  If you do a Google search, you will find tons of places that are offering this service.  Now, I only take programming tasks and have left behind the CSS tasks.

3) Your cover letter is your sales pitch

Buyers probably get around 50 cover letters for each programming job.  Stand out by keeping yours brief and to the point.  I keep mine at two paragraphs.  The first paragraph addresses the buyers specific problem they are looking to solve.  I have received jobs just because the cover letter addressed specifically what they were looking for.  The second paragraph gives generic info about me such as my availability.

I have posted a job as a buyer looking for a web designer and about 75% of the cover letters were generic.  If you address the buyer’s concerns directly, it will definitely put you in the top of the heap.

4) Always be applying

This is an open market.  You should always be on the lookout for new opportunities. This applies to both employees and the self-employed.  If someone is currently paying you $20/hr, then keep applying to jobs but apply at $30/hr (or whatever you feel is a fair rate).  It usually takes me about 30 minutes per day to find three interesting jobs and apply to them.  If you get an offer at a higher rate, the payoff is definitely worth it.  You’ll get a lot of rejections but those don’t matter because you already have work.

5) Figure out why you were hired

…and emphasize it on your cover letter.  Some people might hire you because of your availability.  For me, I always emphasize that I am a native English speaker, I am from Canada and I communicate in normal language – not tech-speak.  Many of the people hiring developers on oDesk are not technical.  They don’t really know (or care) what jQuery or YUI is.  They just want to hire someone who can communicate clearly and get the job done.  That’s it!  I see so many people with titles like “5 yrs exp Cobol/Lisp/JS/PHP/Perl” and it’s sad.  The buyer does not really care and you are wasting a great opportunity to stand out from the crowd.  Find out what makes you different and emphasize that.  It probably has nothing to do with the programming languages you know.

Pros and Cons

There are ups and downs to working as a freelancer vs being an employee.  The first one is in the name: FREElancer.  You are free to work how, where and when you want.  Feeling sleepy and want to take a nap after a few hours of work? Go right ahead.  Want to go to another city for the week and work from there? Just do it.  Need to go out during the day and work in the evening? No problem.  I’ve done all these.

On the other hand, there are no benefits like you might get at a job.  No holidays, no vacation time, employment insurance, health benefits or whatnot.  A mistake I made when first setting my rate is not adjusting for that.  If you take your pay as an employee, the equivalent as a freelancer should be at least 20% more.  Some people will say as high as 100% more.

I recently came across a study which showed that self-employed people do not make as much money as they would if they were an employee, but they are much happier.  This correlates to my experience being self-employed vs employed.  I may not have as much money but self-employment keeps things interesting.  Some weeks I worked 50+ hours, others around 20.  For a guy like me who values his free time and can always find things to do, it is a great position to be in.