views:

285

answers:

7

I find way too many projects to get involved in, way to many languages to play with (and way too many cool features within those languages), and way too many books to read...

How do you guys stay focused and actually get anything done, rather than leaving a trail of partially complete "experiments?"

A: 

I think a good programmer may well have lots of unfinished "experiments" hanging around, this is a good thing.

Usually with a good manager, you will be held accountable if your work is simply not getting done. If you're a student, though, it's tougher. I realized that it is impossible to learn everything you want to.

I limit myself to only learning 1 or 2 new languages per year, and only 1 book per month. That seems to be a nice balance between programming chaos and getting my job done well.

Kudos for having a great learning attitude :)

Eric Wendelin
A: 

1) I leave a utterly MASIVE trail of unfinished stuff, all side projects of course.
2) When I need motivation to work I open my wallet... That usually does it for me.

Unkwntech
You mean you get motivated by looking at a quarter inch thick wad of receipts? Hehe.
Christopher Mahan
A: 

I find that getting involved with the "business" side of the equation helps tremendously. When you see how much benefit the actual users of your program can get out of your creative solutions to their problems - it's an extreme motivation to provide those solutions to them. :-)

Ron

Ron Savage
A: 

I'm building an app I plan on selling and see it as a way of making extra money or reducing the amount of time I spend working for other people.

My wife likes this idea and her encouragement has managed to keep me focused longer than normal as it's now "work" rather than "play"

Andrew Kennan
+10  A: 

Seems like there are two types of developers: Tinkerers and Entrepreneurs.

Tinkerers want to know how every little thing works. Once they get the hang of something, they're distracted by everything they don't know. The tech world is brutal for a Tinkerer because there's so much to learn and each new year creates more. Tinkerers are proud of their knowledge.

Entrepreneurs want to know enough to build something really great. They think in terms of features and end-user experiences. You never hear them argue about Python over .NET over Java over C because they just don't care. They're more interested in the result of a language versus the language itself. Entrepreneurs are proud of their user-base.

Sounds like you're struggling with your Tinkerer tendencies. I've got the same problem and have found only one thing that helps - find an Entrepreneur developer that you thoroughly respect. When you put the two together, it's unbeatable. The Tinkerer plumbs the depth of every technical nuance. They keep the Entrepreneur technically honest. In turn, the Entrepreneur creates focus and opportunity for the Tinkerer. When they catch you browsing the Scala site (assuming you're not a Scala developer), they reveal a new challenge in your existing project. Not only that, they're much better at understanding what non-Tinkerers want.

Corbin March
Wow, this is insightful. I look back and see that, at times, I was in Entrepreneur mode, while at other times, I was in Tinkerer mode. And Entrepreneur mode is the most productive mode most of the time, because software is about helping people be more effective.
Charlie Flowers
I agree 100%. I have to be careful of my "tinkerer" tendencies.
Dana Holt
+3  A: 

Money, and the feeling of accomplishment that goes along with actually finishing something. When I first thought about working for myself I started coming up with ideas of software that I would develop and then later sell. Of course, I really didn't know if what I was making would actually sell, so it was easy to get distracted and jump at new ideas.

So I decided to go with being a contractor/consultant. When you know that there is a buyer for what you're making, and that somebody is waiting on it, it gives you motivation. If it's an interesting or challenging project, there's a rush associated with finishing it. So that adds extra motivation because you want that rush more and more.

Once I got a fairly steady flow of work-for-hire projects, I found that I can stay focused on my side projects better because I have incentive to practice good time management. I give myself a certain amount of time every day or week to work on my side projects, and it helps me stay focused when I take that time.

Of course, I still go off on tangents occasionally and start new side projects as well, but the ones that I am most interested in I have been able to stick with.

Also, after you finish some projects, then you get a better feel for what it actually takes to go from conception to completion, and it makes it a lot easier to do it again and again.

Gerald
+1  A: 

Probably the best motivator (for a team or an individual) is to set goals early and often.

One of the best methods I've observed in project management was the introduction of "feature themed weeks" - where the team (or an individual) was set goals or deliverables which aligned under a general flavour, e.g "Customer Features", "Reporting and Metrics" etc. This kept the team/person focused on one area of delivery/effort. It also made it easy to communicate to the customer where progress was being made.

Also.. Try to make your (or your team's) progress visible. If you can establish an automated build process (or some other mechanism) and "publish" incremental implementation of work over a short period of time you can often gain traction and early by-in which can drive results faster (and help aid in early course correction).

RobS