Goals inspire movement. Today is the path to finishing.

Fat boy slim. Will the resolution last?

For many the start of a new year is a time to revaluate our lives and resolve to change for the better. As we near the end of January it is interesting to see how we are getting on. A few of the most common resolutions are:

  • Give up drinking.
  • Run a marathon.
  • Give up smoking.
  • Swim the channel.
  • Loose weight.
  • Learn a new language.

All very noble resolutions, but noticeably they are all extremes. When was the last time your heard someone say these?

  • I am going to get into the habit of running once a week.
  • I am going to try a new sport every month to find something I love.
  • I am going to smoke 5 less cigarettes per day.
  • I am going to drink less at the weekends.
  • I am going to save 10% of my salary per month.

Rarely I imagine.

We all want the big prize. A major life change. To an overweight person the thought of losing half a stone doesn’t feel significant. The mindset is I either need to loose everything or it isn’t worth doing. Stay fat or get super thin. We setup an all or nothing situation, and sadly all to often end up with nothing.

This is flawed logic. Loosing a small amount of weight is great. Going from no exercise to a weekly run will have a significant effect on our fitness. Once we get to this point, and get accustomed to our new habit, we are set to make the next improvement.

Why aren’t we more rational? Because unlike the small tweaks, the grand goal is inspirational.

We project ourselves forward and imagine a point in the future when we achieve our goal. Becoming a millionaire, becoming model thin, climbing Everest, becoming a published author. We visualise the feelings and sensations. It’s exciting and it get’s us fired up, and motivated. The small rational incremental changes simply don’t do this.

A journey of a thousand miles began with a single step.

So the grand, long term goal is a great trigger to get us started. But it won’t sustain us. Soon the motivation will die down.

Once the initial buzz wears off, the distance between where we are and where we want to be becomes apparent. We get intimidated, overwhelmed and deflated.

  • I can’t run more than 5 miles, how will I ever run 26?
  • It has taken me 6 months to loose 2 stone, how will I ever get to my perfect weight?
  • My writing sucks, how will I ever publish a book?

A year is 365 todays.

To prevail we need to step back from the imagined future point of success and live in the here and now. Forget the marathon. Ask yourself what you can do today to make yourself a little better. Judge yourself based on improvements over the last couple of weeks.

Realise that your dreams won’t come true today. They won’t be realised tomorrow. It will take time and a lot of effort. Commit to a weekly plan that makes you a little better than the week before. Then some day you will look at yourself and wonder how you did it.

My Spanish deception and our merit based industry

Last month I moved to Spain to pursue my passion for rock climbing.

Telling the clients

Before leaving I spoke to some of my clients. I explained that I was leaving London and would no longer be able to hold meetings or work with them in person but would like to continue working remotely. I braced myself for their response expecting something along the lines of:

Surely my clients weren't going to take this well?

“What! Our developer is going to live abroad so he can risk his life climbing cliffs!”

But my clients didn’t get cross. They didn’t think I was being irresponsible. There was no backlash. They didn’t terminate my work on the spot. Instead they told me they fully understood my decision and that what I was doing was amazing. We talked through some practicalities and they wished me the best of luck.

Wow. What I result. I had somehow dodged a bullet. I must of caught them on a good day…

Well most of them…

Feeling I had just received more than my fair share of luck for the day I thought it best not to run the gauntlet again. All my other work is completely remote. How would my clients know where I was anyway? I would be working, emailing and Skyping just like I normally do in London. So why tell them when nothing was going to change? It would only worry anc them and cause concern. I couldn’t see any benefits and could only see negatives. So I kept quiet.

Two weeks later I received an email from a client with one single ominous question.

“Are you in Spain?”

A mixture of shock and embarrassment came over me. I instantly realised I had made a mistake. I sent an upbeat email in an attempt to play down the issue and hoped for the best.

Hey,

Yes as of 3 weeks ago I am living in Spain (El Chorro south coast near Malaga). I will be out here for a couple of months, returning for the Christmas and new years period.

As you may/may not know I am a passionate rock climber. Realising my work has become largely non-location specific, and that there are no cliffs in London I decided to come out here for the winter.

I talked with several clients that required in person time before leaving to discuss practicalities. For example I used to take technical meetings on behalf of one of my clients which I will no longer be doing.

As for everyone else it’s business as usual. I have a nice fast internet connection and my widescreen monitor and am working in exactly the same way as I always have.

I am using these months as a trial run. If all goes well I will be returning in the new year. So far it’s working brilliantly.

Let me know if you have any concerns or would like to talk through anything.

Many thanks

I gave a sigh of relief when my clients reply came through:

I was a bit put out for a second but then realised it doesn’t actually make any difference. If you can make it work good for you.

Lesson learnt

I realised what a fool I had been. During the first 3 weeks in Spain I had been on guard. When you have a secret to keep you can never relax. Deleting that tweet about my weekend trip to Barcelona. Covering the sunny blue skyline for a Skype video. It was all a little absurd.

Oh what a tangled web we weave, When first we practise to deceive!
Sir Walter Scott, Marmion

Client relationships are all about honesty and trust. My deception had led to a series of slightly embarrassing emails but more importantly I felt I had a lost some trust.

Our amazing merit based industry

This episode in my freelance career made me realise how lucky I am to work in such a down to earth industry. My clients response “It doesn’t actually make a difference” says it all.

The original Microsoft team. Bill Gates young looks never held him back.

I am judged on my work; what I can achieve. My age, image, nationality, location don’t come into it. I love this lack of pretense and sense of rationality. Steve Jobs strolls onto the stage in a turtle neck and a pair of old jeans and no one bats an eyelid. Try doing that in finance circles. The IT industry recognises Steve is the same guy whether in a fine suit or his casual clothing. Corporations have not problems cutting million dollar contracts with an exceptionally young looking Bill Gates because he is delivering.

If you work within the industry realise how lucky you are. You work ammogst people that recognise that intellect and ability are what matters. Understand that you can be yourself and live in your own unique way as long as you deliver.

Oh and if you ever decide to to flee the country please let your clients know; people are on the whole amazingly understanding.

Learning to say no: The 80 / 20 principle in action

I have found that the large majority of my problems, time drains, and issues come from a small subset of projects. Applying the 80 / 20 principle I have come up with the following three rules:

No small projects

Profit – Small projects have all the same overheads, quoting, communication, accounts, server setup, as larger ones, making them considerably less profitable. The short timescale also leaves little room for economies of scale or the programming knowledge loading equivalent.

Type of client – A client that buys a week of your time is very different to one who only wants a day. This rule is a natural filter.

Personal satisfaction – I enjoy taking on something challenging and really getting my teeth into it. A small project seems to be over before you begin.

* The definition of small will vary from person to person and change over time. Mine is currently 2 days.

No legacy code

Spaghetti code. Five thousand line index files. Nested if statements 100s of lines long. I have always made it policy not to take on these projects. If one comes along I only quote for a rebuild. Often it is quicker than working with what is there anyway.

No friends and family

I could rant and rave about the practical problems it can cause. In fact in my first draft I did. But I think Randy Komisar’s witty remark better demonstrates the virtue of keeping the worlds of friends / family and work separate.

I have a friend in my life who I’ve had since I was three years old, four years old. Still in my life. We’ve just by coincidence ended up living in the same places and he lives right here in Palo Alto. I’m very close with him. He is a scientist, works with the Veterans Administration doing research in psychology. He’s never ever given me the satisfaction of respecting what I do. Never. Never. I don’t think he could tell you what I do and he doesn’t give me any regard for it. That’s been one of the best things in my life - Balancing Your Life and Your Career Successfully

Imagine your perfect life. Now work out how to get there

Discovering a love for climbing

Last month I moved to Spain to pursue my passion for climbing.

I discovered climbing and mountaineering whilst travelling in South America. It instantly captured me. A respect for nature and an understanding about the relationship between mind and body. It gave me a new perspective on life.

Returning back to England from my travels turned mountaineering trip, left me a little depressed. I had found something that I loved doing, something I was truly passionate about, and then found myself unable to do it. Being broke I got a job and became part of the London commuter community.

Living in London I always felt like I never had enough. I always wanted more. Yet more never seemed to satisfy. The city high life; expensive meals out, pricier wine, designer clothes, private member clubs. These are not my aspirations. And being a regular at London’s indoor climbing walls and the yearly 2 week climbing trip abroad simply wasn’t cutting it. Living in London was like playing a game that I could never win.

I had to work out a way to be able to follow my dream, and live my life by my own rules. I needed a plan. I sat down and imagined my perfect life and then thought of ways to get there.

Initially I tried saving for another long travelling climbing trip. But going away with fixed funds would mean coming back with no funds. I would be in the same situation as before. I also didn’t see much professional satisfaction from this yo-yo climb-work arrangement. Some climbers live the dirtbag lifestyle but I have too much passion for my craft to be away from it for that long. I would genuinely miss developing. The solution was to work for myself.

Seven months ago I became a freelancer. I have had my fair share of ups and downs, and the occasional scary moment. But it has been worth it. I have learnt and grown as a developer, and now have a handful of really great regular clients. The best part I am no longer tied to one location.

In London I lived for the weekends and dreamt of being on my next climbing holiday. I don’t think like this any more because I am already doing the things I want to be doing. Out here climbing in rural Spain I feel I have already won.

To get an accurate indicator of commercial viability, don’t ask people if they would buy – ask them to buy. The response to the second is the only one that matters.

Tim Ferris - The 4-Hour Workweek

You’ve got to have a productivity plan to be a FREElancer

When I became a freelancer it quickly became apparent that 40 hours / week is not a lot of time. All the extra ‘work’ (emails, phone calls, meetings, quotes, invoices, accounts, tax etc) around your actual work ends up swallowing a substantial chunk of time.

Short of creating a clone of myself, I was going to have to develop a highly structured approach to handle all the extra ‘work’ whilst creating those essential blocks of uninterrupted programming time. I became a FREElancer to get more time not less, so I wasn’t about to start working weekends.

A lot of my thinking has been shaped by Tim Ferriss’ ‘The 4-hour Workweek”. I recently read it a second time, 9 months after the first, and got just as much out of it. Very highly recommended. I have gone into more detail and added some new thinking since Freelance lessons series. Productivity (Part 4 of 5).

Create your TODO list the day before, if not earlier

I plan TODOS on a weekly basis using a paper diary. Basecamp is great at holding a ‘master list’ of detailed project TODOS but I find it overwhelming on a personal level.

I map out as much of the week as possible and include ALL my TODOS, including tasks such as sending a specific email (more later), or chasing an invoice. This ensures I never forget anything.

Add hour estimates to jobs

I then assign a time estimate to each TODO. If the task cannot be accurately predicted e.g. bug fixing, I use a range (1 – 2 hours).

This serves several purposes:

  1. I can see whether my daily TODO list is realistic.
  2. I can accurately tell someone which day I can schedule in work.
  3. Writing down a limit forces me to work within a timeframe.  It is possible to get a little lost in a new feature, research etc. Assigning cut off points keeps you focused. Learn to use Parkinson’s law to your advantage.

Never check email at the start of the day

Start the day by getting the most important thing ticked off your TODO list. There is nothing worse than checking emails first thing and getting derailed from your daily plan.

Schedule in email as you would any other TODO.

I quite regularly get emails that will take over 30 minutes to reply to. I schedule these as todos like any other task and send a short instant reply:

Hey,

Many thanks for your email.

I will get back to you with a detailed response on x (insert day here).

Ollie Rattue

On several occasions I have found that the issue has resolved itself by the time I get to my scheduled reply date.

Only check your emails a couple of times per day

It is a given that automatic emails need to be turned off. But how many times and when should you check?

I have recently been trying ‘The 4-hour Workweek’ twice a day at 12 P.M. and 4 P.M.. So far restructuring my email into two daily ‘sessions’ seems to be working. The 12 P.M. and 4 P.M. times ensure that most emails are read within 3-4 hours, and you get the most responses from your emails.

I now start the day and get some TODOS done. Then I have a 12ish email session where I send replies that will take less than 10 minutes. Longer email replies get the schedule treatment.

IM and phone are for emergencies only

I ask people to IM or Call me only in emergencies. If someone starts an IM which is not an emergency I ask them to send me an email including details of the problem(s) with priorities, deadlines etc. I then tell them I will review the email in x mins/hours. When working within a team, if the issue is preventing them completing a task and there is a looming deadline I reduce my review time.

Tim Ferriss is spot on when he says that asking people to put down the issue in an email forces them to think clearly and concisely in a way which tends not to happen on a phone or IM.

Send emails using the if…then structure – ‘The 4-hour Workweek’

When you start checking and sending email less often it is vital that each email you send is concise and caters for multiple scenarios.

Instead of “Can you meet at 4pm?” use “Can you meet at 4pm? If so… If not please advise three other times that work for you?”

If you ever find yourself using email as a real time communication tool something has gone wrong.

Conclusion

Using these rules I have reduced the number of distractions (phone, IM, email) and organised my time to ensure I get everything done, whilst being able to give clients accurate timeframes, and never forgetting tasks.

I am a long way from a 4-hour work week but importantly I am never over 40.

If one advances confidently in the direction of his dreams, and endeavours to lead the life which he has imagined, he will meet with success unexpected in common hours.

- Henry David Thoreau - Walden

The challenge is not the how but the what

Some programming is highly technical but a typical website or web app is actually fairly simple and rountine. The challenge is not the programming itself but working out what to build in the first place.

A project is made up of 1000′s of decisions

decisionsThere are some major decisions:

What is the core problem we are trying to solve?
Which features provide the most benefit to our users?
Which are the nice to haves?
What personality should we go for?

And there are thousands more micro decisions:

Where should this button go?
What happens when I click it?
Which fields do I need to place emphasis on?
Which screen comes next?
Does this copy feel right on this form?

It is these decisions which make or break a project. The difficulty is knowing the answers.

Open source inherently knows the answers

scratchingOpen source is the most ‘natural’ way to develop. The programmer has a problem which current software doesn’t solve. So they code a solution. The projects are self selected. The developer is scratching their own itch. All the project decisions can be answered by the programmer.

When I built FormIgniter I was both the user and the developer. As a result I knew exactly what it needed to do. I could tell if design decisions weren’t working. I added the things I wanted. I left out features that I considered ‘fluff’ or just mere ‘bells and whistles’.

I took a stance and created a piece of opinionated software.

It is this ‘developer and user in one‘ combination which has lead to the wealth of high quality open source software.

But client work is different – someone else’s itch is being scratched

I’m continually amazed at how many companies miss vital flaws in their product or service, simply because they don’t use it every day. – Ryan Carson

Ryan makes a very good point. Usually when working for clients I am not the end user. I am unlikely to use the website or service at all, let alone on a daily basis.

To make informed decisions I need to either do a lot of research or be in constant consultation with my client. There usually isn’t a ‘Research’ budget on web builds and constant collaboration creates an undesirable communication overhead.

Even if constant collaboration was possible the client might not actually be the end user anyway.

For example recently a project to build a database for hospital GP’s came my way. I personally have no knowledge of this area. As a developer and not a GP I will never use this system myself. The client knows this area but they are not the end user. They commissioned the work on behalf of a hospital and will never actually use the system on a daily basis.

Between us there is a major knowledge gap.

So how do we close this gap?

Specialise. Work on projects where you are the end user.

I work closely with a web agency who solely work with independent documentary films makers; a niche within a niche. It is a decision which I have often thought would hold them back. Limiting your client base so severely seems like an obvious ‘business 101′ no no.

But working within such a small area has enabled them to develop an intimate knowledge of the industry.

They learnt the challenges and problems independent filmmakers face. They started to think like independent filmmakers themselves. In fact a few of them actually are. Over time they have created solutions. The tools they build are good because they know what film makers want. They don’t need to ask questions. They know the answers themselves. Clients come to them because this knowledge gives them an unique value within the marketplace.

So choose an area that you are passionate about. An area where you are naturally the end user. Get to know the field. Get to know the problems clients typically face. Work out the solutions.

Become a developer with market knowledge. Your work and satisfaction will improve because despite doing client work you will be scratching your own itch.

I wouldn’t advise starting something you’re not passionate about. It’ll be your life for the next 5+ years. Make sure you relish the idea of spending 12+ hours a day thinking about it.

Limbo projects – the content population roadblock

We have all had them. The design stage is hassle free and the build goes to plan but the project stalls when it comes to content population. Until the client has prepared and entered content the website cannot go live and therefore cannot be signed off.

The project is out of your hands. It is officially a limbo project.

Limbo projects cost money

delays

Delays cost money

Any small business lives or dies by it’s cash flow. In the web development game profit comes from turning around quality projects quickly and getting paid.

On a recent e-commerce build the client quite casually informed us they were going on holiday and wouldn’t be able to collate and populate the site for 3-4 weeks. The project had only been 3 weeks in the making so the wait essentially doubled the project time.

We had an invoicing schedule in place which broke the payments into 3×33% invoices which helped but we still couldn’t send the final invoice for another month. Given typical agency payment terms the payment might well not hit our account for a further half month.

A designer I work with recently related similar problems with slow site populations which were disrupting his cash flow.

Limbo projects lead to motivation and productivity losses

Aside from the invoicing problem, limbo projects lead to motivational and productivity losses which affect business efficiency and in turn the bottom line.

Productivity – When one project finishes another begins. The limbo project is however not completely finished. A limbo project looms over you, preventing you from fully immersing yourself in the new project. There are usually CMS queries and the odd bug report. After a couple of weeks the project is no longer fresh in your mind making support harder and slower. On top of this context switching to a limbo project distracts you from your latest project.

Psychological – Morale, motivation and inspiration are so important for knowledge workers. A team gets a nice buzz when a project goes live. If a project sits in limbo for a few weeks before going live this buzz disappears. The momentum has been lost and the achievement is soured.

What can be done to prevent and offset limbo projects?

  1. All content is agreed and signed off before the build starts.The developers can then do the web build, populate the site and go live in a single push.
  2. Agree to invoice when the web build is finished, rather than on project signoff.The client is responsible for populating the website in their own time. You tend to find that after receiving and paying an invoice the client is pretty swift to populate their site. The site launch is then charged as a separate item.
  3. Set your client strict deadlines.Typically we are given deadlines by clients e.g. site must be build finished 2 weeks on Friday, but we seldom set deadlines for clients e.g. this content must be here by Wednesday. Building websites is a collaborative process so it only seems fair that each party holds up their end of the agreement.
  4. Setup an invoicing schedule.A payment schedule is more like ‘Pay as you go’ and it makes the project more agile. The payment intervals and quantities are project dependent. An typical example is 35% deposit, 20% after design sign off, 40% after web build is complete, 5% on project completion. Based on these figures a content population delay can only hold up 5% of the total project cost.

What solution works best?

Each option has it’s pro’s and cons and are suitable for a specific size of project, and client. Whichever route you take it is important to explain the invoicing and client commitments before any work starts.

Number 1 (signing off all content before build) is only going to work on small builds. You really need to be able to see the site in a browser as a whole to balance the copy and imagery. It is very hard to produce content to fit a pdf design. It also will tend not to be suitable for sites with structured data, e.g. a restaurant review website, as the data fields usually evolve and changes during the build process.

Number 3 (agree deadlines with client) is good for large projects but comes with a management overhead making it unsuitable for small projects. Setting deadlines usually forces work to happen but if a client misses a deadline and there is a delay you still have a limbo project on your hands.

I really like the payment schedule outlined in 4 but again this is would be over the top for a small project.

Fo me number 2 (agreeing to invoice upon build completion, rather than launch) seems to be the best solution for a typical build. Taking the site live is considered an additional cost which is paid when the client is ready to take the site live.


Looking for something?

See Previous posts, or browse by title