views:

1156

answers:

14

At the start of the day, I often just fire up my IDE and work on my current project until I get tired or finish a certain part of the project.

But often that doesn't work out too well. Before I get started, if I don't know exactly where I left last time or what I'm going to do today, it feels like I'm expected to take on the entire project in one session, and that can cause me to procrastinate.

I'm wondering how other people plan/schedule their days work. When you turn on your computer at the start of the day, do you just start your IDE and work on whatever for the next few hours, do you consult your manager/boss for what you need to do that day, or do you make a weekly/daily todo list? I'm particularly interested in how employees plan out their daily work, as I'm a freelancer.

How do you do it?

+4  A: 

At work it's easy. I use trac to plan my project, and just work on items as is appropriate. Oftentimes I will write what I was last doing, when I leave for the night, and review it in the morning so I can trivially get started.

At home, on personal projects, my planning time is more easily distracted, so I force myself to sit down and listen to some music with a pen and paper. There I plan out what I need to do (to be honest, I sometimes do this planning during the day, while at lunch), and then I set about those tasks.

I finding writing things down, drawing pictures, etc, really helps when planning things out. And, of course, using some sort of ticket/feature/whatever tool like trac really helps as well, to break things into milestones, and so on.

Noon Silk
+1  A: 

stikynot.exe !

Not really though. I tend to make a bulleted list in notepad, or a similar program. Saves in a dated file. I've tried other more complicated programs for planning, but at the end of the day, I just want a bulleted list that is quick to open and easy to save/ move around. Ascii text files never had portability issues.

bobobobo
+2  A: 

At the moment my day doesn't get planned at all. Its awful and it leads to a lot of wasted time. I have a manager who consistently has new, higher priority jobs for me to do which means a lot of half-finished issues and wasted resources. Its no use trying to plan at all as it doesn't happen.

In the past I have used ticketing systems which I love. Just a list of issues at a high level, in each one, when I am first assigned it, I will brainstorm everything that needs to be done and list it in the issue, then I can cross them off. So, my day's planning is not restricted to just that day, more that issue and I tackle the issue's separate todo's one by one.

Christian
Your rep is 666!
Click Upvote
And your name is christian! lol
Click Upvote
Oh man, there was just some crazy shift in our dimension...
Christian
Fixed that for you ;)
RodeoClown
Thanks Rodeo. :)
Christian
+1  A: 

I'm a student, so its different, but there are basically 3 aspects to my planning. The biggest oddity is that it is completely real-world --- no computers, nothing.

The first is a monthly, paper calendar that is bound such that it is basically the size of an 8.5x11 when closed, and when open any two pages form the appropriate month. This is big enough to fit all my deadlines (homework, projects, tests, doctor's appointments, etc.), but small enough to fit with all the normal folders I have.

The second is a tiny notebook, small enough to fit in my pocket. That's basically my day's to-do list, and therefore (at the end of the day) my what-to-do-early-tomorrow list. I keep it in my pocket, along with a pen, at all times. When I forget it, I freak out a bit. :) I'll often use it in conjunction with my calendar. If I find my to-do list empty, I'll look at my deadline list and, say, "work 2 hours on project X" today, or "go to gym (for once)", etc.

Lastly, for big, long-term projects, I keep an entirely separate spiral notebook. This is more like a journal than a to-do list or calendar. I only use this method for my own personal projects, because I enjoy writing about those. However, I found it invaluable for brainstorming. As far too few people are willing to listen to me talk about my projects, [:(] the notebook is a poor substitute, but a working substitute, for "someone to bounce my ideas off of". And allows me to end sentences in prepositions?

Agor
+8  A: 

I like to do my planning in bits.

First, i follow a similar pattern to the the one outlined in this question

http://stackoverflow.com/questions/784461/how-do-you-clear-your-mind-after-8-10-hours-per-day-of-coding

  • At the end of the day I take note of what i'm doing and what needs to be done. ALso, i like to totally shut down my computers. That way I start down with a clean slate the next next day and just look @ my notes to see what comes next, this helps eliminate clutter.
  • When I get to work in the morning I try to start by just jumping in and doing something by looking @ what was left from my list from the previous day.
  • I try to acccomplish something then take a short break (of some kind) such as grabbing a coffee or answering a question on SO
  • throughout the day as things come up i'll either handle them right away if I can or persist a note somewhere to be processed later.
  • After I've made good progress on a couple items, i'll do some planning and create new items if nessesary based on notes I've taken or random ideas that pop into my head.

I'm learning to practice GTD (image here) and this is loosely based on that.

TJB
Nice work on making a list the day before, makes it so much easier to 'just start' in the morning. I am trying to practice GTD too, but find myself slacking off lately.
Christian
Yeah, i like to get something done to feel like progress is made. Well I'm just reading the book now, and i'm just trying to incorporate things little by little, like the 'next actions' and what not. if you haven't picked up the book its worth the 10 or 12 bucks for the paperback. I think the author is inspiring and always keeps things in context, plus its a good read. Best of luck!
TJB
Thanks! I have the book, almost finished it a few months ago and got sidetracked... Bleugh. :)
Christian
I don't agree with the complete shutdown. A full restart works just as well if not better so you updates/backups can run at night.
ctrlShiftBryan
@ctrlShiftBryan That would work too, as long as you have a fresh start. As far as running @ night, its a balance between backups/tasks running and saving power, but another good suggestion!
TJB
+1  A: 

I usually set daily target for every day in a way that transform a milestone into small daily targets , and spent half an hour in the morning in setting my todays target and reviewing my yesterday target that was achieved or not , i found this method useful as it has helped me at meeting my time line in bigger project.

Adeel
+1  A: 

I use a variation of Getting Things Done (http://en.wikipedia.org/wiki/Getting%5FThings%5FDone). As a media for my lists I use TiddlyWiki (http://www.tiddlywiki.com/).

jens
+1 I love tiddlywiki! I have been trying out monkeypirate tiddly wiki as well as mGTD. For a simple to-do list I prefer my plain vanilla TW. I've used plain text files, mediawiki, mindomo.com and even a whiteboard/paper list... TW is the best (at least for me)
weiji
+11  A: 

I found this tactic particularly useful: I leave open a Google Docs document called 'todo' on both my work and home PC running in a browser (usually firefox).

The document basically lists a series of things I am working on, and I use simple separators like '============' to group common tasks in blocks. I don't just limit it to work stuff, I also put home stuff on there like errands and phone calls I need to make. I prefix each line with special characters often to signify important or urgent tasks, and when I have completed a tasks, I usually end the line with [DONE]. E.g.

** fix critical bug in main app
** pick up the milk
- continue working on feature X [working on GUI aspect]
- meet with boss to discuss progress [DONE]

Each morning I review the list, and remove any DONE items from the previous day. I leave them there for at least a day, simply as a reminder of what has been completed. I then address the critical items first, before moving onto other items as I see fit.

After I get home and have taken a break/eaten dinner/exercised/whatever, I tend to sit back with a clear head and think about what work I did that day, and what I should be focusing on the next day. I often have a very different perspective at that time, rather than in the middle of a hectic work day, and can generally sort things out much better. Most of my good ideas come at this time - it's during the day I actually work on them. I basically add new items, consolidate existing ones, and generally clean up the document so that it is neat and coherent enough to be absorbed on a Monday morning. I generally don't spend more than 10-15 minutes a night on this.

Since I started this approach, I have found it extremely effective in managing my own work and making sure I don't forget or overlook certain priorities. I have tried numerous task managers and todo lists, but I always come back to the google Docs document for the following reasons:

  • It's completely free-form. I can arrange and mark things as I like.
  • I don't even have to worry about saving - I just make an edit and it saves automatically.
  • By having the same document open at work and home, there is no synchronization issues, both instances are always updated to the current version.
  • It is version controlled by Google docs. I can go back to earlier revisions if I need to (but I rarely do)
  • It would be easy to set up a shared document with any number of people (although I haven't done that yet)
  • I don't find the lack explicit task completion date tracking an issue: where there is a cold due by date, I simply write the date next to the task, and track it visually when I go over the document. I find the restrictions imposed by dedicated task managers far outweigh the benefits of automated reminders and what-not they can do.
megamic
Very smart...:-)
Matt
+1  A: 

Start with Stackoverflow and then wing it from there :-)

benPearce
+1  A: 

Recently, I have found Scrum very helpful and motivating. As planning systems go, it's not too much work. I start by creating (and maintaining) a Scrum backlog and setting priorities. I don't keep a separate defect backlog, rather I have a bug tracking database that I pull high priority defects into a sprint, when appropriate. Work from the backlog is prioritized every so often and then organized in 'Sprints'. Officially, a Sprint is supposed to be 30 days, but I do a lot of independent work, so I organize each sprint around 'the job' and if it's less than 30 days, fine. If it's more than 30 days, I try to split it into sprints of equal size. i.e Two 15 day sprints or whatever.

What's really been motivating for me is to track my actual progress daily against my projected progress. There are lots of templates out there - I found this one from Richard Bank simple and effective.

DaveParillo
+1  A: 

I have been following the Covey Quadrant approach for years after using several methods from bulleted lists, sticky notes and project management tools. The book First Things First by Stephen Covey explains the whole approach. You can even get the PlanPlus plugin if you use Outlook.

The idea is to break down your tasks according to four quadrants:

  1. Important + Urgent = the reactive stuff you have to do because it is an emergency (e.g. address an issue impacting the ability for users to use your app)
  2. Important + Non Urgent = the "desired" quandrant, i.e. the things you need to proactively address for the future
  3. Non-Important + Urgent = help your teammate who is stuck on an issue
  4. Non-Important + Non-Urgent = this may be your mental break activities!

Then at the beginning of every day you re-assess your task allocation and adjust their quadrant and sequence. I include tasks for various projects that may need to go into parallel, and personal tasks. I also maintain a one-pager timeline by week where I plot key milestones I need to make across projects.

But you do that once a day and stick to it. This is my morning routine, I then print the tasks and write on that page throughout the day. I carry it with me everywhere so I can easily jot down new items or add details. This system has worked for me since I started to use it in the late-nineties.

Philippe Monnet
+4  A: 

Planning my day:

  • Daily list of what I am going to do.

  • Set/review/modify goals for yourself (daily, weekly, bi-weekly). Make sure the goals are also in line with those you are coding for or you may find you have wasted some time.

Keeping on track:

  • Remove as many distractions as possible to focus on tasks. Turn off email, turn off IM, etc... even if for a set period of time and then during a break check them.

  • Take breaks and be aware of your body. When we are tired we don't think as well and will make more mistakes, become frustrated more easily, etc...

  • Learn to use the 80 / 20 rule to your advantage. I don't mean skimp or be lazy. Often though we will work our tail off for that 20% when it wasn't necessary.

End of Day:

  • Write down where I am on something I haven't completed

  • Write down any new thoughts that need addressing that wasn't on my list already

  • Take off items completed.

  • Set/review/modify goals for yourself (daily, weekly, bi-weekly). Make sure the goals are also in line with those you are coding for or you may find you have wasted some time.

Bonus that I have found necessary to plan and do often:

  • Take time to learn about other coding techniques, tools and programming wisdom. This I have found to be crucial to my development. It's to easy to just code away and feel productive. What about what could be if you just had some more knowledge / weaponry under your belt to bang out that next widget. I know this one really sounds counter productive but it really isn't. Knowledge/know how is our real currency. The more we know the more we can make a better decision about how something should be done and do it faster. Although this may not have to be done every day. It is good none the less to do purposely. I find it also re-energizes me as an added benefit.
klabranche
+1  A: 

I plan per week, not per day. It allows me more time to finish the important stuff.

Also, I generally start thinking while driving to work. It's 80 kilometers (50 miles) from home to work so it takes me about an hour to come up with a rough plan for the day. I then turn on my PC, start Outlook and check the calendar for updates on important meetings and emails that need responses. Then I start Visual Studio and Codegear Delphi, XmlSpy and the Vault client before I actually start to work. (Even if I don't need VS or Delphi that day!) Then, I start Google Chrome, check the RSS reader for latest news headlines including the SO RSS feed and I start to work.

For me, work is mostly thinking and designing, which can be done quite well away from the computer. The actual typing of code is about 25% to 40% of my daily routine. Sometimes even less.

Workshop Alex
+1  A: 

I use Microsoft's outlook (or any calendar for that matter) to set appointments with myself to do stuff I want to get done. for example, I'd set a 3 hour appointment to write some document, or review some code, or write a piece of code, whatever. this is also very good to make sure the time is set for what you planned, since your have all your meetings in the same calendar. if you use exchange, you can also mark the appointment as "Busy" or "Out of office", and then (hopefully) no one will send you a meeting invitation on that time slot.

In my previous work I had so many meetings, that was practically the only way to have some time by myself to really work. in my current work, it's a convenient way to see what I'm going to do this week, get reminders, etc.

Ami