Todon't
codinghorror.com
codinghorror.com
Here is what I do when I need to be particularly organized and productive. I call it a to-done list. (I'm lazy and probably have ADHD, so I never sustain. But whenever I do this it feels great, and it is never hard to start it up again when I get motivated.)
I start with a small list of things that I absolutely have to do, in roughly the order that I plan to tackle them. Put that in a plain text file. Write the date below that list.
Take the bottom task, break it up into subtasks, recursively, until I've got a task I can work on right now. Do it. Move it down off the list to the date. If I get blocked on that one, add the blocker below the task and pick another task. Continue all day.
The next day I start by putting that day's date above the old date, and then continue again.
The keys to this are the following:
1. I ONLY include things that I HAVE to do. (Adding all of the, "It would be good to some day" or "I'd like to" leads to depression as described by Jeff.)
2. Items are SPECIFIC and SMALL. The goal is to constantly move them off the list into done.
3. Only include CURRENT stuff. If there is a project that is intended for 3 months from now, it does not go on the list.
This list serves 2 purposes. The bit at the top is pretty much a LIFO stack (I add at the bottom, take off from near the bottom) of what I am currently working on. So it is the whole, "I need to do Y in order to do X, be sure I get back to X eventually." And the long list at the bottom is a log of how much I got done, which makes me feel good.
If you try this, be aware that a quickly growing top section is proof that you're doing it wrong. Go through the top bit and ruthlessly prune off everything that doesn't need to be there. Yes, I know that some people feel good about taking a list of high level tasks and breaking it up right away to get organized. But really, this makes the list explode, and you won't do as good a job of exploding it out as you will when you are closer to actually doing that item.
The rule of thumb is, if you have trouble scrolling through the todo to the already done, the todo is clearly too long.
Please. I think a certain amount of humility is called for when making claims about how someone ELSE could improve his or her productivity.
For example, in my own practice (and contrary to the above), a to-do list has the most value to me precisely for things that I'd like to do someday, and not things I need to do now. This is because I need the list for things that tend to float out of short-term memory. I don't need it for immediate or high-priority tasks, because I tend not to forget those. People are different.
It's absolutely a fine thing to say, "This practice improved my productivity. I offer it to you, for your evaluation, in case you find it helpful, too." But even if 95% of workers are more productive with practice X, maybe I am a member of the 5% minority that is more productive with practice Y. It is silly to assume that given various ways of approaching a problem, there is ONE way that will better for 100% of people .
Being a professional means I own the responsibility for deciding how to accomplish something. Sometimes a group needs to reach a consensus on how to do something, e.g., pick one source code control system, rather than letting each programmer pick whichever they think makes them individually most productive. But choosing a personal to-do list is personal decison.
Agreed. However this was just an indignant HN comment against Jeff Atwood who committed the sin orders of magnitude worse by beaming out this nonsense to his tens of thousands of readers.
Everything that Jeff said in his article boils down to spending too much mired in productivity porn, then overreacting and declaring that todo lists are useless and you shouldn't use them.
I agree with your agreement, but it certainly would be an interesting experiment to try to train your brain to take back some of the responsibility you put on list. My memory is relatively weak, so I make lists of things I actually have to do, too.
Jeff telling me I should stop using todo lists is like an alcohol telling me to stop drinking. No, you should stop drinking, I should drink however much I like because I don't have a problem with it.
Yeah, I happen to be one of those people who disagrees with Atwood on this particular issue. Sure, I get depressed that I can't do everything, and I was getting overloaded by all my tasks. And I won't deny that there seem to be way too many pieces of software to manage todos. But to say that keeping a todo list is worthless and give up on the whole idea seems like throwing out the baby with the bath water. Also the saying that "if it's important to you, you'll do it" might have a grain of truth, it's also very all-or-nothing black-or-white thinking.
If anything, I think that each person has to figure out their own way of managing tasks. For me, it was realizing that I can't do everything, or maybe I can't do everything right now, and just need to pare down my tasks or constrain my focus. Just because I cancel or defer a task (which takes it off my radar) doesn't mean it disappears. Text is cheap, and I try to capture everything, then prioritize from there; I end up archiving many, many things. Over time, I've developed a list of don't-forget-must-dos, in which I mix the occasional want-to-do. I'm horrible at keeping focused (or more accurately, if you break me out of my focus, I sometimes can't even tell you why or what I was doing!), so having a list I go down and check off is a lifesaver. Keeping busy also has the additional benefit of keeping the depression at bay. Ironically, the more busy I am, the less stressed I am; it's only when I stop to worry about what I have to do, or worse, if I didn't have a place to note things that need to be done, I worry about missing things.
I think there's value in having exactly one, unorganized, usually-hidden "someday" list. Whenever I strike one item off the "someday" list, I know that I am not yet drowning in MUST-DO's.
Also, it makes it frictionless to give up on a task and drag it out of the "MUST-DO" list into the "someday" list. And once it sits next to the Hawaii trip for a while, it gets even easier to delete it altogether.
Yes, indeed, I find I disagree with most things Jeff has to say.
What is a bug tracking system if not a glorified todo list?
What is a shopping list if not a glorified todo: buy X list?
When you think up a cool idea for a project or learn about a technology you want to explore next time it fits and add it to your project log / text file / notepad, isn't that basically a todo list?
These things are really important: I can't remember every bug my software has, I often forget something I wanted to buy (goddamn avocados, honestly every time they slip my mind), and I can't work on every idea I come up with straight away.
I people who have problems with todo lists are using them, I hesitate to say it, incorrectly. They shouldn't run your life, they are just a place to jot things down.
> But I have noticed that in many real-world companies, the desire never to miss any bug report leads to bug bankrupcy, where you wake up one day and discover that there are 3000 open bugs in the database, some of which are so old they may not apply any more, some of which can never be reproduced, and most of which are not even worth fixing because they’re so tiny. When you look closely you realize that months or years of work has gone into preparing those bug reports, and you ask yourself, how could we have 3000 bugs in the database while our product is delightful and customers love it and use it every day? At some point you realize that you’ve put too much work into the bug database and not quite enough work into the product.
doesn't really work, though, does it?
The thing about bugs is that they get reliably re-reported over time anyway, causing you to spend even more time noting the duplicates. And for old bugs, you need to spend even more time reconfirming if they are still relevant.
Everybody hates this. Why not exploit the recurrent nature of bug reports, and assume the users will ask us about it again if it matters?
I can't think of an instance where we were really glad that we saved some minor bug reports from months and months ago.
This is the key sentence.
If a bug matters, it will be reported more than once. In fact the more it is reported, the more it matters.
If you need to do something, and forget, then there will be consequences. Those consequences will be a strong reminder that in the future your brain should be a lot more scared of this outcome. And if there are no consequences, did you really need to do that thing? Because why?
Similarly, if an idea you had is good and you didn't write it down, don't worry, it will come back. Good ideas have a nasty habit of bubbling up in your brain and not leaving you alone. Have some confidence in your mind's ability to consistently dredge up the good stuff on its own. You don't need systems and methodologies and software to do so.
I think this could describe most of the articles on codinghorror.com these days. Or to put it more politely (from a quote by Einstein): "The horizon of many people is a circle with a radius of zero. They call this their point of view." What doesn't work for someone may work for others.
Like feeding your pets? Or your children? Yeah, I'm sure the court will see it that way.
Similarly, if an idea you had is good and you didn't write it down, don't worry, it will come back. Good ideas have a nasty habit of bubbling up in your brain and not leaving you alone.
What evidence do you have for this? How many scientific breakthroughs have been due to happy accidents, or someone noticing a tiny thread and keeping track of it? How many times do you hear about some scientific discovery that took decades because people kept forgetting to note "insignificant" details?
One last thing: just because lists don't work for you doesn't mean they don't have utility for others.
There is a fairly intelligible difference between "keeping a list of bugs that need to be fixed never works let's just remember it in our heads" and "bug databases often get misused and the result is they fill up with junk".
The downsides noted in that quote are definitely valid, and I've worked in companies / projects where that happens, but I don't think that completely invalidates them as a concept.
A todo list is a list of tasks you are intending to accomplish:
Check my email, fix three bugs, eat lunch, call that sales guy, write copy for the ad, go to store.
A normal list is just that, a list. Here is a list of lists: groceries, bugs, ideas, commenters on hacker news.
If you need to have a bullet point for checking your email, fixing bugs (as a general activity) or eating lunch, you're using them wrong.
I found most of the apps available were not suitable for reusable checklists. I should add a clear all checks option though. This is an experiment mostly for me to learn for future apps.
Currently free an minimalist but working on in-app purchases at the moment (existing users won't lose features).
Wow, talk about some ableist nonsense.
Why is it so hard for people to understand that different productivity tools work well for different people? Letting go of the typical mind fallacy is a very important step in understanding how to take advice from other people.
Huh? Is the original post discriminating against people who are not able-bodied?
Most TODO lists that aren't reminders are just glorified brainstorming. For example, when I make a list of steps for getting something done, I consider it disposable. A task list I generate from scratch tomorrow will probably be more accurate than the one I was working from today. Like design documents, task lists are perennially stale, more harmful than helpful.
The one exception to the above two rules is my shopping list, because nothing sucks more than waking up in the morning and not having any coffee.
Precisely calendars are a very effective way of maintaining list of lists with deadlines(dates).
In other words you just graduated to the next level of to-do list organization. You just don't realize you have.
I write my lists in SublimeText 2 using this plug-in: https://github.com/groenewege/mdTodo Basically, it provides only one shortcut for marking tasks as completed. That way I don’t lose time by fiddling with the UI of one of those to-do list apps.
I think lists break down when you try to make a single list for your whole life that lasts forever.
I only put down little things that I'm likely to forget. I give myself permission in advance not to do any of them at any specific time. But when I find myself with spare time and motivation, I always have a couple of things I can pick off the list. It's helped me get a lot more little things out of the way. The big things are another matter, but with fewer little things cluttering my brain…
But OP goes too far when he says that you should rely only on your brain's natural scheduling and short term memory. I mean, without a grocery list, I can't even remember all the ingredients to make a birthday cake.
Prioritizing is hard. I don't think there are any simple solutions. But maybe we need some sort of trigger to know when we should throw out undone projects, or cast them into some very far back burner. What would that be?
This is mainly what I do with my to-do lists. It's the odd-ball things that need to get done, but aren't pillars for future progress in the day and are out of my normal routine. To pick a random example, dropping off a letter in the mail bin. If I don't do it, I wouldn't know for the rest of the day because I'm never going to think, "Oh, I can't submit my progress report because that letter is still in my backpack!" And I don't do it often, so I'm used to ignoring the mail drop boxes anyway. Aside from my brain either randomly remembering or pulling on a long thread and re-deriving the need to mail a letter, there's no reason it would come to mind. But if I write it down on a centralized list and I repeatedly check said list, hopefully I'll catch it in time.
For me, a to-do list is a set of things that need to be done that otherwise don't really fit into the normal flow of life, but still need to be done.
And I have a bad memory to boot. I forget things that aren't written down all the time.
This maybe a little bit queer but FOR ME it works!
How it works: First i dont got a APP! i got a little paper notebook and when i got a Task i dont write down:"make the CSS work better". I Write:"How can you make the css better?". Mostly the questions are tighter and more to the point but this is just an example. I use diffrent Colors too ! Black/Blue just to write it down Red/Green/Orange/etc. for things that let me later know what i thought that moment. I Carry that thing always with me! ALWAYS! Maybe a Solution for a problem comes in my mind when iam at the Metro or on the Street.
Why i do that? I dont like Tasks! Tasks always have this: you MUST do that and that... baaah NO I dont like it.
Really DONT use a APP! Wunderlist, the milk thing, evernote etc. are ALL good app's but the just all take to long!
Maybe this will change with a Touchscreen and pen but i like my paper notebook :)
I think the problem with to-do lists is when people use them to track literally what they are supposed to do for the day ... you should not need a todo list to guide your day in the larger sense in my opinion. I think where they actually are useful is tracking very small postponed tasks that would otherwise be forgotten - software is filled with these sort of things and probably the reason why devs think to-do lists are so instrumental.
I don't have a good memory. I need to write these kinds of things down somewhere. It's not (and shouldn't be) that complicated, but it's definitely necessary.
Here are a few reasons I prefer this in a list, and not part of my calendar: 1. My calendar tells me specific places to be or people to talk with/meet at specified times. This is important, because I've usually scheduled with these people, so it's not up to me to change it. It's a set time for dealing with something, that has to happen in that specific time. 2. For todo items like "see this movie", usually I don't need 30 minutes. I need 2 minutes to check if the movie is out, decide whether I'll see that movie today or not, and if not, move the task to another day. 3. I don't have a specific I need to deal with that task. I'd rather not postpone it 300 times. 4. I have 10's of these tasks. I really don't want them cluttering up my calendar.
All of the above mean my calendar is my go-to place to see actual, important things that I've scheduled with other people. My todo list is the place to see little tasks that I need to do sometime. Perhaps on some specific day, but not in any specific time. These tend to be very different kind of tasks.
Because it would be more like "remember to deal with this issue by 3 weeks".
What's the point of a calendar entry that reminds you half an hour before a task is due? Calendars are for events, not tracking the status of a task.
At some point, the brain cannot hold everything into 1 context and will kill some things - some that may turn out to be important for you in the long run. So I find it very productive to write things down in one or more to-do list, and then switch contexts when the time comes. This allows me to concentrate on 1 thing at a time, knowing that I can later focus on all the other things I need to do, without dropping the ball on any of those, because I happened to forget about thing X or Y.
Nowadays, the only difficulty I face is performing the actual context switch. For example, after working 8 hours in Node.js with vows, bootstrap, jqmobile, mongodb,etc, it is painful to switch to working on a POSIX-compliant memory manager in C99 and then switch into family-mode or friendly-guy mode and entertain family/friends/etc. I found that performing some completely unrelated activity (like playing basketball) helps ease the transition from one context to the other, but I don't always have a 2 hour window for a context switch.
Anyways, I use trello these days.
TL;DR: bullshit, TO-DO lists are very helpful and I am the living proof.
I don't know if Jeff has read "Getting Things Done" By David Allen. Or he has read "Flow" by Mihaly Csikszentmihalyi. With Regards GTD, David Allen specifically mentions its very easy to get on and off GTD framework. Because GTD does require a level discipline to get it work. Or any Time management framework ever invented for that matter.
If to-do lists are not working for you, then you have one of the signs.
1. You don't have a lot of things to do in your daily schedule at the first place. Making the purpose of list obsolete.
2. You have very few but large monolithic tasks that don't need to be written down, and generally fit in comfortably into your brain cache.
3. You are not frequently interrupted.
4. You don't procrastinate.
5. You are just not disciplined to follow the list discipline.
>>Eventually I realized that the problem wasn't me. All my to-do lists started out as innocuous tools to assist me in my life, but slowly transformed, each and every time, into thankless, soul-draining exercises in reductionism.
Sorry to-do lists do work. Don't make to-do lists a religious ritual you need to follow. They are there for a reason and if you fit into that framework its futile to use it.
>>Lists give the illusion of progress.
When were lists meant to measure progress? They are meant to track your work, your brain only has a limited capacity to store things. When you put to many to-do tasks in your brain, you start to worry about it. And then most of your energy goes into worrying than executing those tasks.
The whole purpose of lists is to dump your brain on paper. Then execute them, if you are interrupted you know where to start after you get back. In other words they work like stacks in software.
>>Lists give the illusion of accomplishment.
Lists of completed Lists are definitely an indication of accomplishment.
>>Lists make you feel guilty for not achieving these things.
That is why they work in most cases.
>>Lists make you feel guilty for continually delaying certain items. Lists make you feel guilty for not doing things you don't want to be doing anyway.
Why do you put them on the list anyway. Lists are not books used to maintain vision statements. They are tools to put actionable items whose progress you can measure.
>>Lists make you prioritize the wrong things.
Lists are dumb. You create them. How can they make you prioritize wrong things.
The problem is over zealousness. As I said before a list is not your vision statement.
Write things in the list what you want to do. Not what you dream about, or want to have 10 years from now.
David Allen covers this in his book, These sort of things should ideally go in a 10 year plan or whatever year plan and its progress must be reviewed every Saturday or so.
>>Lists are inefficient. (Think of what you could be doing with all the time you spend maintaining your lists!)
Think of what you could not be doing if you didn't know the time needed on what you have been doing, doing currently or likely to do in the future. How will you know where you could save time and use it elsewhere?
>>Lists suck the enjoyment out of activities, making most things feel like an obligation.
This is true if you work at a resort. But if you are somebody who has to 5-6 meetings, go for status updates, answer 20 emails, solve two bugs, tend to your home and track your personal projects all in a day. Without getting organized you are not going to make it.
>>Lists don't actually make you more organized long term.
Because you stop just there. You don't have a list of lists.
>>Lists can close you off to spontaneity and exploration of things you didn't plan for. (Let's face it, it's impossible to really plan some things in life.)
That is why you should run your life like an agile project and not in the waterfall model.
>>If you can't wake up every day and, using your 100% original equipment God-given organic brain, come up with the three most important things you need to do that day
Most people don't have 3-most important things in life.
In fact lists exists because most don't have 3-most important things in life.
There are three items that I do every single day:
1. Write 500 words a day, in which I usually spend writing about half baked random things like "fear inoculation", "legoization" or "Conquering Rome with Science". You can see random stuff at http://kibabase.com/articles/notes-and-thoughts
2. Walks 10K steps a day. I did it for an experiment that supposed to last 30 days, now it's in 37th days total. I am trying to build an analysis tool that output pretty JSON of my data, but somehow keep neglecting it. You can read what I have so far here: http://kibabase.com/articles/self-quantification#interventio...
3. Measure my step count, my blood pressure, my weight, and my pulse.
Well, actually there's a fourth item: read a book everyday.
It turns out that I didn't do the million other things that I wanted to do but never do consistently, including coding. Coding should at least be a priority.
I can say with a straight face that even writing 500 words a day about random things makes progress. Out of the random things pile in my Notes and Thoughts page, I eventually spun off two essays, one of which is about my self quantification effort in which I am currently doing 10K steps a day, the others is for logging the ideas of the 16+ books I read so far this year. I expect to add more essays to my site over time as essays mature from my primordial soup of random ideas and notes.
These activities help keep me healthy and sane. It also makes me feel like a badass, even when I am not.
Todo lists are the most basic form of a tool for triaging and prioritizing your work. They are a minified, single-threaded version of issue/bug-tracking systems. If you don't need a todo list (or an issue tracker) to remember all the details of what must get done, you're either superhuman, or you're not working on a hard enough problem.
If Jeff hasn't found a way to make todo lists work for him, too bad.
In fact, that's my personal takeaway from GTD- that the list is there to stop you from thinking about upcoming stuff all day, because it's saved somewhere and can be shuffled at a calm minute.
What I want to do is best decided in the moment, when all the information (e.g. my mood, availability of other people) is available.
The exceptions don't take more than maybe a couple of minutes per week.
I feel that todo lists help me get through all those so called errands - stuff I want to get done, but might not particularly enjoy the "doing" part. Otherwise I would forget many of them. But in case of things that really matter for me, writing down TODOs feels silly, as I'd rather actually do the stuff, not write about it.
But between work, university and my S.O., I have almost no time to actually do anything from that TODO list, so it up being a list of stuff I could have got done if I had a 40-hour day.
Upon reflection, a smart person would say:
A) I really should write these things down somewhere, like maybe on a todo list!
B) Nah, she'll be right, I won't forget next time!
Hint: the answer is "A"
http://markforster.squarespace.com/
One thing that's very cool about Mark Forster's approaches is that they have always had the notion of going with your intuition on what you should be working on and they've also had a mechanism of throwing stuff away from the list.
I totally agree about todo lists generally becoming giant Katamari balls. I personally have no issue with the idea of having todo lists as long as you can throw things away comfortably.
There is a big difference between knowing your priorities (which Jeff describes) and knowing all the little things that need to be done or will cause problems later (what Jeff misses).
I find it very important to have the To Do lists to keep track of all the little promises and expectations. Many of the great leaders I've worked with have done similar. Those that don't have someone else keeping track of their commitments.
Certain creative jobs can be isolated, but jobs that require interacting with others require keeping track of all the details.
Like all things, you can go to far with todo lists. Todo today lists have never worked for me. But I'd be lost without a list of appointments and minor/forgettable actions (filed according to the context in which they need to be done).
The trouble with to-do-ing the minor/forgettable stuff is that, over time, you end up with a big-ass Katamari ball of minor/forgettable that is kind of oppressive.
Or you become a slave to getting minor/forgettable things done, out of fear that they will inevitably overwhelm you -- which they will, since there are always a zillion minor, forgettable things you could be doing.
Which is worse? I think they're both pretty bad outcomes.
There is another option as well as the two you list, which is to remove items off your list as you can't/don't want to do them. Since I never have any more than half a dozen items on any of my three calendar/todo lists I never feel particularly oppressed. But I know that if I didn't have those lists there I'd be forgetting stuff all the time and letting people down - and I know because I never used to use a todo list.
I think the real secret is to disable internet access on your dev machine (and instead keep it in another room), but I find a todo list is all about keeping in flow by any means necessary and avoiding the subtle allure of the web.
Try an app that helps you keep your goals in mind in your everyday workflow.
http://weekplan.net (my app) is inspired by the "Put First Things First" methodology from Covey, and it works for many.
Then I tried "Things", and I've been using it ever since. It just has the right combination of features that do not get in the way if you don't need them. So it might be just a case of getting something that matches the way you work.
Real life is too complicated and too important to just forget stuff.
I work better with them.
I lost a domain name to a squatter before because the "RENEW YOUR DOMAIN NOW" emails ended up in my junk folder.
Normal "tasks" and creative decisions tend to bubble up and sort themselves out.
But a to do list, to me, is something quite different: it is a contract that This Thing Must Be Done Eventually. I find that this is rarely the case. The things that "must" be done will get done whether they are on any list or not, e.g.
What is the most important thing in life? http://www.codinghorror.com/blog/2005/03/on-necessity.html
That is not to say I think most or any todo list applications are worth while - I think the vast majority of them are really terrible as they are far too complex or constraining, require too much overhead to do the simple things like creating a task or changing a task status, are too opinionated about how you deal with your todo items (like forcing schedules, reminders or due dates), lack hierarchical structure and lack any kind of free-form input.
The best (and only) worthwhile app that I have ever encountered is not even a todo list app - it is simply a Google Docs document that I leave open in my browser on various computers. I use whatever kind of free form structure I want to dump my thoughts and "todo" things that I feel like at the time - and annotate task status with free text tags and tokens that suit me as I go. Various parts of the documents will at times look like todo lists, plans, schedules, itineraries, work-flows, inventories, idea-lists, collections and more - and it is constantly evolving as the state of my work and activities evolve. Important, current stuff goes at the top - for example my first two blocks are titled "Appointments" (dont want to forget those!) and "Today" (what do I absolutely need to do today). Going down the blocks tend to reduce in priority/importance - for example my very last block is called "Learning" which is a list of various things that I would like to learn more of when I have time (not that learning isn't important, but it is a long-term background activity that I don't need to be reviewing every day).
If I have some thoughts or plans that I feel are important, but I dont want to focus on them now, I will just dump them in the document and move on to something else. Later I can come back and review that dump, maybe translate it into actual todo item or evolve it into a planned work-flow. This "thought dumping" is a well researched (there is a quite famous book about it I believe) way of self-management and I find it very effective.
The most important thing is there is no structure, form or anything other than what I impose on myself - you literally get a blank, empty page and that is it.