Fog Creek Software
Discussion Board




Smart, But Don't get as much done...

I classify myself as a the kind of developer who's smart but doesn't get as much done as I should. 

I don't think that people are static in nature, therefore I wish to move toward the goal of becoming the kind of person that is smart and gets things done.

Ideas?

I've started countless (hundreds by now?) personal projects and rarely finished anything that took any longer than a few days to write.  Usually I set out to write something, a utility, an app, figure out the challenging code and/or fun design stuff, and then when it comes to doing the mundane/grunt work, my motivation & attention span for the project goes to zero. 

Is this just me?  If not, how do most people get around this?

At work, it's different, I have a set project that's defined/set-in-stone, and it has to get done.  I digress.

Anonymouse
Thursday, September 25, 2003

I am like you in this respect.

I am smart. People know that and respect me for that. They usually come to me for advice.

The problem is, I can't focus for very long, unless I have the boss looking over my shoulder. :-(

I get bored easily, etc.

I have noticed that it helps me a lot to keep a small paper notebook with me at all times.

For each project, I dedicate a few pages, and whenever I interrupt a project, I write down exactly where I stopped and what the next step should be.

When I continue an interrupted project, I simply read my notes about where the project has stopped, and so I can start working a lot easier.

Also, when I have concentration problems, it helps a lot to always know what the next step is.

Not a native English speaker
Thursday, September 25, 2003

First of all, it's important that you get the right mindset.  It's a common tactic to avoid failure by simply never trying.  Then you end up one day telling your grandkids about all of the great things you might've done rather than the great things you accomplished.  Realize that you've failed when you don't get things done.  At work, your boss will be happy to let you know this is true.  At home, you're the boss. 

Going along the same line as being your own boss, it's important that you give your home projects some level of formal structure and set goals.  Get organized about what projects you want to do and when you want them to be done.  Mark it on a calendar or put it in a spreadsheet or whatever and then keep it somewhere obvious.  Print it out and stick it on your wall. 

Goals are important because they give you something to focus on and give you feedback on how well you're doing.  You should set multiple levels of goals.  Figure out your major goals.  Is a given project intended to be a commercial release, a personal-use-only utility, or just a learning experience?  There's no point in wasting time on the mundane stuff if your goal for a project is mainly to learn about the challenging stuff. 

Once you have major goals, break them down into progressively lower level goals.  Set milestones for longterm projects -- "I want this major functionality figured out and in place by next week", "I want to be able to send this to some friends to try out by December", "I want to be able to sell this by next Summer". 

Create some task lists.  Break the tasks into very small pieces.  It's much easier to find the time and motivation for a five minute mundane task than a five day mundane task.  It's a great motivator to be able to check things off of a list when they're done.  Keeping a list of tasks on paper or on a computer frees you from having to keep this list in your head. 

The point of all this isn't to make a major project out of managing yourself but to get things down in a concrete form. 

SomeBody
Thursday, September 25, 2003

Very interesting advice - I noticed this too:

TO-DO lists tend to have some tasks which take two days and some tasks which take 20 minutes.

At the end of one day, you may check 20 tasks as done, because they were 20-30 minutes tasks.

At the end of another day, you may have worked like hell yet not check any tasks, because you have worked on a task that is not yet complete.

This is why it's good to have fine-grained tasks.


Also, I have found that it's good to think a lot about your goals.

Every 6 months or so, I think a lot about my goals - this means I think about my goals for, le't say, an average of 2-3 hours every day, for 2 weeks.

I invest this time, but at the end of the process, my goals are very clear in my mind. Also, I am 100% sure I want those things.

Not a native English speaker
Thursday, September 25, 2003

It's all about lack of _clever_ development tools and languages (one of or both). You shouldn't do manually what is actually obvious.

So the real task for you is - to develop such tool. But you need to do it so, that you will not loose interest after a day :) That means after a day you should use this tool to continue development.

Nekto
Thursday, September 25, 2003

The hardest thing to do is to create something new.  The second hardest thing to do is to finish anything.  My limited experience is that the overwhelming majority of people are not finishers.

One suggestion a friend gave me years ago was based on the work habits of some famous author whose name I falied to memorize.  This author had a day job and so he had to write his own stuff in his spare time.  He made a rule that for one hour each night he would sit in front of the typewriter, whether he could manage to write something or not; there were no excuses.  At the very least he would stare at a blank page for a solid hour each night.

I have found this helpful over the years.  A year's worth of one-hour nights produces a heck of a lot more than once a month alllnighters.

Name withheld out of cowardice
Thursday, September 25, 2003

You need to learn how to finish things.  It's really not that hard.

1.  Don't start other things in the middle of something else.

2.  Put one metophorical foot in front of the other 'til it's done.

Do that and it will get easier with experience.

don't stop
Thursday, September 25, 2003

I don't quite understand the original poster's problem.

He (she/whatever) says that he has no problem getting things done at work. The complaint is about not completing personal projects because he can't bring himself to do the mundane/boring implementation parts.

Well, so what? Why is that a problem?

By definition, any personal project I do is something that I'm doing for fun (if it wasn't, I'd want to get paid for it; hence, work). When it stops being fun, why continue it?

So long as you can recognize the difference between work that people are paying you to do and personal projects that you're just doing for your own amusement, I don't see a problem with not following the later through to completation.

Bill Tomlinson
Thursday, September 25, 2003

You may want to see a doctor. Their could be
brain issues involved. Seriously.

compile error
Thursday, September 25, 2003

Bill, this may be true for you.

But there are people (me included) which like to finish projects.

Ok, a project may be started for fun, but I also want the satisfaction of having a solid project completed in my spare time, and maybe sell the project and leave my day job.

This is why I don't like open source - they weaken our ability to sell software.

Will
Thursday, September 25, 2003

Anonymouse:

>> At work, it's different, I have a set project that's defined/set-in-stone, and it has to get done.  I digress.

My problem too.  I'm surprised that nobody has mentioned this fact and considered it in their response.

What I have experienced is that the *paid* work is what I take seriously. The personal projects don't get done because I apparently don't feel "responsible" for them at a deep emotional level.

I think this is the crux of your problem, and probably mine. IE: it requires an external need, and preferably other interested parties, to trigger the motivation to finish any project.

Another (more charitable) interpretation is that deep down, you don't believe that the personal work is necessary or that it fills a need or makes any difference. That is what happens in my case.

Maybe this is a way of saying that the personal projects don't instill a sense of "must get done" that professional projects do? And that if you could correct this and create a sense of urgency, then you could get those personal projects done?

Just my $0.02.

Bored Bystander
Thursday, September 25, 2003

I'm guessing that what you're lacking is a sense of closure. Since the mundane tasks bore you, there's no sense in spending your personal time on them if you don't get satisfaction from it.

What you could do is seek out a junior programmer and act as their mentor. Have them do the mundane tasks. You would get the sense of closure, and they would receive mentoring.

Nick
Thursday, September 25, 2003

Well given the state of the job market in some areas, maybe you should get some unpaid "interns" to "earn job experience" to take care of the mundane tasks? :-)

Really, though, I think this is pretty universal (and it isn't a "brain issue" -- overcoming challenges is fun and rewarding, but unless you really care about the uncertain payoff that completion might bring the grunt work just isn't all that motivating).

Another common issue for lateral thinking software developers is something that I've heard referred to as "Babbage Syndrome"  - It's a propensity to never finish anything because there's always some circumstance or exception that needs to be built into the design. I've had many projects derailed by that because while I start intending to achieve A in X situaions, soon I am personally uncomfortable with the project unless it can achieve A, B, C in X, Y and Z situations. Knowing that I don't have time to do them all I could scale it back, but by then I've convinced myself that anything less that ABC+XYZ is garbage that isn't worth the effort to do.

Dennis Forbes
Thursday, September 25, 2003

Will,

Well sure, if you're getting satisfaction from the completion of the project then the anticipation of that will prompt you to get through the boring parts. I don't believe that I was saying that you should always drop a personal project when you hit a boring patch. I was saying that if it's not fun and you don't anticipate that you'll get any satisfaction from completing the project then there's no point continuing just because you might feel guilty for stopping.

And in regards to hoping to make some money of a personal project, well, if that's the plan then it's a whole different ball game and it's really a personal project anymore (at that point you've, in effect, become an employee of your own one man company so all the reasons for working for money come into play).

Bill Tomlinson
Thursday, September 25, 2003

Smartness is overrated. Success depends much more on hard work and stamina.

Fighting laziness is the most difficult task we all have to face. Recognition of the fact is the first step in beating it. Almost everyone knows what they really should do to get things done, but 99% doesn't act accordingly. How many hours do you waste browsing the web, finding any excuse not to do what we know that we should do? Doing nothing or doing it later is such an attractive option.

The solution: Stop a few times a day. Stare outside your window and think what really is your top priority right now, don't lie and just do it. It helps to write it down. It's that easy.

jan Derk
Thursday, September 25, 2003

I have the same problem as the original poster, and am working to solve it.  Here's what I do, and it's helping:

1. Choose smaller projects.  I tended to tackle really huge, difficult problems, which I could never finish.  I then started choosing small projects, and finishing them.  They weren't quite as impressive as the big ideas, but I felt highly satisfied upon completing them.  They also improved my sense of what I could reasonably finish.

2. If you're in the middle of a project and think up another, don't start it.  Shelve it.  You can write down the idea, but resist the temptation to dive into it.  Instead, work on your current project.  Tell yourself that you can "get to" that other project when this one's done.

Best of luck.

The Pedant, Brent P. Newhall
Thursday, September 25, 2003

Anonymouse, it's not a problem or unusual. There are always lots of quick tasks to do, and they invariably push aside the bigger tasks.

What I started doing a few years ago was identifying the big tasks and then accepting that I wouldn't do anything else until I had either completed that big task or put in most of the day's work on it. It is sort of like a licence to be lazy, but I'm not really being lazy.

As part of this technique, I do make little lists of things to do, but I identify the one or two important things, and I'm quite happy if the rest of the tasks do not get done.

Also, as someone else suggested, I document my work in notebooks. This is really useful.

JM
Thursday, September 25, 2003

One thing I've been doing on personal projects is to pay other people to do the work I don't want to do.  Ok that's expensive, but I figure I can get a good return on investment by keeping myself focused on my core skills.

anonymous
Thursday, September 25, 2003

Great question, Anonymouse!

I've been thinking the same thing about myself lately. Here's a couple things that I've started recently that I think are helping. First is that I've started excercising in the morning before work. I find that I have more energy during the day, so when I get home from work I don't want to be a couch potato, I want to be productive. Second, I'm taking a master's level CS class at night. It's something I've been meaning to learn more about, so that's part of the 'getting things done.' But I think the bigger benefit has come from having something extra in my schedule that 'has to get done.' I think it's exactly what I needed. The time commitment is small enough that I can fit it in around work, and my social life, but big enough that my free time feels a little more scarce. This turns out to be perfect, because the scarcity makes me use it more wisely.

spineless
Thursday, September 25, 2003

Nothing in the world can take the place of persistence. Talent will not; nothing is more common than unsuccessful men with talent. Genius will not; unrewarded genius is almost a proverb. Education will not; the world is full of educated failures. Persistence and determination alone are omnipotent. --- Calvin Coolidge 1872

Of course, how to get persistance is the question.

Perhaps it ties in with the other thread about household chores. Will a Pavlov / Skinner-esque rewards system work? Listening to a book on tape becomes associated with doing household chores so you do them?

Perhaps it's a "learned helplessness" where in certain environments, accomplishments are so few and far between that we give up trying.

Or maybe in a sort of Fight Club sense, we've never hit rock bottom, and we'll sabotage ourselves until we've reached the point where we know we can't accept any worse for ourselves.

Strange nobody brought up the Crossing the Chasm article that Joel wrote on the topic of getting started. Whoops, he titled it Fire and Motion: http://www.joelonsoftware.com/articles/fog0000000339.html

Natalie Goldberg, who wrote a few good books on writing, said that you should find a writing buddy, meet them at a cafe, and write. It's important to have the outside structure of someone waiting for you to inspire you to get off of your own ass and do something. I think it also doesn't hurt to have a seperate location & time you associate with a certain behaviour - your office.

Some sleep therapist I read once (I've always been an insomniac) said don't read in bed, don't watch TV in bed because you'll begin to associate bed with things other than sleep. Well, do you also game on your computer? Surf the web? Maybe create 2 different ID's with 2 different color schemes and access to 2 different sets of programs, one for work and one for play.

I think having a time & a place to do stuff is important... I don't know if the idea of "make work more comfortable than home and people will spend more time at work" really works unless you just need warm bodies, like a service industry, where the people come to you.

Maybe it's important to, when you have no work to do, go home. Go for a walk. Don't hang around the office because when you do have work to do, you'll be too comfortabel to do it. You'll go online to look for an answer to some programming problem and end up reading the latest Joel on Software and then participating in his forum, and before you know it, hours have gone by and you still haven't answered your programming problem because you've trained yourself to mindlessly surf anytime you launch your browser, or even sit at your desk.

"Pair Programming" seems to work. We're probably genetically programmed to be social, so when I'm working out a problem with someone we get a lot done... A lot more than twice what one person could do. When I'm alone.... I get bored.



When I googled that quote, I found a page with a few others:

Thousands of people have talent. I might as well congratulate you for having eyes in your head. The one and only thing that counts is: Do you have staying power? --- Noel Coward

More here: http://www.happyotter.com/hoquote/Quote_1Page62.html

Mark T A W .com
Friday, September 26, 2003

The stuff about persistence, stamina and passion are very true.

I still say that attaching tangible importance to the project in your own mind is the most important thing, even above persistence.

Why? Because if you think what you're trying to do is important and necessary, you WILL generate all the persistence and stamina to complete it that you need.

IOW, the work ethic qualities that some here are talking about are  second order effects. The first order "mover" is your own belief that the work must be done.  Without that, nothing will happen. I've never seen someone generate persistence out of thin air.

So, the OP needs to get to the absolute bottom of why he doesn't stay with his side projects, and not worry too much about *symptoms* like lack of persistence. 

He needs to figure out why he doesn't "believe" in what he's doing....

Bored Bystander
Friday, September 26, 2003

Bored Bystander,

I think you nailed it right on the head...

>The first order "mover" is your own belief that the work must be done.

I've always started projects with enthusiasm, being motivated, but never got the sense (or told myself that) 'I have to finish it.'  It's so fundamental that I should have seen it all along.  Thanks everyone. 

I also went out and bought an "Action Planner" notebook yesterday.  I don't know why using outlook or any other software-based task manager doesn't work for me.  Maybe it's because the notebook is tangible, always there and next to the PC.

Anonymouse
Friday, September 26, 2003

*  Recent Topics

*  Fog Creek Home