August 21, 2008 at 7:31 am
I have solved many problems by walking to a co-workers desk and asking them what they think and by the time I'm done explaining I have found a solution. The other programmer may come up with a different one which may be better (this happens very rarely:D).
Jack Corbett
Consultant - Straight Path Solutions
Check out these links on how to get faster and more accurate answers:
Forum Etiquette: How to post data/code on a forum to get the best help
Need an Answer? Actually, No ... You Need a Question
August 21, 2008 at 7:35 am
When I was in college so many years ago, when I would get stumped on a problem, I would go do something else such as go to the gym. While my brain was distracted doing something else, a solution often times just popped into my head. Once I discovered this phenomenon, I used it to my advantage. Rather than sit at my desk for hours banging my head against the wall, when I got stuck on an issue, I'd go do something else and many times, I would come up with a solution. It was a win-win because I didn't have to miss out on my other activities just sitting at my desk accomplishing nothing and I also got my problems solved.
The problem with this is that it doesn't work with the 'strap you to the desk for 8-10 hours a day' model that so many employers subscribe to. And if you can't do it in 10 hours, then stay for a few more to get it done. Sorry, that never worked for me, and still doesn't. After about 8 hours of almost nonstop heads down work, my brain shuts down and my productivity goes to almost zero.
Anyhow, I find that I get a lot of breakthrough ideas when mowing the lawn, working out, taking a shower, even driving home from work. This is another reason I am a strong proponent of working from home because I can mix my work with my home chores, and usually at the end of the day, I have gotten more accomplished on both fronts.
If it was easy, everybody would be doing it!;)
August 21, 2008 at 7:39 am
Isolating 'work' and relaxation is a mistake.
Human minds are not specialized program generators, but are generalized problem solvers. At deep levels, our mind encounters programming problems just the same as it encounters other types of problems: cooking a meal, climbing a tree, capturing lunch, escaping predators... at a fundamental level it's all the same thing.
The reason why play is so important to all humans (especially developing children) is that these techniques get expanded, sharpened and mixed together by play. That's why we have a natural drive to persue it, our minds need that to survive.
...
-- FORTRAN manual for Xerox Computers --
August 21, 2008 at 8:07 am
Back in the 70's when I first started earning my living working on computers, I was working on flight simulator R&D for the Air Force. At that time "compact" code was essential. Since everything was new and scratch built, I would start sketching out on paper the inputs and the outputs - get all that organized in my mind. What happened over and over after that was that I would wake up in the middle of the night with a concept for an algorithm to get the job done. After the first time it happened, I learned to keep a notebook and pencil by the bed so I could write it down; if I didn't I wouldn't get any more sleep for fear of forgetting the idea. In the years that followed, there was not one single idea that came out of my sleep/dreams that didn't fundamentally work - sometimes with a tweak or two.
When I was transfered to Germany in 1976 I used the same technique to write an "email" program where the physical transfer was Computer -> Punched Paper Tape -> Teletype -> Punched Paper Tape -> Computer. What a goat rope! We were going to defend Western Europe from the Russians with that. . .
August 21, 2008 at 8:11 am
Donald Bustell (8/21/2008)
... I used the same technique to write an "email" program where the physical transfer was Computer -> Punched Paper Tape -> Teletype -> Punched Paper Tape -> Computer. What a goat rope! We were going to defend Western Europe from the Russians with that. . .
alas, their system was probably even worse.....
...
-- FORTRAN manual for Xerox Computers --
August 21, 2008 at 8:21 am
I agree with others that have said taking a break, or getting occupied with a distraction helps solutions come about. Just letting the mind go blank and not focus on the problem at hand has helped. I have left voice mails for myself about solutions when I was not near a computer to send an email of the solution to my work account. Ideas for solutions have popped up while I was driving or I was in the shower.
August 21, 2008 at 8:28 am
Breaks are essential, as is walking away sometimes. I had one of those "ah-ha!" moments after I got home from work Monday night after working late in a 2.2 million row Cartesian join. (as it turned out, the moment didn't provide a solution as this is a really weird system that I'm dealing with, but that's beside the point)
My favorite method, aside from posting problems or searching here on SSC, is to call a friend of mine who's a good 600 miles away. We used to work together doing database work and have very similar sensibilities. It's nice to catch up with him on the company's dime. 😀
-----
[font="Arial"]Knowledge is of two kinds. We know a subject ourselves or we know where we can find information upon it. --Samuel Johnson[/font]
August 21, 2008 at 8:31 am
This might be too much info, but I first noticed that I would come up with some pretty good ideas as solutions to problems when I went to the bathroom. I didn't put 2 and 2 together for awhile, but now that I know that it is beneficial to get away from the desk periodically, I'll often get up from my desk and take a short walk. I work at a hospital, so even when the weather is bad I can walk around and usually find a work related reason for doing so.
August 21, 2008 at 9:16 am
So what do you do? I know lots of developers, a younger version of myself included, would just start coding. Try some different solutions and see if you could come up with one that works. That's not necessarily a bad solution, but it might not be the best way to tackle a tough problem. After all, with that approach you're trying things out and whichever one works first is likely the one you'll choose, whether or not it's the best solution.
I don't think that is the best approach and as I get older and struggle with problems, I've found that getting away and doing something else actually improves my solutions. My mind knows there's a problem and I'll keep thinking about it, but that distracted, half-thinking approach, the unconsciously brainstorming approach, lets me twist the problem, think about it a different way, and come up with solutions that I am forced to examine in my mind. Without anything on the screen in front of me, I somehow am freed from the bond of committing something to paper, or as we often do today, to bits.[\quote]
I agree with you and others that walking around, changing your focus, or just leaving for the day can have a beneficial effect on the "little gray cells". However, don't discount your first solution of finding an adequate, if not the best, solution. If it satisfies the need and gets you where you are going, it may be better to kludge it together, go on, and come back to the original problem later.
August 21, 2008 at 9:17 am
Steve,
This is a know fact that changing the activity and even being asleep let your other brain grey cell work. I had to write a course paper on that many years ago when I was taking philosophy in college.
For example,famous Russian chemist Dmitri Mendeleev invented his Periodic Table in his sleep. This and more examples are in
http://www.cnn.com/2004/HEALTH/01/21/sleep.creativity.ap/index.html
Study confirms sleep essential for creativity
Regards,Yelena Varsha
August 21, 2008 at 9:24 am
jim.powers (8/21/2008)
I do believe the greatest detriment to an effective employee is keeping them tied to a desk "working" until a problem is solved. Been there, done that, and ended up with a lousy but workable solution that I ended up fixing down the road.
I totally agree with this. I learned early on that I am not one of those people who can put in 14 hour days. I really wanted to solve a problem one time and stayed until 9 PM, and finally thought I had it licked after working almost continuously the whole time (since 8 AM).
I went back the next morning, looked at what I had written, and threw most of it out. I then proceeded to solve the problem in a couple of hours.
Since then I have insisted that I will only work on a technical problem for about 10 hours at most, and usually keep to an 8 or 9 hour day. If you want me to deal with some brainless paperwork, fine, I can keep at that for longer, but I can't force creativity.
August 21, 2008 at 9:34 am
Steve,
Stress often is thought of as a friend that keeps you going. We down coffee, sugar, power drinks listen to rock and roll and push as hard as we can to solve the problem. We think of the time period it is due by and we stress out to a point where we are not able to think.
In this frenzy we find that working hard is not as productive as working smart.
A number of years back I worked with a man who sat for weeks thinking and looking out the window. Our boss talked to him once and then let him 'think about it'. Then one day this guy started to cut code. He wrote about 3000 lines of PL/1 that did some of the most unbelievable processing I have ever seen. By loading a table with a set of variables he had constructed the most impressive CICS Screen Building processor that was also mapped to the database.
This showed me once and for all that working smart is the way to go. you can press towards something that looks like the answer to find that it is not there, or you can create a logical strategy that gets you there with far less effort.
The boss by the way was very pleased with the out come of the work, and we were able to deliver the project a little ahead of schedule.
And to tie this to the topic, working smart is knowing when to take a break from the battle and to rethink and reorganize.
Miles..
Not all gray hairs are Dinosaurs!
August 21, 2008 at 9:45 am
One of the most frustrating things about the job I have now, is that the small group of fellow workers in my office/cube area work best in a no talk, no interruption zone. Every sniff, keystroke and mouse click can be heard by everyone. My suggestion for white noise (leave one of the less worrysome servers in our work area as a background noise) was not understood. Humor has a more limited scope when general daily conversation is generally bone dry. It's a small company and no place to physically change my desk.
Oh well, at least I have a job.
August 21, 2008 at 9:58 am
xyzt (8/21/2008)
One of the most frustrating things about the job I have now, is that the small group of fellow workers in my office/cube area work best in a no talk, no interruption zone. Every sniff, keystroke and mouse click can be heard by everyone. My suggestion for white noise (leave one of the less worrysome servers in our work area as a background noise) was not understood. Humor has a more limited scope when general daily conversation is generally bone dry. It's a small company and no place to physically change my desk.Oh well, at least I have a job.
Can you get permission to bring in a little desk waterfall, or something similar? How about a personal ipod?
I work well with quiet surroundings, but if I didn't I would be totally looking for another job.
August 21, 2008 at 10:19 am
I just watched your video podcast on this topic, Steve. Nice place! If you ever want to sell it...
But seriously onto the topic at hand. I do know what you mean about stepping away from a problem to let your mind idle, so to speak on the problem. Often, especially for the hardest problems I've encountered, that has helped. However, I personally have never worked at a place which had something like a pingpong table or basketball hoops available to just unwind while you get away for a few minutes to take that break and let your mind get into a "brainstorm zone".
Since I haven't had ping pong tables, hoops, or something else available to me, I've done something which is not good for me instead, and that is eat. I've gained too much weight because of that, but it has accomplished the same thing; that is it has given me a chance to get away from a problem that has me stumped while I do something else (eat) and then often during those times I'll come up with a good solution. Unfortunately eating, and solving my difficult problems, becomes a destructive cycle for my health. I would be willing to bet that here are other developers and DBA's out there, who have similar work environments like mind (no way of taking a break from your tough problems in a healthy manner) and who get involved eating too much.
I joined a gym back in November 2007 to help myself loose this extra weight that I'm carrying about with me, and it is working. I've lost 2 inches off of my waist, but still have 20 or so more pounds to go. I've gotten better at resisting eating, even when the problems are tough, but when I'm really faced with a very hard problem I tend to go to my old unhealthy habits, both because eating tastes good and I often solve the problem while I'm eating.
Kindest Regards, Rod Connect with me on LinkedIn.
Viewing 15 posts - 16 through 30 (of 33 total)
You must be logged in to reply to this topic. Login to reply