Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Totally agree, however most of the times people designing programs can go back and fix what they did, while a chess player can't. So one may try to understand what's all this focus on getting it right the first time when the topic is programming? I mean, it is not a good idea to do the first silly thing, but something that looks pretty sane after some non trivial analysis, is probably a good path. Well IMHO the reason most of the times is "fear". Fear of wasting work, fear of other programmers looking at our code and realize it is suboptimal, fear of not being totally "Right". However because of this fear what gets lost is huge.


"Well IMHO the reason most of the times is "fear". Fear of wasting work, fear of other programmers looking at our code and realize it is suboptimal, fear of not being totally "Right""

This really resonated with me. I personally struggle with this on and off. I just call it the programmer's curse. I sometimes wonder where this "fear" originally came from. Did I pick it up from other developers? Did it evolve over time from seeing the mistakes of others? Somehow I came to associate this fear as something good developers are suppose to feel. Indeed I probably need a little bit of this or I might make some really dumb mistakes. But sometimes it really is paralyzing. It can be really hard at times to let go and convince myself that I don't have to find the perfect solution for every challenge. More specifically, I get hung up trying to predict future problems and solve them. Sometimes you just won't know what will be thrown at you and your code later. It probably goes along with what you described as wasting work. I really don't like the idea of solving very similar problems with duplicated or redundant solutions/code. In end though we often have time constraints and failures beyond on control.

I feel like I had a better grasp on this when I worked for others. But now that I work full-time on my own startup I tend to be even harder on myself.

(Completely unrelated, but I just wanted to say ciao. I saw you're based in Sicily :) My mother is from Milano. I lived there for a couple of years as well. Oh how I miss the blood oranges...)


Perhaps it has something to do with the imposter syndrome[0]. Feeling like you're not a "real" programmer who doesn't "deserve" to have the position you do would (I'd wager) cause that phenomenon of analysis paralysis; it would cause us to want to get it right or we'd be "found out" for the "frauds" we are.

I hate it, and I've found personally using the techniques like Pomodoro[1] has helped immensely with just doing something! along with TDD coupled with exploratory programming.

How does everyone else deal with it?

[0] http://en.wikipedia.org/wiki/Impostor_syndrome

[1] http://en.wikipedia.org/wiki/Pomodoro_Technique


Analyzing for a fixed duration and then going with your gut is what I've tried. However, I still get that nagging feeling sometimes that I'm not sure about a decision. In these cases, I either ask someone for their opinion or simply defer the decision, hoping I'll think of the right answer in the shower. Of course, I still need to work on discipline. It's very easy to spend a while on a decision because you can't get away from it until you feel you have a right answer.


Hi vyrotek (Ciao!), maybe this fear has something to do with the fact that we operate on a field where there is no obvious "right way", but is always full of tradeoffs, so deciding between many degrees of good and bad is non trivial.


> 56. Software is under a constant tension. Being symbolic it is arbitrarily perfectible; but also it is arbitrarily changeable.

http://www.cs.yale.edu/quotes.html


> while a chess player can't

Neither can an airline pilot, and they work in situations where both making the decision correctly and arriving at the decision quickly is extremely important - and here it's not just the fate of a chess game, but the lives of several hundred people.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: