Category: Productivity

Systems, habits, workflows, and personal optimization

  • Productivity Research

    As part of a project to release a tool for productivity I am reading, researching and testing various concepts and tools.  The goal is to compile all this information into a couple of reports and launch a newsletter, website and write some software based on mashing together some of these concepts.

    Colum, Heather and I are currently doing internal testing on a habit building service I built which we hope to launch in the spring.  So far things are looking good for a release.

     

  • Make Reading Inevitable

    One of my big goals this year is to read one book every 10 days.  That’s 36 books to read before Christmas.

    Inevitable thinking is about asking one question: “What can I do to make the outcome I want INEVITABLE?”  The phrasing of that question prompts you to think about things differently.  Instead of just stating the goal – I want to read 1 book every 10 days – you are forced to delve deeper to take actions that make sure it is guaranteed to happen.

    In order to keep pace with my reading goal I have leveraged the same tool that has kept me blogging every week for over 5 years and kept my GitHub streak going strong (currently at 84 days in a row!)

    I’m keeping my reading history in a spreadsheet on Google Docs:

    Books_-_Google_Sheets

    Then I have a small script scheduled to run every hour.  It reads this spreadsheet, finds the most recent date I finished a book and if it was more than 10 days ago I get a rather offensive email hounding me to read a book.  I’ll continue to get one email every hour until I finish a book and update the spreadsheet.

    This simple nag has proven effective at changing my behaviour over the long term.  With this system in place I’m confident I’ll hit my reading goal this year.

  • Practice, Homeostasis, Resolutions and the Path to Mastery

    It’s that time of year again when everyone is making ambitious new years resolutions.

    I started by re-reading one of my favourite books:

    Mastery is about the journey – an endless one. Taking comfort in the practice, ritual and repetition of the fundamentals while endlessly pushing the edge of your skills and knowledge.

    Something that’s been on my mind has been how to get even better at software development. Several months ago I did a massive purge on my blog subscriptions in order to make room for reading more books. Split with reading time, for the last two months I have made an effort to freecode everyday (my github account is on a 66 day streak).

    Making real changes involves a disruption to your homeostasis. You can expect to encounter forces to bring you back to your existing patterns. Knowing to be on the lookout for this is half the battle. The other is to put in place new checks and balances to create a new homeostasis. My most successful long term changes started with something other than just a personal commitment. Blogging and Github commits have been made permanent by having scripts that email me when I get out of balance. Training for a marathon worked only when I had found a social group that expected me to show up.

    One thing that I have been trying to think more about lately is how to apply practice to software development. If you were taking tennis lessons you might hit thousands of backhands for hours multiple times per week before moving on to a different stroke. If you were learning piano you’d probably spend hours playing scales. If you were learning karate it might take a decade of repeating the same motions to reach black belt. Practice is key.

    I don’t know any software developers that practice their craft in the same way. It’s hard to find any information about other developers taking a similar approach to learning.

  • Adjusting to Fewer Blogs

    A couple weeks ago I drastically downsized my list of subscribed blogs.  Going from skimming 200+ blog posts down to fewer than 10 per day.  It has actually made quite a difference.  The time saved was used to read more books, which I’m happy to say has worked out.

    Being disconnected from the news has left me not being as aware about things going on.  Previously I enjoyed being the first one to hear about interesting things, now I’m finding it better to let others be the filter to bring only the most critical and interesting news to me.

    It’s actually been a bigger change to my daily schedule than I would have expected.  Reading books feels like progress compared to the treadmill of news streams.  I don’t think I will be re-subscribing to anything soon

  • Tele 10 Finished

    One more thing to knock off the bucket list.  Yesterday Heather and I finished the Tele 10 race in St. John’s.  My time was good considering zero training runs over the last few months.  I was counting on the adaptation to Calgary altitude to help me power through the race.  That seemed to work.  At no point in the race was I straining for breath and I was able to do the race without stopping to walk.

    The Tele 10 was one of the best runs I’ve done. Having a mostly downhill course was nice and the crowds are huge with cheers coming all along the route.  One thing I wasn’t quite prepared for was the level of humidity. The sweat never seemed to evaporate and as a result it was easy to overheat. At one point near the end some salty sweat dripped into my eye and was quite a distraction until I got a bottle of water to wash it out.

    Final time was 1:47. which could have been improved on with some training but I’m happy with because it didn’t feel difficult.  When I woke up in the morning I was still feeling jet lagged and wasn’t sure I’d be able to finish.

  • Time Audit Surprise

    When you measure things you can manage them – Words of wisdom from Peter Drucker.

    Every time I have made the effort to measure something whether it be calories, carbs, miles run, heart rate, cash flow, net worth or weight there is always a surprise in what the numbers reveal. Recently I did a one week time audit; writing everything I did to the nearest 30 minute interval.

    Prior to actually measuring things I would be swayed by my perceptive bias.  Things that I don’t like doing would seem to take more time than they actually did, and those things that I enjoy would take more time, and seem like less.  This emotional influence on time perception can deceive you into making poor time management choices.

    Sleep was the biggest single bucket for spending my time.  it consumed 33% of the week.  That is a lot of time I wish I could take better advantage of.  There are other animals in the world that sleep far less often than us humans so perhaps there are some (yet undiscovered) ways to sustainably reduce our sleep requirements.  Until then sleeping will continue to be a big part of life.

    Employment was the second biggest time  consumer. 23% of the week was spent in full-time employment.  An additional 3% was spent commuting to and from work so a total of 26% of my time went towards earning a pay check.

    11.5% was family time.  Taking care of a 8 month old can take as much time as I have to give.  It certainly didn’t feel like I was getting this much family time.

    10% of my time was spent on preparing or eating food.  For me that was a shocking number since I usually have a handful of something quick for breakfast and skip lunch.  Cooking and eating supper was taking a lot more time than I had realized.

    Time dedicated to personal projects on the computer was just 5.5% of my time.  Not enough to make progress and much less than I wanted to  spend on it.

    Rounding out the last few things that took time,  Reading, shopping and housework consumed 3% of my time each and TV was at 2%.

    There are a fixed number of hours in the week (168).  Getting more time to work on my side projects requires taking hours away from something else.  Deciding what to cut is difficult, actually figuring out the logistics to cut out that time is also difficult.  Hours are not easy to re-allocate without major life changes and stressing other things and so it will be a struggle to adjust to a new schedule.

    Change is hard.  Changing how your spend your time, can actually change who you are which can be fundamentally difficult to drive from yourself without an external influence (like having a child).

    This time audit raised some interesting issues. Time is our most valuable resource and yet so few of us understand how to best utilize  the time we have given to us.  A disconnect between your goals and your time  can be a critical underlying issue that prevents your success.  I would encourage everyone to do a time audit.  You may find it as surprising as I did.

  • Time Audit

    It can be eye opening to measure things for real whether it is calories or carbohydrates, or reps and weight, or cash flow and net worth.  Perception is a tricky thing and the spread between reality and perception can be wide.

    With that in mind last week I did an audit of every hour of the day.  It was more or less a typical week so I think the numbers should hold up as being average.  This audit provided some interesting numbers that I likely would not have been able to guess off the top of my head.

    The biggest single use of time fell into the category of sleep. 32% of my week was spent unconscious.

    The next biggest item was Work. which ate 23% of my time.

    Those two big categories were to be expected.  Although seeing sleep take up a third of my life is kind of shocking – I can’t remember very much of it.

    Next on the list was family time. This mostly consisted of watching Ada and playing. That was 11.5% of my time at nearly 20 hours over the course of the week.  It’s amazing how fast this time goes by.  When tracking my hours, more than a couple times I’d find myself asking “What did I just do for the past 4 hours?”  In comparison to work hours it doesn’t feel like I did 2 hours at the office for every one hour with Ada.

    TV time took just 2% of my time last week. That consisted of one movie and one episode of Game of Thrones.

    Time spent on the computer was 5.5% or 9.5 hours.  I’m sure that Heather thinks I spend a lot more than that on the computers.  I need to 4X my computer time if I intend on making progress with my Apps.

    One of the biggest shocks to me was how much time was spent either eating or prepping food.  Especially given that I have a minimal breakfast and often skip lunch. 10% of my time was dedicated to food – 16.5 hours.  That’s an average of over 2 hours per day!

    5 hours was spent commuting (bicycle) which was also the only exercise time I had for the week.

    6 hours each of Reading time, shopping, and housework rounded out the audit.

    With a goal of finding more time to work on my Apps there are a couple of places where time could be better allocated.  Previous to doing this I would have thought that cutting into sleep was the only way to carve out more time for myself.  To get another 15-20 hours per week I could probably make due with cutting from some other categories.  If I could avoid shopping excursions that would free up 5 hours per week. Faster food options might save even more time and trimming my reading list might be enough to create some forward momentum on my projects.

    With that in mind next thing to do is to develop and execute a strategy to free up some time.

  • Father’s Day

    This was my first Father’s Day as a father. Man, that’s still kind of weird to say.

    Ada’s personality is starting to show through. She’s going to be a handful and tornado of energy to manage.

  • Investing in your Productivity

    This week in discussion with the rest of my team it became apparent that there was a lack of investment in creating tools to help with the productivity of the team.

    There are four distinct areas you can focus on to improve your productivity as a software developer.

    Focus

    Software development requires a lot of time to think about solutions.  This usually requires focused thought to make any real progress.  Distractions can totally derail your day.  Finding ways to always reduce the number of distractions in your day can pay huge dividends.  Improving your focus is one of the first things you can do to improve your productivity.

    Knowledge

    The more you know about all the tools you use the less time you spend looking for answers on StackOverflow.  As a developer myself who jumps between Python, Ruby, Javascript, Go and Objective-C on a regular basis I sometimes blank out on even simple things like the syntax of a foreach loop in javascript.  As a result of a detour to google for answers I can easily loose a few minutes here and there throughout  the day which can add up.

    Knowing your higher level constructs can reduce the amount of time you spend re-solving already solved processes.  Having a solid understanding of authentication techniques, CRUD interfaces, caching strategies, SQL etc can make a task that would require a google search and turn it into a trivial exercise.

    Reading or re-reading books about your language of choice, framework, or concept can greatly improve your code, and your productivity. I try to read one book per month, and subscribe to weekly email lists for everything I’m interested in keeping current on.

    Typing Speed (core skills)

    Your ability to translate thought into code is dependant on how seamlessly you can move things from your brain into the computer.  The keyboard is your interface and being able to use it effectively is a basic skill for anyone who uses a computer.  Even though I have been touch typing for 15 years I still invest some time here and there to master the keyboard.

    Tools

    Knowing how to use your text editor advanced functions is one thing, writing your own tools to help streamline your processes is an investment in your productivity going forward.  You can do some pretty cool things with a 100 line shell script.  If you could spend 10-20% of your coding effort on creating tools to improve your productivity then it would compound into tremendous gains over time.

    The current evolution of devops is an example of what’s possible.  The old days of purchasing hardware, spending weeks having IT configure the server software stack and then developing a custom process for deploying your app has been replaced with ‘git push’ to the cloud.

    Investing in tools for your business (Sales, Marketing, Accounting) automation or tools for personal productivity (creating S3 buckets, debugging notifications, app templates) can pay huge dividends.  They give you a competitive advantage.

    Open sourcing some of these tools can provide new visibility to your business (see thoughtbot as an example)  and can attract top tier developers.

    So get out there and keep an eye on always getting better.  Always be learning, always care.

  • Meditation

    Many years ago when I was younger I had a clarity of thought and an ability to focus for a very long time without distraction.  These days it is very difficult to avoid getting distracted. The ability to focus on a singular thing for long enough to really dig into it is a real skill of the mind that I’d like to work on getting back.

    Meditation is the practice that enables you to train your mind. For the past couple of weeks I have been finding time in the day to do some meditation.  Generally I work myself through a self-hypnosis routine of focusing on relaxing every muscle in the body individually. Everyone’s experience with this is probably very different but the interesting thing for me is just how difficult it is to focus for even 1 minute without my mind going off on a tangent thought.

    With practice it is possible to maintain focus for an hour or more.

    One of the interesting things discussed by productivity analysis of software developers is just how disruptive a momentary interruption can be. Stopping coding to check email for 10 seconds will cause 15 minutes of lost time in the day. When you lose the ability to concentrate it is your mind that is interrupting itself.  It becomes extremely difficult to be productive.