Friday, 23 July 2010

“Being a Productive Geek”

Last night at my local NxtGenUG meeting, unfortunately our speaker couldn’t make it, so we ended up just having an informal “open space” session. I ended up at a table with some great geeks talking shop and discussing what helps us boost productivity.

My “crazy sleep thing” sparked some real interest, but we also covered some great topics, and I think we missed some – so I wanted to put my thoughts down here in the hope that you can find at least one thing to help you get more out of your day.

“The Crazy Sleep Thing” (Biphasic Sleep)

I don’t want to go to much in to this, since quite frankly it’s more than a tip, it’s a lifestyle choice. Besides, I have blogged about this a-plenty in the past. In short, I sleep less than most other people, and in two phases. If your interested, definitely check out my previous posts.

Binaural “Beats”

These came up when discussing biphasic sleep, but I feel they deserve a special mention because I have found them so useful. Binaural beats are basically the result of the collision of two different frequencies of sound in the brain. If the resultant frequency is of a certain type, it influences brain activity in a certain way (e.g. inducing sleep, increasing focus etc.).
Be sure to check out this site for some great free mp3s. If you are a Spotify user, I have found this artist to have some great tracks also (I use these all the time).

We also discussed how just having the white noise (binaural beat aside) on our ears can simply remove distracting background ambient noise. Also, noise-cancelling headphones are a great addition to your aural arsenal.

The Pomodoro Technique

I can’t remember when I came across this technique, but I remember it changed my working life! The Pomodoro technique is a simple technique to get your time under control. Check out the official site, and this great book for pointers on how to do it. I also put together a little WPF app, but unfortunately that has been benched for now. For me, personally:
Pro’s
  • It increases focus by focusing on one task at a time.
  • It improves estimation skills by getting used to timeboxing tasks into 25m iterations.
  • It’s productive, since each iteration should complete a (or a definitive part of) a task, you can tick something off the list and know it is “done done”.
  • It’s flexible – if people keep trying to interrupt you, you can tell them to wait and any time under 25m is normally acceptable (even if they make out it is not).
  • It’s informative – Logging interruptions and reasons why tasks are taking longer than expected can really be an eye-opener. Some things will surprise you, others no-so-much. For example, I found I kept losing a lot of time prepping certain tasks, so I made document templates and automated parts of the process. I was oblivious to this before because it “only took 5 mins” – actually it took 10-15 and I got it down to about 30 seconds.
  • It has character – this might sound odd, but things are likely to become more successful with you if you give them character and treat them like a “thing”. As an example, one of the rules of Pomodoro is “protect the pomodoro”. This gives the pomodoro identity in my mind and makes me want to protect it.
  • It’s a metric worth tracking – since the pomodoro is a fixed unit (they are always 25m, no more, no less) they can actually be measured with accuracy. This is one of the reasons why I used it as a measure of productivity while doing my biphasic sleep trial.
Cons
  • You have to say “no” – not really a con in my mind, but some people don’t like doing it, and others don’t like hearing it.
  • It’s disheartening (at first) – when you first start, you will realise that your awesome productivity might have largely been a dream. I did. Being honest with yourself can be difficult.
  • You will “lose” time - Don’t think that 8hrs/day = 16 tomatoes. You will NOT get that – focused work is hard and it will tire you out. However, you will actually be crossing more off the list. But I can tell you I had some interesting conversations with an old boss because he didn’t like the fact that I was “saying no because of some silly tomato” and then not having the “full 16 tomatoes” to show for it. Don’t try and account for every 30m block. You will need a rest, you will need the bathroom, you will get caught at the watercooler in a great conversation. Don’t beat yourself up, even if you are hitting just 6 tomatoes a day while starting, you will find you are probably getting more done than before. An important part of working hard is knowing when to take a break.

ORM’s

We had a short discussion on how Object-Relational Mappers help us remain more productive by allowing us to focus more on the domain problem rather than boilerplate data-access code. We talked about some of the different ORM’s available (NHibernate, EF4, ActiveRecord) and how those that embrace ORM’s get more done and deliver quicker.
We also talked about trying to integrate ORM’s into legacy code (by isolating the “new” code and replacing/refactoring the existing code piecemeal).

Learning & Study

The software industry moves at a tremendous rate. There are always new tools, frameworks, languages, patterns and practices being released/becoming the “latest trend”. This makes it really hard to stay on top of it all. Here are some pointers:
  • Don’t generalise, specialise – pick a field that you enjoy (or find lucrative) and specialise. There is simply too much for one brain to handle.
  • What you don’t know – find someone (or somewhere) that does. Since we are specialists, we may get caught off-guard and need to know something that isn’t in our core skill set. This is where the power of networking and good Google-fu come in. Build up a collection of good sources of information and use them.
  • Use SRS systems – I came across SRS sometime last year and I tell you this now. IT WORKS. In short, SRS uses simple Q&A flash cards to test you. If you get questions right, they don’t get asked for a while, if you get them wrong, they do. I personally love Anki but there are others out there.
  • Find the best learning style for you – different people have different brains. Different brains absorb and retain information in different ways (e.g. reading, visual, audio, doing). Do a test and find what works for you.

Know Your IDE/Toolset

I often get comments at work about how I flurry over the keyboard and things happen, classes are generated, code is moved, things deleted, snippets inserted, browser windows opened, commands executed, etc.
Spend time learning keyboard shortcuts (or making them) for actions you perform all the time. It really pays HUGE dividends. For example, I use the Sticky Notes application in Windows 7 a lot for getting thoughts that pop up out of my head and written down. So, I pinned it to the taskbar (right click it in taskbar), and moved it to the first item (next to the orb). Now, to create a note it is simply WIN+1, CTRL+N away. I can do that in under a second. Now time how long it takes to open it from the start menu..
Also, use tools like Resharper (my personal fave) and CodeRush and learn the features they offer. These really will make a huge difference in how much code you can crank out and make it much more flexible to refactor (refactoring is critical to clean code and should be easy).

Improve Your Base Skills

This is something I have started to work on actively recently. As a geek, I think these are:
  • Raw problem-solving. Grab Brain Workshop. It’s awesome.
  • Typing. Grab Stamina.
  • Design. Buy a notebook and a pencil.
  • Communication. Collaborate. Admit when you are wrong or don’t understand.
  • Coding. Hack, then hack some more. Hack until you have nothing but stubs for fingers.

Obvious Ones:

These have been (and still are still being) done to death on productivity blogs, so I will cut the crap and just give them as a one-liner:
  • Close Twitter, IM, Facebook and any other thing that pretends to add value to your life.
  • Close email - your manager can actually wait for that spreadsheet that actually adds no business value.
  • Stick to the plan – protect the pomodoro from the greatest threat – you.
  • Remove distractions – wear headphones, turn off the TV, close the door.
And lastly – celebrate getting more done. Reward yourself for getting it all done. Leave early, take a long lunch and meet a friend. If work is funny about it, get a new job. Work should be fun. If it’s not, MAKE IT. Yes, I am one of those annoying people that enjoy Monday mornings because I look forward to work.
Recently, I have begun thinking my old “work hard, play hard” motto is broken..
Work smart. Work less. Play more.

1 comment:

  1. sounds like a really good discussion, sorry I missed out on making it last night.

    ReplyDelete