Very Simple GTD

This post provides you with a version of GTD that anyone can do, that requires basically no implementation, that will provide massive benefits versus having no system. This is not a full version of GTD. There are important things missing. The motivation for writing this post is that I have heard people say they tried GTD and gave up because it was too complicated and/or they didn't want to do all that work. The truth is that GTD is extremely simple - it removes things from your life rather than adding things - and the maintenance time is minimal.

Once this system is working for you, it'll be easy to add in missing parts when you say "My system works great, but I wish it did X." You can add a waiting for list, a someday/maybe list, or a tickler file once things are rolling. What I present here is a useful core, such that as long as you keep it going, you will avoid the chaos that so often happens without a good system in place.

The centerpiece of GTD is the list (several of them). Note that these are not to do lists. David Allen explicitly says to not use to do lists, because they don't work. All you need is one of those 99 cent spiral notebooks and a pen.

You need these four things:

  • A calendar to remember things that absolutely have to be done at a certain time or on a certain day. A calendar is a list of tasks and the date/time they are due. If you're using a spiral notebook, it will help to dedicate one page per month, with each page divided into sections for each week. Calendar apps are everywhere - the only thing that matters is that you use it.
  • An inbox to capture stuff as it comes in. An inbox can be a piece of paper where you write down reminders of things as they come in. The inbox is literally nothing more than a raw, plain text list of things you'll have to deal with later. An online word processor or notes app is fine too. The key is that you have one inbox only.
  • A projects list. This is a list with all your active projects on it. Each entry has just enough information to remind you what the project is supposed to accomplish. If you start a new project, it goes on the list. If you remember a project that isn't on your list, you put it on there. If you complete a project or put it on hold, you cross it off. It goes in the same place as your inbox, so if you're using a spiral notebook, the projects list also goes in the spiral notebook. If you're using Evernote, the projects list goes in Evernote.
  • A place to store reference material and next actions for each project. You will need a physical location to store the reference material. That might take the form of a filing cabinet for papers or a new directory on your laptop. Each project gets its own list. It has to go in the same place as your inbox and projects list.

If you're using a spiral notebook for everything, colored tabs can be handy to let you know where your calendar, inbox, and projects lists are. It's not hard to find your stuff in a blank notebook, so it doesn't matter now. You can solve that problem after it appears - too many thing in your notebook is a good problem to have.

Here's how you use each of component:

Calendar. If you promise to do something at a certain time or on a certain day, you put it on your calendar. At the start of the day, or anytime you're curious, you check what is coming up. That could be tasks due today or tasks due in the next couple of weeks. The critical thing is to get everything on your calendar so you can experience the comfort that comes with knowing you aren't forgetting anything. Nothing else goes on your calendar. The calendar is not a list of things you'd like to do if you have time. It's not a reminder storage system. It's not a place to capture thoughts. The only function of the calendar is to ensure that you remember the dates and times associated with any promises you've made. If you don't put everything with a date or time on the calendar, no matter how minor, you'll constantly be devoting part of your brain to remembering to do those tasks. There's no excuse for that. It's distracting and stressful.

Inbox. During the day you have things coming at you. Email requests, people stopping by to inquire on the status of a project, or an idea for a new product. You can't typically deal with those things at the time they come in. Your client Alice calls and asks you to send an overview of the progress on her project, but you can't work on it right at that time, because it will take a few phone calls followed by an hour of writing, and you have to leave for a business lunch with Sally in ten minutes. You put "Send Alice an update on the project" on your inbox and go off to lunch.

You could write something on a sticky note and attach it to your monitor. As long as you're in your office, in front of your computer, and the other 15 sticky notes don't distract you, it's a great way to ensure that you do it. It's better to just put it all on one list that you can take everywhere and that you can review when you're waiting for your meal to arrive at the restaurant. The sticky note thing isn't going to work if you're at home and you realize you need to buy toilet paper. You could try it, but it would be awkward if your boss walked in and saw a sticky note reminding you that you need to buy toilet paper, assuming you actually remembered to create the sticky note when you arrived at work.

The purpose of the inbox is that you have one place holding everything you have to do. The benefit is in the reviewing, not the writing down. When you get back from lunch, you are reminded that you have to work on the update for Alice. Since you have only one inbox, and you constantly review it, you know you'll never forget anything. If you have a specific deadline to send it to Alice (imposed by her or by yourself) you can put something on your calendar when you return. It's not just regular tasks that go in your inbox. Anything needing a decision goes in there. If someone sends you several spreadsheets that might be useful at some point for Sally's project, but you don't have any use for them right now, you can make a note in your notebook so that you can deal with it properly when you have the time. When you're out of energy at 4:30, you download the spreadsheets, check their contents, and make a note in the project list for Sally's project. You then return to your inbox and cross the item off, possibly leaving a note to indicate when you completed the task. If in the course of checking the spreadsheets you notice that something is missing, you send an email requesting the rest of the data, and then you make a note in your inbox so you know to check back if they haven't sent it by Thursday.

The inbox gives you the freedom to do things at the appropriate time. Once you have a working inbox, you'll stop doing things as they come in out of fear that you'll forget about it. You have the freedom to think deeply about the things that pay the bills rather than thinking about buying a card for your aunt's birthday. This all comes at a very low cost. It doesn't take much time to write things down on a notepad. You may not be able to remember life without the stress and distraction that comes with constantly trying to remember a gazillion unrelated things as they cross your mind. As long as you put everything in your inbox and review your inbox regularly, you will experience that stress-free, distraction-free environment.

Projects List. Having a list of all projects means you can periodically review everything in your life. Have you forgotten to do anything? Are there any upcoming deadlines? Do you have ideas for moving a project forward? Is this something that sounded good, but now is just a waste of your time, and should therefore be put on hold or trashed? Constant review of your full projects list is important to catch things that are slipping through the cracks. It's also an excellent way to get an overview of how you're spending your time and, more important, how you're not spending your time - you'll know that based on the projects that aren't showing progress. One of the great dangers of the traditional to do list is that you don't see the tradeoffs involved with saying yes to things. You feel good because you're making progress on dozens of projects. By never looking at what you're not doing, you don't really know if the things you're doing are the things you should be doing. A comprehensive review of all projects doesn't have that loophole. No more silently ignoring the consequences of your decisions.

Next Actions. If you don't know the next actions necessary to complete a project, that project is no longer active. When you're deciding what to do next, you start by thinking about which projects are the most important, and then you find next actions that you can complete right now. If a project doesn't have any next actions, you need to figure out what they are.

Be careful not to get sucked into the "optimization trap" where you feel like you have to do the exactly optimal thing at a point in time. You're going to do all of your next actions anyway. You know which projects are the most important at a point in time, and it's usually easy to tell what to do just by looking at your next actions list. If you can't decide on the "best" next action to work on, pick one at random, pick the easiest, pick the most desirable, or pick the least desirable. It doesn't matter. Trust your instinct. As long as you're regularly reviewing your projects list in its entirety, nothing is going to slip through the cracks. There are more productive ways to spend your time rather than assigning 9.3/10 to a next action for project A and 9.2/10 to a next action for project B. (I have heard of people who do this, by the way. I would be bored to tears if I tried that.)

That's it. You now have a full productivity system. One that can be improved upon for sure, but one that will dramatically improve the quality of your life. There's nothing difficult, complicated, or time consuming associated with any of the four components. You will save time, have less stress, and make progress on the important projects in your life.

Time for a Review!

How do I know it's time for a review?

  • I have lots of things that have to get done. (Seriously, who doesn't?)
  • I don't know what the hell to do right now.
  • I can tell you lots of things I should be doing but am not.
  • I can't bring myself to do any of them because I'm terrified that I'm not doing something more important.

Yep. Time for a full review. I don't care if it takes two hours. I have to get my house in order before taking any action.

First step: Do a brain dump.

Second step: Go through my task manager.

Third step: Go through email.

Fourth step: Go through all my inboxes.

Fifth step: Review my long-term and then my short-term goals.

Once I have it all written out to see with my eyes (as opposed to scattered in my brain) I can get to work on some of the small, simple tasks without worrying that I'm going to forget to do something else. Brain overload is about to come to an end!

I have no projects list

Here I sit without a complete list of projects and next actions! I don't know what I should do! There are so many things, but I don't know which one, and maybe I'm missing something that I should be doing but am not thinking about. Ugh.

The Importance of Easy

I recently noticed that my usage of apps and systems is cyclical. Sometimes I use them heavily, because they're designed for a particular task that I'm doing at that time, and then I let them sit for a while. I will at some point return to the app or system when that item is again prominent.

I started to think about why in some cases I went back to the old framework and in some cases I used a new one. The answer is that I always return to an old app or system if it's really easy to do so. A simple text file system converting task lists into html, for instance, is very easy to pick up again in three months. A system that requires me to install several dependencies and requires me to use a clumsy, homemade syntax to do critical things will never be used again. If I have to create links to images in a text file by hand, writing out each one after opening my file manager, I will not return to that system for organizing my photos when I'm ready to pull a batch of them off my phone. I'll look for an alternative.

It's easy when I'm already using a system to add awkward features in order to get functionality at that time, but if I return to it later, it doesn't make sense to learn the system all over again. It's better to just start from scratch or look for an alternative that actually does what I want more easily.

The lesson: If I want to create a framework that I will use for many years into the future, I need to keep it simple. The less I have to relearn, the better. Make it as simple as possible to pick up while having as few dependencies as possible.

Some examples:

  • Text files with markdown syntax. Markdown is something I use all the time, so I don't forget the syntax. Text files can easily be shared, they can be opened with any editor, and they can be put under version control.
  • Conversion using Pandoc. I have Pandoc on all of my machines because it's a tool I use so often. Any reliance on Pandoc is fine.
  • Makefiles. If I want to automate a task, I know I will be able to use a Makefile at any point in the future. GNU Make will always be installed. I will always be able to edit a Makefile and know what I'm doing.
  • CSV files. If I want to store a small amount of structured data, a CSV file will always do the trick. It's just a text file. It's easy to read.
  • Modified markdown syntax. This is an example of something that I have never been able to sustain. I have created preprocessors for markdown files. It opens the door to amazing things. The problem is that I have to install and remember how to use that preprocessor in the future. That has always been more hassle than I've been willing to go through, so every markdown preprocessor I've ever written is now dead.
  • USB storage for sharing. In principle, this will work, but it just hasn't worked for me. Too much hassle to remember which document goes where, how to handle new versions of existing documents, and even where my USB drives are stored. Maybe I will make this work in the future, but I have not found the right system so far.

What Are My Disasters?

One of the difficult choices you have to make in life is putting a relative value on all the different possible outcomes that might come your way in the future.

In a very simple case, let's say there are three possible events that might happen in the future:

  • Your car breaks down, requiring you to pay for the repairs or go without a car.
  • You go on a vacation to Europe.
  • You buy lots of beer, candy, and premium latte drinks every week.

It's difficult because you need lots of information about your future choices and time for your brain to process all the options. Even in the simple example above, you need to assess the probability of your car breaking down, the cost if it does, how you'll respond if it does, where you'd go in Europe, how much that would cost, and what your habits look like on a daily basis with respect to beer, candy, and premium latte drinks. You have to compare them. Perhaps most importantly, you have to connect your spending on beer, candy, and premium latte drinks to the inability to pay for car repairs or a trip to Europe. "It's just a couple bucks. No big deal."

And this is much simpler than anything we face in real life. It's quite difficult to even think about all your options, much less which is the best choice. We often just go with our defaults, whatever that might be. If you regularly drink premium latte on the way to work, that's what you'll continue to do, because you can do it without thinking and you know that it will make you feel better.

In my case, I have a strong desire to avoid disasters. If I didn't have a car, it would be a disaster. If I wouldn't be able to help my mother in a time of need, it would be a disaster. If I were arrested, it would be a disaster. If I lost my job and didn't have a house, it would be a disaster.

A disaster is something that we fear and that we should be preparing for. For some, a disaster would be not going to Europe. They can't imagine anyone not experiencing Paris or Munich. For others, a disaster would be living in a house that looks average. These are not things that would register with me (I can live without either) but some people spend all of their scarce thinking time figuring out how to avoid that disaster.

As humans, we don't really get too excited about the minor stuff. We go crazy when it comes to disasters. I have to decide what are my disasters, how to deal with them if they hit, and what I'm willing to give up in order to avoid the consequences/offset the consequences. I have to decide what I'm going to think about, and actually spend time thinking about it.

Retirement without enough money is something that worries me greatly. A disaster that destroys my house worries me greatly. Disappointing others does, at times, worry me greatly. One of the characteristics of being a human is that we do what we can to prepare for the worst. I have to spend more time thinking about the bad stuff. I will be relaxed and enjoy my life if I am comfortable that I can deal with it. I don't want to think about the bad stuff, but I really have no choice. Knowing I can drop everything and immediately put into action a plan to deal with a serious illness in the family, for instance, allows me to concentrate on what's in front of me. Knowing that I haven't forgotten about a critical project requiring me to make a presentation in front of 100 people tomorrow allows me to focus on anything I want.

Pushing Forward Anyway

This is one of those mornings that I don't really want to do anything. I have so many things to do, but for each task I ask myself "How about this?" and the answer is "No!!!" On a morning like this it feels like there's no benefit from doing any of these tasks.

Rather than doing nothing at all (or more likely, wasting a bunch of time on the internet) I pick something and do it. Just because I don't feel like doing a task doesn't mean I can't do it. I give myself permission to do things that are worthless. I know that the version of me a couple days from now, when I will be thinking that stuff needs to get done, will not be happy with the right now version of me if I blow the morning on the internet.

Feelings are irrelevant. It's okay to do things that right now feel like they have no value.

Understanding the Importance of Defaults

People wanting to achieve goals use all kinds of tools: to do lists, writing in a journal, talking to others, and willpower just to name a few. One of the most powerful of these tools, but seldom used, is setting defaults.

What is a default? It's something that you do automatically when you don't want to make a decision. Defaults have a massive effect on behavior, because they require no thought, only doing, and the doing becomes quickly becomes a habit.

For many, the default for spending time is to pick up their phone and scroll on Facebook or engage with some other form of social media. It's not hard to see why that's a default. There's always something new, interesting, or enraging. The apps are specially designed to keep you logged in all the time. It requires no work at all to use social media, and that's by design so that you'll do it when you're not in the mood to think about what you should be doing. It's pretty easy for social media companies to fill this space because very few of us bother to create our own defaults. Heck, few of us even understand the way default behaviors control us.

Suppose you were in front of a group of people talking about your goals for the next year. It's not likely that you'd say "My goal is to spend 2000 hours scrolling on social media looking for stimulation." No, you'd have goals for work, goals for improving yourself, or maybe goals to help others. If that's the case, why does social media win out? It wins because it's easier to use social media than it is to achieve our goals. We can take that a step further. If you could work on your goals as easily as you can use social media, you'd be working on your goals all the time. We know that's true because some people do work on their goals all the time.

For most of use, there's a serious mismatch between our defaults and our one-year goals. We need to change that. We need to make it as easy to start working on our goals as it is to scroll on our phones. If the goal is to write more, keep a notebook with you at all times and write down ideas when you have a break. If that sounds easy, it's because it is easy, we just don't do it. In order for it to become a default, you need to have the notebook and pen within reach at all times so it becomes automatic to start writing. Nothing complicated, just a grab the pen and go. When it's time to go back to work, set it down and wait until the next break, the same as you do with social media.

If you want to learn, pick out the right book and carry it with you everywhere. When it's time for a break, pick up the book and start reading. Have a notebook beside you so you can jot down notes or things to look up while you're reading. If your goal is to improve at work, brainstorm ideas for better ways to do your job. If your goal is to start a business, research business ideas when you take a break. Have some websites or search terms set out in advance. As soon as it's time for a break, open your browser and go to work. It has to be a zero-overhead thing so you don't resist. Some things don't necessarily fit into this framework, but a lot of things do.

You may need to work on an intermediate goal. If your goal requires the use of heavy machinery to do landscape work, it will obviously not work as a default. You can, however, make phone calls, review email messages, do research on costs, and so on in the small breaks in your day. Put a list of small tasks into your task manager. When you pick up your phone, rather than opening a social media app, open your task manager to your project instead. Find the next item of the list of small tasks and start working on it. Don't try to figure out which task to work on, just do the first one you see that you can do at that time.

Setting appropriate defaults requires serious thought, and you might have to experiment. It's worth it because you're many times more effective once you get it right. The gains are not 5% or 8% when you learn to set your defaults. The gains are 100% or 200% or 400%. You'll be achieving some goals that you'd never even have started once you properly use defaults.

Your To Do List Is Not An Inbox

I regularly abuse my to do list. It doesn't help me to get stuff done because I use it as an inbox to capture things. It's a long list of things I have to do today, things I have to do this week, things I maybe should do sometime or maybe won't, reference information that doesn't have any value to me right now, and scattered thoughts that may or may not be coherent related to a project that may or may not currently exist.

What a to do list should be. My to do list should be

  • The outcome of careful thought about the ways to achieve my important goals (and, possibly, a few items of lesser importance).
  • A plan of short-term action for achieving my goals.
  • Protection against burning up my remaining afternoon energy figuring out what to do next.
  • A reason to relax and do my best work, comfortable with the thought that things are moving in the right direction.

This does not describe my to do list at times. Being completely honest, it very rarely describes my to do list. It's clutted with "I should really get working on this project, so I'll add it to my to do list." and "I don't want to forget about this. I'll add it to my to do list to figure out what to do with it later."

Why it matters. Why is that a problem? Maybe my to do list isn't pretty, but does it really matter? My to do list exists to help me with doing stuff, not for collecting things I plan to think about at some unspecified time in the future. When my to do list is unrealistic because it contains too many items, when it's not clear what I should be working on, or if I have items on there that are not statements of clear actions that need to be completed, my to do list becomes useless. I won't be able to build a habit of looking at my to do list when I'm wondering what to do next. Instead, my default is to click on my web browser and begin a search for news, tips, interesting anecdotes and funny cat pics. Although that is largely a waste of my time, and not something I particularly even enjoy, it's something I can do without thinking, which is not true of my to do list.

What belongs on a to do list. It's not difficult to determine if something should be on my to do list. Are there any decisions I haven't made? If the answer is yes, that means it's not ready for my to do list. I should be able to look at all of the items on my to do list and immediately be able to begin working on them. I should not have to think about them.

What about the other items, those that are tasks but it's not clear what I'm supposed to do, that require one or more decisions before I can start, or that are simply reference items that need to be put in the proper place? Those items belong in my inbox. That's where I store things that require a decision or that are not tasks. The inbox needs regular cleaning (ideally once a day) so I don't forget to do anything. Putting everything on a to do list is convenient, but it's not the right place for these items.

What to do with everything else. All the other items that land on my to do list fit into a few groups:

  • If I have something that needs to be filed, then I need to immediately file it where it belongs. If for some reason I can't file it right then, it goes in my inbox, whose sole purpose is to hold items that need additional processing.
  • If the item is reference material that needs to be filed but I don't know where it goes, I have to create a task to give myself time to figure out the answer, and that becomes an item on my to do list. I make a note of where the item is that I need to think about.
  • If it's a task that needs to be started, but I haven't yet figured out everything I need to do, I need to schedule some time on my calendar to get the project in order. That is a well-defined task with an obvious start time, so it belongs on my to do list. If I can't complete everything in one session, I can create another task for thinking about it again in the future, including a link to my current notes.

A good to do list makes it much easier to be productive. Doing the right things requires no thought - look at what's next on the list and do it. You see that you're achieving your goals as you go about your normal work. A bad to do list not only doesn't help you to get the important things done, it results in frustration when even your best effort doesn't lead to results. The good news is that it's easy to fix. Check that your to do list really is a to do list. If it's not, make changes.

How to design a work system

Once you have to do more than a handful of tasks (i.e., once you have a normal white collar job) you need to adopt a system in order to get your work done on schedule. Your system will ideally

  • remind you to do the things you absolutely have to do,
  • prevent you from working on things that aren't important to you,
  • facilitate constant review of all your projects,
  • make it easy to capture all thoughts, reference material, and interactions with others,
  • compel you to make a decision about each item you've captured, and
  • encourage you to keep your inbox clean.

In short, you want a system that ensures you're doing the important stuff, so you can sleep at night, but actively prevents you from spending time on the wrong tasks. That's why the traditional "dump everything on your to do list" approach doesn't scale. You put everything on a big list, but you don't know which ones you should do and which you shouldn't, and your list ends up serving no purpose. Lists only help if you can do each item without having to constantly do an assessment to determine which you want to do. That's a lot of work, and since you don't have all of your information in front of you at a point in time, it's nearly impossible to do it right. Lists with random items aren't helpful.

Once you decide on the things your system needs to do, you need to minimize two things as much as possible:

  • cognitive overhead
  • maintenance time

The first refers to how much you have to think about the system in order to use it while you're doing your work. An example would be the thought that goes into processing an email that you need to keep for reference. If you have hundreds of places you could put an email, both within your email system and outside of it, the cognitive overhead score is extremely high because it's a lot of work remembering where every possible email can go. In the future, when you want to retrieve that email (if you even remember it at all) you will have to know exactly where you put it. That's a terrible system because you won't be using it for long. A system with high cognitive overhead makes it harder to do your work. The natural response is to stop using it.

"Maintenance time" refers to how much work you have to do to keep your system running properly. This could be during your work or outside it. A great example of maintenance is a system that's complicated to set up. If you buy a new computer, you'll resist setting up your system because it's too much work. Because your system is not used all the time, it's reasonable to abandon it, which you inevitably will. Other types of maintenance that will cause you to give up include large organization requirements and review requirements. You want something that is sufficiently automatic that you generally don't have to process things twice. Double processing is to be avoided as much as possible.

Often people will reverse this. It's not uncommon to put things on a to do list without much information. You think you're saving time by focusing on your work but lack of information causes an exponential increase in the maintenance burden. You don't want to do the items on your to do list because each one requires remembering all the details of what you were thinking at the time (cognitive overhead), researching what you have to do/need to know to complete the item (maintenance), and decide whether it's something you should be doing, and if so, when (cognitive overhead). Congratulations, you've just designed the world's worst work system! A little extra effort when adding the item to your list adds neither cognitive overhead or maintenance, and as such, it's just fine for that to be part of your system. If anything, it reduces the cognitive overhead by allowing you to feel comfortable not thinking about it any longer. If you don't write down all the details, you'll continue to hold everything in your head, making it harder to do your actual work.

Here is a short, nonexhaustive list of tips that work for me:

  1. Have one place for all your notes. A note might be nothing more than a link to the actual note/item stored somewhere else, and that's just fine. You want to know where to look. Project-related notes are actually reference material and should be kept within the project.
  2. Your lists are notes and should be stored with all your other notes.
  3. One of your lists should be a complete list of every active project.
  4. Review the master list regularly - every day is good, every week is a must.
  5. Have a reminder system for anything you have to remember. Not just appointments, but anything, even if the reminder date/time is arbitrary. That is something you should automate.
  6. Plain text is one way to keep it simple.
  7. Valuable things go on your to do list. A to do list is not storage for things to think about maybe doing one of these days.
  8. Have one inbox to make it easy to review.

Project Management Software Advice

You really only need five things for project management. You can be productive using any app or combination of apps that provides this functionality. There's no need to go hunting for the "best" project management app, or to check out the latest and greatest new cloud app that's loaded with features for only $7.99 a month.

These are the five things you need to manage projects:

Note Taking You need to capture ideas, make outlines, keep records of meetings, and draft documents. It has to be easy to create a new note and to find it later. Task managers and list making apps should not be used for taking notes because they were not designed for that. Typing into a little html text box will cause you to resist writing things down.

The type of notes you're taking will determine the tool you should use. If you are primarily entering blocks of text, Google Docs or Zoho Writer might work. If you're doing technical work, you probably need support for entering and displaying equations, or maybe computer code. A markdown editor would be a better choice in that case. Whatever you choose, be sure you have a system flexible enough that all of your notes for a project end up in one place, and that they're entered using one app. As soon as you break that rule, all hell breaks loose.

Hyperlinking The internet was built on links for a reason. Much of project management is about managing relationships between items. You've had separate email conversations with a dozen people, received three quotes for work that needs to be done, have contact information for someone that you might want to call depending on how things proceed, you have notes from the initial meeting where you planned things out and that will need to be updated over the course of the project, and you have fifty websites holding valuable reference information. These are all very different objects, but you need a system to remind you that they all go together, and to visualize how they are related. Hyperlinks are the answer.

Attachments Projects of any size will have reference material. Email messages, papers, files, and bookmarked websites are a few examples. Attachments require a way to deal with storage, potentially in large quantities. You need a safe and reliable system that is also convenient enough that you'll always be willing to use it to collect reference material as it arrives and that allows for easy retrieval/browsing.

There are many ways to capture and store information (just drop everything into a Dropbox folder) but the attachments functionality of your system is a critical component because that is what allows you to find what you need when you need it. Reference material should be attached to a note, even if the note is just a list of reference material.

Lists Lists are an important organizing concept. You need a complete list of everything that needs to be done for your project. Checklists allow you to perform lengthy, complicated tasks without expending a lot of energy thinking about what has to be done, largely eliminating mistakes in the process. I've come to realize the value of checklists as my obligations have can scale to much larger workloads if you aren't expending a ton of energy remembering what to do and worrying about what isn't getting done.

You want an app that makes it easy to add items to lists as you capture them. The most important thing is that it has to be so easy to create, modify, and edit lists that it becomes natural to put everything into lists. After a while you'll grow so used to the compact storage of information provided by lists that you won't be able to do without them. Note that this is not the same as an app for making task lists. Task lists are a tool for doing projects rather than for managing them. Notification and calendar functions are not essential to project management (but it's obviously hard to get through the day without them!)

Review system Projects require constant review:

  • Are you completing everything that needs to be done?
  • Are you missing anything that will lead to an emergency situation in the future?
  • Have you kept updated on work done by others?
  • Did you remember to follow up every time you promised to do so?
  • What parts of the project need recalibration?
  • Are you working on things it still makes sense to do?
  • Does your schedule reflect your priorities?

These are just a few questions that go through your mind when you're not regularly doing a comprehensive (as in 100%) review. Planning is done right only when you take into account all components of the project. You're not going to be doing these reviews unless it's fast and easy.

You need a master index that provides a link to every part of the project. You need to know what needs to be reviewed and where you'll find that information. Nothing works better than a wiki for setting up a review system.


None of the above information has value until you start managing projects. One way to get started is to buy a subscription to an app like Evernote or Notion. Indeed, those apps can provide tremendous value in many cases, and if you're willing drop some cash and put your data on someone else's server, go ahead and get yourself an Evernote subscription, then use it.

While you can do that, there's absolutely no reason that you need to buy a subscription to a cloud service in order to manage projects. I use Zim Wiki, but some other options include CherryTree, Org Mode, Dokuwiki, PmWiki, and Trac (Zim Wiki and CherryTree require little technical knowledge and have a small learning curve, while the other options might require more background and time investment). The cloud is popular due to its convenience, but it comes with its own set of issues, including what to do if you decide to move your data, security, and the need for internet access. Even if you decide to go with the cloud, you can use Dropbox or a hosted version control system like Git or Fossil. The easiest option is to use a $5 USB drive. No concerns with network security or moving your data.

Don't spend long hours evaluating all the different project management apps that are available today. Pick an app like Zim Wiki and work with it. You need a tool that works. No project management software will ever be able to make up for a poorly designed workflow, for a failure to put everything into the system, or for your unwillingness to do the work. No project management software will tell you what your needs are or tell you what the end product is supposed to look like. Going down the rabbit hole of searching for the perfect project management app is a complete waste of time. If you enjoy trying apps, go ahead and try apps, but be honest that you're working on your hobby, not on project management.

Building a website with Zim Wiki

Zim Wiki is a pretty impressive piece of software. I used it many years ago, but back then it had a more limited feature set, and not everything worked as expected (I don't remember all the details). So I gave up after a few months of heavy use.

I've been using Zim an increasing amount over the last several months. One of the things I like is the ability to export a wiki as a full-blown website.

I use the Ecodiv-responsive template. I can't stand some of the font choices (they're too light, which makes it hard to read). I go into style.css, style1.css, style2.css, style3.css, and style4.css and delete "Open Sans" everywhere it appears. I change font-weight: 300 to 500 when I find it.

Then I go into the html export and add the path to Ecodiv-responsive.html (where it's saved on my computer). The export leads to a really nice website, complete with links to any files.

Something you don't need: a perfect system

I've seen countless people not start working because their "system" isn't quite what they want. They don't want to write on paper because then how do you search for something in the future. They want to get their tags right in Evernote. They want to get some additional background knowledge before they start.

This is all BS. Working imperfectly is better than doing nothing perfectly. You can always redo, edit, and fix something done wrong. You can always go back and retag your six dozen Evernote notes once you've become enlightened about the right way to do it. You can even throw away the six dozen notes if the tagging is beyond repair. That's still a lot better than doing nothing. You might not have everything backed up 100% reliably, but if you haven't written anything, you don't need a system for backing up your work. You shouldn't be optimizing to prevent data loss, you should be optimizing to minimize wasted working hours.

You don't need good tools and systems to make progress. You can make progress with a text editor, paper notebook, and pen. You use tools and systems to make more progress than with a text editor, paper notebook, and pen. You're better off without them if they're not making you more productive.

MyBB setup - one critical missing instruction

I ran across MyBB this weekend and decided to give it a try. It looked cool because:

  • It's a PHP app, and thus simple to install and keep it running
  • It uses SQLite as a database, which I find much easier to work with
  • It has all the features I would want
  • Easy to customize

There was one missing critical piece in the instructions. If you're going to use SQLite as the database, you'll be asked for the "path" to the database. Well it's not really the path as we usually use that term. It's the path including the filename. In other words, it's a strange choice of letting you choose the name of the file holding your database, rather than just where you're going to store it, and they don't tell you that you need to provide the name of the file anywhere in the instructions.

After I did that, I was able to get it running, and it works quite well. Hopefully if you decide to try MyBB with SQLite, you can save a little time.

Kanboard with a single column

Kanban apps have taken off following the success of Trello. One of them, Kanboard, is easy to install on a web server, and is quite easy to customize.

To be honest, I have never liked Kanban that much for most projects. It's my preferred approach for projects where being able to visualize things in two dimensions is needed, but most of the time I just want a list.

It doesn't take much to turn Kanboard into a list-making app. First, you delete all but one column in your project. Then you add the following CSS:

.board-task-list.board-column-expanded.sortable-column.ui-sortable {
  max-width: 650px;
  margin: auto;
  font-size: 20px;

The result is a single, centered column. I prefer 650px for the width; that could obviously be changed to anything you want. I want to avoid having a single column stretching all the way across my widescreen monitor. Changing the font size is optional, but I like to modify that as well due to my imperfect eyesight.

A tutorial for getting a local installation of Trac running quickly

I decided to give Trac a try on localhost, just to see if it's worth installing on a Digital Ocean droplet. I found the instructions to be imperfect in places - being an intermediate user of web technologies, I figured it out, but many others would give up.

The first step was to install. I'm running Ubuntu 16.04, so that's easy:

sudo easy_install Trac

No problems. The documentation then said to create a project environment. I created ~/trac and used a modified version of their command:

trac-admin ~/trac initenv

No problems. The next step is to start the standalone server:

tracd -s --port 8000 ~/trac

It starts up to some plain html. That's okay. I click one of the links and I get the expected Trac website. Unfortunately that's where the easy part ended.

I tried to edit the wiki, but there was no edit button. Guess I have to log in. But I didn't create a user. After some searching around I finally realized that you have to create a .htpasswd file somewhere on your computer as you would when using Apache for authentication even if you're not using Apache.

I created a .htpasswd file inside ~/trac (fine for localhost only usage, which really doesn't even have a need for a password).

sudo htpasswd -c ~/trac/.htpasswd alice

and entered a password. That created a .htpasswd file inside ~/trac with a user named Alice. This is basic authentication, so I had to start my server with the appropriate information:

tracd -s --hostname=localhost --port=8000 --basic-auth="trac,trac/.htpasswd,myproject" ~/trac

The part inside quotes contains relative paths (not clear from the documentation) and requires the --basic-auth option. Now it all works. I can dig in and see how useful it is. I may even put it on a server and make use of it on a permanent basis. Hopefully this proves useful to at least one other user.