Take the 2-minute tour ×
Personal Productivity Stack Exchange is a question and answer site for people wanting to improve their personal productivity. It's 100% free, no registration required.

At my current company my programming position has recently changed. In the past it has been a technical/functional position where we choose the project to work on and followed it from blank IDE to teaching the end users how to use it. Now, my position is only programming with projects given to me to work on as they become a priority.

The problem I am running into with this is as priorities change daily I am having to switch between multiple complex projects that require a little more then a post it note to remember where I left off.

What strategies are used to efficiently keep track of project completeness when project priorities get shifted around?

share|improve this question

migrated from programmers.stackexchange.com Apr 4 '13 at 21:19

This question came from our site for professional programmers interested in conceptual questions about software development.

2  
    
You might consider heading into chat and asking polling questions to get ideas. Questions that are polls (asking for ideas where all of them are potentially correct or right) are a poor fit for the Q&A format that Stack Exchange uses. –  MichaelT Apr 4 '13 at 18:36
    
I read through those posts before asking the question but they leaned on the side of if multiple projects should be run at the same time. Having accepted that having multiple open projects is a necessity at my current workplace I was looking for strategies to handle this. –  Danial Wayne Apr 4 '13 at 18:55
add comment

2 Answers 2

up vote 1 down vote accepted

I worked for a government shop in Montana for about five years. They had absolutely no process. So, the longer I was there, the more responsibility I gradually took on. Eventually, I was working on 5 or more projects a day. On top of that I was also doing quite a bit of user support, project management and Q/A. A man of a million hats.

Originally, I tried to track my completion using the 80% rule. It seemed I was always 80% done with everything. Usually was done with coding but I still needed to deploy my code and get through some initial user feedback. Time spent on deployment doesn't seem as "productive" as writing more code, so it never seemed to happen.

Eventually I developed a more meaningful way of tracking work and I use it to this day. I started making a cue card for every task that I needed to do in order for a project to be finished. I could break a cue card up into as many child cue cards as I wanted, whenever I wanted. I put the cue cards somewhere that my managers could see. I used the side of my cubicle but just putting them in a stack on your desk works, too.

Whenever I started working on a card, I put it on the In-Progress stack. When I finished, I moved it into the Complete stack. I even had a stack for interrupted tasks (for when your boss comes over with a great idea or a user's machine set on fire).

I received a lot of positive feedback for this approach. I got various pizza parties for doing exactly the same amount of work. The idea is that this approach helps management realize just how much work is actually being accomplished.

I'd recommend writing up as many cards at a time as you can. It can take a little time and experience to come up with a stack of cards. Just remember you can break cards up later if, while developing, you realize there is more than one thing involved. The bigger the stack, the more it looks like you're getting done. It also helps you come back after a break and pick up where you left off.

I've found just having a card say "do x" helps me stay on task. Without cards I tended to spend too much time switching because I had to "decide" what I wanted to do next. Just from personal experience, I've notice a massive increase in productivity and a major decrease in stress - that feeling like your lost in a sea of work.

It turns out there are a lot of awesome tools for creating "cards" electronically. I've only worked with a few tools that simulate the "card" well. I still prefer to see a pile of cards on my desk. The whole Kanban workflow involves similar cards and involves a pull-based system for limiting the amount of concurrent work. I guess a lot of people have stumbled upon the same thing that I did

share|improve this answer
    
Using cards does seem like it would solve the problem of loosing track several pages back in a notebook. As I have a small, sometimes shared, workspace ill have to look for an electronic version. –  Danial Wayne Apr 4 '13 at 18:53
    
I use Trello in this way –  Ozz Apr 4 '13 at 19:14
    
@Ozz I use Trello, too. –  Travis Parks Apr 4 '13 at 19:49
add comment

My first strategy would be to approach management and request fewer priority changes. As you've noted, there's a cost associated with switching context, and everyone loses. Tell them that cars have to slow down to make corners and you'd get more done if permitted to finish a task before starting the next.

If you google "programmer flow" you might find some helpful ammunition for that argument.


My second strategy would be to keep a running to-do list, and for every task I start I'd begin by writing down what I intend to do. If coding, pseudo code is faster to write than anything else. As you finish the "inch-pebbles" (milestones, only smaller) you can mark them somehow or just delete them.

Writing all this stuff takes time but it's self defense and in the long run you'll spend less time writing than you will scratching your head and cussing as you try to remember where to pick up.


A possible third strategy is to let new requests "ripen" before working on them. I once had a co-worker get swamped with trivial change requests for a web app. The owner would ask her to replace large images with small ones "because the Internet is slow today", then later ask them to be restored and other nonsense. My co-worker started tabling the requests and would only begin working on them if the owner inquired a 2nd time.

I don't know if this is an option or not (& I'm sure some people would be horrified at the idea of not immediately jumping on a new task), but I'm throwing it out anyway.

share|improve this answer
    
I do currently keep a running to-do list in a notebook to the left of my keyboard but between the many projects it is easy to loose some information a few pages back... IS it paper you use or just a text file? –  Danial Wayne Apr 4 '13 at 18:10
    
I used to use paper, but now it's one text file for the master to-do list, and per-project text files (usually stored as part of the project) for coding efforts. –  Dan Pichelman Apr 4 '13 at 18:16
    
I've used colored index cards (colors designating source, project, complexity, system area, etc...). I work on the top one. Managers can come in and reorder them if neded. Post it notes on them designate the current status (working, blocked, etc...). A section at the top (pencil!) gets scribbled in to show how complete. Paperclips group related items that happen to need to be done in a sequence. This has the noted advantage that there is only one source and they have to physically move the card to change its priority. –  MichaelT Apr 4 '13 at 18:35
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.