I like to procrastinate.
I don’t really enjoy procrastinating, but it is one of my weaknesses. I’ll delay doing something that I know is important until the last moment that it needs to be done.
I’ve learned to overcome this weakness of mine by trying to be more productive to compensate for it.
Blah, blah, blah, productivity system… procrastination… blah blah blah!
I know you’ve heard it all before, but here is the strange part—I almost always get things done well before the deadline.
So what is my problem then?
My problem is that when I sit down to actually do the work, I end up doing a million other little things.
Even though I am overcoming the results of my procrastination by self-imposing much earlier deadlines, I am still fighting against the core of my procrastinating nature.
It is like I have put the angry demon of procrastination in a cage where he can’t harm me, but because I have to constantly feed him and deal with his demands, he’s still slowing me down.
I call it micro-procrastination
Perhaps you suffer from it to.
The symptoms are as follows:
- Sit down to do work and first check Facebook, Twitter, emails and every other single site that could have something interesting and updated for you.
- Justify in your head that you need a 10 minute or so transition period to check all this stuff before you sit down to actually do the work you intend.
- Pick something smaller that is not important and work on that instead. (Clean out email inbox, etc.)
Just about every week, my goal for the week is to record 2 modules for whatever my next Pluralsight course is.
I really never miss this goal, but it would often take me a while to get started each night. I would sit down to do the work, but not actually get to working until about 30 minutes to an hour after when I had first sat down at the computer.
Once I got started, I usually found that I didn’t have any problem continuing with the work until it was finished.
I tended to do the same thing with my blog posts as well. I know now I need to get a blog post down each week, but it would always take me a while to get started writing the post itself.
Even when I went to write code or solve a programming problem, I noticed that I would try to do many other work related activities like answering emails or further investigating a problem, rather than just working solely focused on the task at hand.
I started to notice a common occurrence between all of these situations in my life. If I got about 15 minutes into actually doing my Pluralsight course, writing my blog posts, or coding up a feature, I’d almost always end up staying focused on the task.
I found that I would often not want to quit something once I got started. I’d even miss lunch or be late for lunch or bed because of this.
The 15 minute rule is born
Based on this observation, I decided to try a little experiment. The next time I was going to work on something, instead of doing my usual ritual of checking email, checking twitter etc, I did the following steps:
- Pick out the single task I am sitting at the computer getting prepared to work on. (It helps to define this very clearly.)
- Turn of all distractions for 15 minutes or just decide not to let them bother me for that time period.
- Work without pause, without break and without excuse for 15 minutes straight.
- At the end of 15 minutes, if I want to quit, then I can quit or multi-task.
What I found is that after 15 minutes of working steadfast and diligently on a single task, I didn’t want to quit.
I found that something that I had no motivation or desire to actually be working on 15 minutes before was now all I could think about.
I found that just like it takes the first few chapters to get into a book and actually feel compelled to continue reading it, it takes about 15 minutes for me to get drawn into my work and want to see it finished.
I’ve been applying this “15 minute rule” pretty regularly now, and I have been having some pretty fantastic results.
I’ve also slipped up on occasion and reverted back to my old ways and have had quite the opposite of results.
I’ve tried other systems
Now I’ve definitely tried many other systems that attempt to solve the problem of procrastination or productivity or both, but none of them seemed to work all that well for me.
I know these other systems work, and I know plenty of people are successful with them and that my system isn’t really much of a system at all—it’s just what I do.
The problem I have found with other systems though, is that they are either:
- Too complicated to apply regularly unless you are 100% devoted. (Big barrier to entry.)
- Only address productivity, and priority, but not actually doing work.
- Assume you can sit down and actually do what you have set out to do. (Which remember, was the hardest part for me.)
I am a big fan of Getting Things Done and I highly recommend it. At the very least read it, because it just has some great overall advice, but…
I don’t apply it anymore, because I don’t need to organize what I need to get done. My life is currently so packed and scheduled every day that I already know exactly what I need to be doing just about every hour of my day.
I don’t even watch TV or movies… Ever. No really, I mean never ever.
So, with my schedule being so packed, my biggest problem isn’t figuring out what I should be doing—I’ve got that covered. Instead, my biggest problem is doing it efficiently.
The closest technique to what I am doing is probably the Pomodaro technique. I also think this is a great technique and is likely to work for many people.
I’ve just found that my mind tends to defeat the technique by telling me that I don’t have enough time to get a whole Pomodoro done right now, so I should just do part of one.
You could call what I am doing a modified Pomodoro technique, whereby I set the duration to 15 minutes and actually try to avoid taking breaks for as long a possible.
Why the 15 minute rule works
I suspect the main reason why this technique works is because of momentum.
When we start to get momentum going for us (and 15 minutes seems to be just about enough time to do so) it is much harder to change course.
Focus is also a big part of the 15 minute rule. The world today is a fast paced multi-tasking parallel processing rat race in which we are conditioned to switch our attention between multiple things all at once.
If you are reading this post right now, you probably have even switched back and forth between multiple browser tabs or chat windows or something else and aren’t focusing 100% on reading. I don’t have 15 minutes to grab your full attention and draw you in (unless you are a very slow reader, in which case I congratulate you for making this far.)
The point is, we have to purposely focus on a single thing in order to turn off that natural tendency to try to be omnipresent.
Doing the 15 minute rule forces me to focus, and that focus tends to shut off everything else in my mind with has the potential to distract me.
The 15 minute rule also prevents me from overthinking about a problem and standing back to admire the problem instead of working on it.
It frees me from obligation. If I know I have to work for 15 minutes, I am not afraid of not making much progress. My only obligation is to be working on the task at hand, without interruption and with complete focus for 15 minutes.
I also find that after 15 minutes, I’ve developed a commitment to the work. Because of the time I’ve already invested in the task, I feel more compelled to complete it.
Applying the rule
Hopefully you’ll find this technique useful and if not perhaps you have a better suggestion or technique. If you do I’d very much like to hear it, since I am always looking for some practical ways to be more efficient.
Before I let you be on your way, I’ll leave you with some parting advice that I’ve found useful when applying the 15 minute rule.
- Remove all distractions. That may mean closing browser windows or turn your phone off or just deciding to ignore everything else.
- Don’t forget to focus. Removing distractions is not enough, you must also focus intently on what you are doing. Be present in the moment.
- Work, don’t think. I know thinking is working, but the mind wanders too easily and merely thinking about a topic doesn’t seem to create that same mental traction. This might mean you start writing a first draft or first hack, but it is important to be actually “doing.”
- If you feel like you can’t start “doing,” make your “doing” brainstorming, but brainstorm by actually writing a list or making a mind map.
- If at the end of 15 minutes you are still not into the work and want to quit, go ahead. Come back a little later and try again.
- Take breaks when you need to, as long as the initial focused 15 minutes has passed, I’ve found that I can take a break and actually want to get back to my work.
- Put a sticky note on your monitor or somewhere you’ll notice that reminds you that when you sit down to work to start off with the 15 minute technique.
Strangely enough, this post is about why I blog.
I try to avoid posts about blogging, but I thought it might be worthwhile to think about and explain why I blog.
The mental exercise of blogging provides an opportunity for me to…
Refine my own thoughts
When I think about the why I blog, this one reason sticks out the most to me.
Sometimes, I don’t enjoy writing. Sometimes a post doesn’t end up just flowing out of my finger tips—it feels more like I am yanking a tooth out. But, I always have to go through a process of refining my thoughts on a subject and there is definitely value in that process.
Since I’ve started writing and teaching, I’ve found that my head is full of plenty of undeveloped ideas about many different topics. I’ve learned that on almost all subjects that I haven’t thoroughly examined, I have large holes and gaps in the path which leads to the conclusions I’ve formed about those subjects.
I’ve often said that you don’t truly learn something till you teach it, but before you can teach it, the thought must be refined in your own head.
Sometimes I like to think of my blog as a place where I am teething on my own thoughts. It’s often a painful process that takes a long time, until finally the enamel of a fully formed hardened idea erupts from my skull.
I’ve found that as I do blog, I start to really refine my thoughts about a subject and develop strong convictions on that subject.
Holding them loosely
I’ve come up with a saying that explains quite a bit about me.
I have strong convictions which are loosely held.
At first, this might seem like a contradiction, how loosely can you hold convictions that are strong, or how strong can they be if they are loosely held?
To me, the answer lies in the alternative. How useful is it to have weak convictions about things? To me having a weak conviction is akin to not having thought long and hard enough about a subject to form a strong conviction.
As for holding onto that conviction loosely. I basically say that I reserve the right to change my mind. There is no point in holding onto any conviction tightly, because that conviction’s soundness should be based on logic and reasoning. When that conviction’s foundation fails, so falls the conviction.
I try to live my life adhering to this principle. This is one of the reasons why you’ll find some of my posts contradictory. I’ll start out being sure of one thing, but a year later, I’ll be convinced of just the opposite. You, as a reader, are watching me grow.
Now, some people might say this makes me a waffler and unsteady, but I think I’d rather be called either of those than be stubborn or wishy-washy. I don’t see that there is a middle ground in this area.
I also tend to think of and use my blog in that way.
There are many times when I do a search on my own blog to either look for a solution to a problem that I can’t recall, or to find out why I did a certain thing a certain way. I find the blog not only captures the solution, but how and why I was thinking about a particular problem or technology.
Sometimes I just search my blog to find out what the heck I was thinking at a particular time or to self-check my progression through time to see if the present me has gained any wisdom over the past me.
In that same regard, I find that perusing my early posts is often a humbling experience. It is good to humble yourself every once in a while. It is much better to do it yourself than to have someone else do it for you. I try to remember that.
Also this reference often comes in handy when needing to quickly explain my thoughts on a matter to someone without having to try and rehash it right there on the spot. In a discussion or in answer to a question, I can often give someone a link to a blog post I have written on a subject which gives a detailed explanation of my thoughts on that subject.
Career and opportunity
I’d be lying and doing you a great disservice in representing the truth, if I tried to claim that none of my motivation for blogging comes from my own material gain.
Now I don’t get paid to blog—and I assure you when you click on one of my few Amazon associate links, I don’t get paid anything more than it basically costs to host this blog—but I cannot tell you how this blog has helped my career and opened opportunities which I would have never had before.
I’ve always felt that a blog is far better than any resume. Want to know what I think on a subject or my knowledge on an particular area? Search my blog. What to see if I am consistent or if I am actually improving my skills and learning anything over time? Check my blog.
With a traditional resume, we are often constrained to what can fit on a page or two. It is very difficult for me to explain the totality of my experience and journey as a developer in two pages, especially when I have to cram 50 keywords in there as well so that it doesn’t get filtered out by resume scanning software.
Now, not every prospective employer will look at my blog, but the ones that do and really take it into account are much more likely to be the ones that I would like to work for anyway.
Aside from just W-2 or salaried income, I feel that my blog is a launching point for so many other opportunities. Through my blog I’ve gotten opportunities to meet people I would never have met before, invitations to speak at various events, invitations to write books and plenty of opportunities to train on consult.
I’ve also found that my blog is a great medium for conveying ideas or viewpoints sometimes subtly to coworkers or management. It’s not always easy to come right out and say something, and often that approach is not best anyway.
Posting a blog post on a subject affords me the opportunity to really think about an idea and to make sure my ideas are well baked before they are presented. It also assures that my message will be heard and digested instead of quickly reacted to.
One of the main reasons I blog is that I am planting seeds that will grow my professional career. I like that idea. It makes me feel like I am building something that has lasting value rather than just getting work done for the day.
A sounding board
Often my blog serves the purpose of checking my ideas against reality. It is amazing what kind of crazy notions you can come up with just thinking about ideas in your head.
I’ve often posted on certain topics, because I am not sure what I think or I have an idea of something and I want to get a gauge from the general community if my idea makes any sense outside my head.
I’ve had plenty of posts where I’ve learned much more from the comments than I have in preparing the post. (Although sometimes it is a painful process to do so.)
Learning to write
When I look back on my earliest posts, I can definitely see a progression in my writing skills.
Writing is an important skill in just about any career, since we are always communicating our ideas.
I’ve found that the ability to effectively communicate ideas in writing ties directly to my ability to communicate ideas in all other mediums as well.
Writing, to me, is an exercise in thinking. The more I write, the better I learn to think and to express my thoughts.
So the next time you read one of my blog posts and you think "hey, that guy doesn’t know what he is talking about." you are probably right!
Remember, I am just teething on my thoughts; I may come to a completely different conclusion tomorrow or next year.
Feel free to set me straight, I won’t be offended.
As a developer trying to stay sharp and keep up on the latest technology, frameworks, and best practices, you probably find that you are overwhelmed by the sheer volume of information that is coming in every day.
I often feel like I am swimming hard in a river against the current, sometimes making ground, sometimes losing ground.
So many sources of data
There are so many sources of information coming at us every day:
- Trade magazines
- Technology news
- Software and tool updates
- User group meetings
Sometimes sitting at my desk is like having my eye-lids taped open and being forced to watch a Nazi brain washing video. ”You will kill the prime minister of Malaysia!”
With all the sources of information coming in all the time, there is really no way to keep up on all of it, but that is okay. At least I keep telling myself it is. What you really need is a good strategy for dealing with all of this. I’ll be perfectly honest here. I don’t have one, but I have a few tips that I have been using and just maybe it can help you.
Pick your priorities
You have to know what is important to you in order to make decisions about what content to consume. If you can’t pick it all, you want to make sure you are getting the best and most important information.
As a developer who has been straddling the line between Java and C# for the past 2 years or so, I have found that my number of information sources is close to double the number of sources for a purely Java or C# developer. If you are Ruby/.NET or Scala/Java or any other kind of dual casting class, you’ll have the same problem.
Fortunately, there is a simple solution, as far as priorities go, to this problem. Prioritize language agnostic sources of information as the highest. What I mean by this is, instead of reading a book about C#’s or Silverlight, read a book about writing better code, or being a better programmer, or design patterns. You want to prioritize those kinds of things near the top of your list because those skills have a long shelf-life. Learning better ways to express yourself in code or design patterns is likely to benefit you regardless of the technology or environment. Those kinds of things go to the top of my list.
Next, I try to pick as a priority the technologies that I am currently working on right now. If I am working on building a DSL using ANTLR then I want to read things about ANTLR. If I am working on an ASP.NET MVC application, then I want to be picking blogs about ASP.NET MVC. The idea here is that I am learning about something that:
- I know has value because I am using it right now
- I can immediately benefit from as it will help me do my job
- Is interesting to me because it is about what I am doing
- Doesn’t lead me in a different direction because I want to use what I just learned
Finally, I try and pick as priorities things that I am interested in. Perhaps something that I would like to learn about or do as a hobby. For example, I don’t get paid to write iPad or Android applications, but I am really interested in both of those technologies and I might like to someday write a little app as a side project. Having a bit of diversity into some technology you’re not really working in for a living but you are interested in can be good. It can prevent you from being too narrowly focused and becoming a technology or language bigot.
Pick your data sources
I absolutely hate cable TV. I haven’t had cable TV for about 7 years now. Why? It is a lousy data source. The signal to noise ratio on cable TV is horrible. You sit down and almost end up spending as much time watching commercials as you do shows. Plus, when you are flipping through channels you end up losing hours watching stuff you are not really interested in just because it is on.
Instead, I use a service like Hulu or PlayOn to only watch the shows I want when I want with almost no commercials. (And it is free.)
My point here is that you have to be picky with your information sources. You want to pick the information you want to get, and you want to pick sources that have high signal to noise ratios.
To do this takes some effort and some time. The best way I have found to do this is to figure out strategies for determining quality.
- For books, look at reviews and recommendations, don’t pick up a book because the cover looks cool. Make sure you’re not going to waste your time reading something that is not good material.
- For blogs, put them in your RSS reader, read all the ones in your reader. Over time, the ones that you feel like you don’t want to read, remove from your reader, or put into a folder for checking every once in a while, instead of your must read list. You can scan the lists every couple of days or so and read just the things that interest you.
- For podcasts, recognize the difference between entertainment and information. It is okay to listen to podcasts just because they are entertaining but make sure you know which ones you consider good information and which ones you consider good entertainment. The best ones are the ones that combine both.
Keep your lists active. Add things, remove them, always optimize it. Sometimes information sources that were good go sour. Sometimes new good ones pop up. Don’t get stuck in a rut reading stuff that doesn’t benefit you anymore. Your own growth will change what is valuable to you also.
Figure out your schedule
You have to know how much time you are going to dedicate to the fire-hose drinking. If you have more things than you have time you end up becoming stressed out. Your reading list backs up and becomes a pile of work instead of something you enjoy doing. Don’t let that happen, make sure you have a plan and stick to the plan.
You need to figure out when you are going to do particular things and about how much time you have. This will force you to set some limits on the number of things that you allow in each day.
For example, I know that I will spend about 45 minutes to an hour each morning catching up on blogs and things in my RSS reader. I know that I have a commute each day which allows me about 40 minutes each day to listen to podcasts. I know that during the day I have about another hour of doing something mindless where I can probably listen to a podcast while I work. I know that I want to dedicate about 30 minutes each day to reading a book.
Based on my schedule I know that I can’t really have more than about 8-10 things in my RSS reader to read each day. I have to pick about 3-4 podcasts to subscribe to (depending on frequency of updates and length of episodes) and I can pick a book off my reading list on average about a month.
Use your knowledge of what your schedule is to put hard limits on the amount of information you allow into your world on a subscription basis. Remember also that things like tweets are going to show up at different points during the day and leave some time for discovering new sources from recommendations.
Do you like wasting hours of time with nothing to show for it? Avoid the temptation to mark things off your RSS reader or your book list just for the sake of marking them off. If you are going to subscribe to an RSS feed, read the content. Read the whole thing. Don’t skim through it and not gain the information. The same goes for books and podcasts.
If you feel like you don’t want to read it and you want to skim it instead, then simply remove it from your subscription, close the book and move on or stop the podcast. Don’t waste your time, and don’t do things just to check them off a list.
Hopefully my advice has been of some help to you. I am still trying to figure how to do all these things myself, and I still do feel overwhelmed at times, but I do feel like I am getting better at it. What do you think? What kind of strategies do you employ to “drink from the fire-hose”?
As always, you can subscribe to this RSS feed to follow my posts on Making the Complex Simple. Feel free to check out ElegantCode.com where I post about the topic of writing elegant code about once a week. Also, you can follow me on twitter here.
Earlier this week I was invited to join the developer community of bloggers at Elegant Code. I had to think about it for a bit because I wanted to make sure that I would be able to fulfill all my obligations and still maintain the quality of postings and work that I hold myself accountable to. I am very glad to say that I have accepted the invitation to join Elegant Code, because I do feel that I can embark on this adventure while still maintaining my standard of quality.
What does this mean for Making the Complex Simple?
There should be no noticeable change. I know this might be a little confusing for some readers of this site because I will now be blogging in two places, so let me outline what you can expect to see.
- I will continue to blog about 2-3 times a week on http://simpleprogrammer.com
- The content on simpleprogrammer.com will continue to be the same type of general programming, best practices and technological reviews, not tied to a specific theme.
- I will blog about 2-3 times a month on http://elegantcode.com
- The content I post on elegantcode.com will revolve around ideas about how to write elegant code and improve your code in general.
- I will not cross-post. This means that content will appear in only one place, not both. I may link to either site, but the content will have a definite home on one or the other.
- I will be exclusively writing COBOL from now on, and all my posts will be about programming in COBOL and the secret lives of COBOL programmers. (Ok that one is a lie, but the rest are true.)
My first post at elegantcode.com was just posted today entitled “What Does Elegant Code Mean to Me“.
One last thing before I go.
Here is a picture of a dog biting its own tail.
Here is a picture of a blue mushroom.
That is all.