views:

5086

answers:

33

Better programmers than me can write in essays about walking around with a coffee mug and call it programming. And it's perfectly accepted at a place that knows the business. Or see what Gregory House (TV show "House M.D.") does when he is thinking.

But what about the other places where you are the only programmer?

If you don't stare at boring stuff on the monitor for 8 hours straight, co-workers suspect you being a slacker. Yes, not the managers who see the output. Only the co-workers who see the process and can't relate to this kind of work.

Yesterday I had to explain to a trainee of some other profession that software development is like flying. The explanation from the Hitchhiker's Guide to the Galaxy. I don't think she bought it.

+22  A: 

Think on paper, i.e., make a note of your mental thoughts. I find diagrams make things a lot clearer for me when thinking anyway, so it's a win-win.

JeeBee
Paper is so passé, get a whiteboard...
BenAlabaster
@balabaster, ii actually prefer paper for it is much more portable and scaleable (On a whiteboard you have to erase everything when it's full, on paper you just get a new paper)
Pim Jager
@Pim Jager - Understandably - I think in this day and age, I think we need to come up with electronic white boards that just dump the contents to file and then sync with the computer when you connect it up. Something lightweight enough to carry to the board room if necessary.
BenAlabaster
Or have it sync by bluetooth to a fileshare on the network so everyone's got access to it... unless your scribbling defamatory notes about coworkers...
BenAlabaster
That's it, now I want one of these: http://www.e-beam.com/products/whiteboard.html
BenAlabaster
We tend to take a photo of the whiteboard using a mobile phone's camera :)
Paul Suart
That's what I always used to do and likely will until I persuade our I.T. Manager to part with some cash for this baby :)
BenAlabaster
until someone gets me an electronic system that lets me write with a fountain pen, I'll stick to paper...
rmeador
Despite the advantages Pim points out for paper, I still much prefer whiteboards when I can get them, for sketching out thoughts. Usually after a while of working on a whiteboard I have some result worth writing down on paper.
David Zaslavsky
Personally, I think in a text file. That way my keyboard is always clicking and I can pretend to be working while I'm working.
John MacIntyre
Yeah, I usually put the results of my paper planning into a todo list in a text file. Or I comment on websites to get that keyboard action sound going ;)
JeeBee
Whiteboard pens make me dizzy
Nosredna
Nosredna Rm : That sounds like a bonus if you're stuck in a tedious meeting!
JeeBee
+14  A: 

Pull out some paper and scribble technical-looking stuff on it. Then when you're thinking, hold your pen and have one hand on the paper. Occasionally add something to the paper.

If you're working on hard problems, you'll probably need a pen and paper to assist your train of thought anyway.

Nathan Ridley
Excellent!!!!!!
Andrei Rinea
+11  A: 

I honestly don't think you can. Sure, you can "pretend" you're working by scribbling, having technical websites open. But if you're doing that, you're not doing the actual "thinking" bit that gets the work done.

I'd stick to worrying about how you get your work done best and not trying to appear to be working to others. If it matters to them they will know the truth.

Robin Day
+13  A: 

Pretending you're working on something that's physical, not mental, is a short term solution, I think.

You'd better teach your co-workers that thinking takes most part of the process of programming. Of course, it's a long term solution that may show no value on the first few weeks - or months - but it will surely pay off.

They'll even leave you alone when they see you're quiet, with a mug of coffee in your hand.

Leave him there, they'll say, he's doing his best.

Mario Marinato -br-
+1 Exactly, why try to pretend you're working. That's generally the stance someone who isn't working takes. Just do what you do!
Robin Day
+101  A: 

It's funny you ask this question because just yesterday I had a client blow up at a colleague and I who were discussing Google Analytics and Macbooks. Now this client gets charged for our time and we both exclude such time from our timesheets but such breaks are actually important: you can mentally recharge and it can help to work through problems and so on.

Now I put people into two categories:

  • Process-oriented: these people are concerned with how you do things. Do you turn up for work on time? Is your desk neat? Have you filled out your weekly status report? And so on; and
  • Results-oriented: within reason, these people don't care how you do something, they just care that you do it.

I am firmly in the second category and I have a real problem with people in the first. In my experience, people in the first category seem to suffer from insecurity. It's a fundamental psychological principle that controlling your environment makes you happy and such people, who are faced with something where they feel out of control or don't know how to achieve the best results, resort to controlling their environment by dictating how you do things.

You're right in that this is particularly problematic for non-programmers when dealing with programmers. They often just don't understand what we do and how we do it, like how things can take longer than estimated and so on.

Yesterday's case was even worse because this same guy would sit with a colleague and discuss the house she's buying and other things in the middle of doing his own work (and he's charging his clients for his time and I'm sure he's not charging for such downtime), which I found particularly galling as a real double standard on downtime.

So how do you deal with it? Preventively. Try and associate with results-oriented people by choosing the right job, staying in a good job, leaving a bad one, hiring the right people and so on. There will be a point where you'll simply have to put up with such nitpicking however. You can try and explain how the process doesn't work where you just sit there and stuff happens in some linear fashion but in my experience more often than not non-programmers just don't get it and you're wasting your breath and it'll sound like you're just trying to make excuses for slacking off.

In my case, as a consultant, I'm simply going to finish the current project (which is soon thankfully) and then respectfully decline any future work as I've already got more in the pipeline than I can already do.

cletus
I completely agree. I used to work for one client that would complain about the amount of times I showed up an hour or two after everyone else, but wouldn't consider the fact that I leave four or five hours after everyone else and that I produced more results in less time than the permanent staff. Results-Oriented people tend to be a joy to work with, process-oriented people [in my experience] tend to nit pick and micro-manage and drive me crazy. If you want the job done exactly your way, by all means go ahead and do it, otherwise go away and let me do what you hired me for.
BenAlabaster
I'm with you both. Also had a month ago a quarrel about me arriving an hour or so after everyone else. When I said I stay correspondingly longer in the evenings they told me that nobody actually sees me do that. Between the lines I got they don't trust me. Suggestions to check out Windows logs or introduce any other kind of observation were declined however. And yes, I'm also basically the only developer there.
User
Why do you have to tell them anything, unless they are the boss? I don't get it. If I have a non-programmer co-worker that is jealous and I say, "I am working" and they keep on - who cares? Let the run their mouth. If it is so bad you cannot do your job that is one thing, if not, let them run that mouth.
johnny
@Mastermind: The place I work at now has a clock-in/clock-out system which took me a little while to get used to. It started out feeling like big brother was watching me, but eventually I came to love it. I no longer have to keep track of my own hours, they give me my report every week and I give them a corresponding invoice. It takes me 3 minutes to keep track of my time/invoice for this client. I'd highly recommend it.
BenAlabaster
Fair points, but it smells of a bit of a rant to me.You also exhibit the classic programmer need to divide everything into black/white, 1/0... when talking about Process/Results oriented. If you're dealing with anyone of average or better intelligence, it often becomes very obvious to them that they've been "pigeon holed" and is a sure fire way of degrading a working relationship. In fact, the act of pigoen holing is itself a way of reducing the complexity of human interaction, ie "controlling your environment". Hmmm... Does that make you Process or Results oriented? ;)
Ash
I think (or hope) your problem is with the philosophy of specific processes, not with process in general.
Walt Gordon Jones
I think it's fine if results-oriented boss leans toward being process-oriented one if results are dissapointing.
Arnis L.
It's worth mentioning that recent psychology tests have shown that keeping up appearances does contribute somewhat to happiness. They were studying people who have recently lost their jobs, but still dress up every day and take their briefcase/laptop into starbucks to meet up with people. I'm not sure what they do there. Be unemployed together? "Watch this youtube I saw yesterday it's so funny!"
Sneakyness
while i would lean more towards the second category, i cannot see this as an either-or, mutually-exclusive grouping. yes, granting folks the autonomy and freedom they need to achieve the results is very important as it liberates people. But at the same time, caring on about results alone can lead to compromises to mandatory standards, ethics, security, or safety requirements, etc. Those items belong to the process-oriented category. And i have seen such compromises happen. There has to be a balance for these work practices.
icelava
If you just want it to work you might end programming by coincidence. You found a solution that just works but you don't understand how and why it works. You must in both categories.
Victor Hurdugaci
@User, when I had a similar experience, I would find some reason to email my boss (a few minutes before I am about to leave), but I would make sure the email was relavent, not appear to come out as me trying to make him aware that I am working after hours.
user279521
+10  A: 

Do you really have to do this (I mean explanations)? I know it's tough times, etc. but think of finding some place else when you can.

According to your question several things are wrong with your place of work:

  1. Other people (including peers) should have implicit respect to what you do;
  2. Other people should not be able to observe you all the time;
  3. You being concerned with what other people think of you is counter-productive;
  4. "Flow" is a critical process for software development and you are clearly in environment that doesn't embrace this process.

Pick up Peopleware by DeMarco and Lister to read about these and other things that define and explain right teams and places to work.

grigory
+30  A: 

Why, leave something verbose running on the terminal, of course.

kch
I've actually had my boss walk by my desk while doing some SVN dumps and he said "That's what a programmers screen is supposed to look like" It hurt a bit, but now I have an easy "I'm busy!" sign.
Wally Lawless
@Power-coder: You mean a programmer's secondary screen isn't supposed to be permanently etched with a browser window displaying the StackOverflow website?
BenAlabaster
@balabaster: you have a secondary screen??? [email protected]: I hate it when a person bases your productivity by how many lines of code you write in a day. Some days I write 50 lines, other days a thousand or two. They don't consider the many lines that get erased between check-ins.
arabian tiger
One well written line of code can replace a thousand bad ones.
Sneakyness
+7  A: 

Get a whiteboard and scribble some ideas on it while you're thinking. I find it helps me structure my ideas better than just walking around while thinking.

hammar
I don't have a whiteboard in my cubicle at this client, but I've been pestering them for one for ages. Having a whiteboard is great for diagramming random ideas - a great thought processor.
BenAlabaster
Absolutely. The same managers who demand you work also get very excited when they see people writing things on whiteboards viewing it as a sign of creativity, planning and communication. I once had a manager who when we had clients in demanded that the team sit around a whiteboard pretending to discuss stuff so the environment would seem dynamic... Terrifying but true. Still, in her defence she was generally a pretty good manager other than that.
Jon Hopkins
Get one of these puppies to make whiteboards more efficient :) http://www.e-beam.com/products/whiteboard.html
BenAlabaster
I actually prefer a decent notebook for jotting down ideas. I've run into situations where I've thrown out spare bits of paper, or had whiteboard drawings erased, which I've subsequently needed.
Brian
+26  A: 

How about thinking on the lav (the john)?! Of course it limits you to one thought session a day unless you don't mind people thinking you have diarrhea

Chris S
lol +1, I do some of my best thinking on the loo. It's the only time I'm not constantly interrupted by coworkers asking retarded questions I don't have time to answer.
BenAlabaster
Works at home, too. Unless you have toddlers constantly banging on the door.
Even Mien
I swear by this one. Nothing like a good jobby to help you find the answer to a tricky problem!
Greg Beech
My office is noisy. I use this technique surprisingly frequently during the daily, shouted political argument going on one aisle over. The important thing is finding the lavatory in the basement or up a floor that's less-frequented. (Fewer distractions.)
Greg D
I had one place where I'd do that multiple times a day, because the handicapped stall was bigger than my cubicle. :-)
T.E.D.
The paper in the lavatory isn't so good for taking notes ... and let's not talk about the pen.
JeeBee
just make sure you cellphone is off.
johnny
I think my other half would accuse me of all sorts if I went to the bathroom for a 30 minuite thinking session!
Sean Taylor
@Sean Taylor - lol, if such things take 30 minutes, she's probably just jealous they don't last that long *outside* the bathroom :P
BenAlabaster
If I'm stuck, a bathroom break can be a great way to step away from the screen and get some perspective. Usually I'll realize what I was doing wrong before I even get *to* the bathroom.
Joe White
+126  A: 

One solution could be this:

During their lunch break get them to do a simple task like as a crossword. Ask them to be conscious of the amount of time they spend reading/writing vs. the amount of time they spend thinking [or looking up the answer]. Tell them that this is exactly the same as the time you spend reading/typing vs. the amount of time you spend thinking and looking up answers.

Better still Sudoku because it can involve hours of trying to figure out where you went wrong and why none of your numbers add up. So while the task itself seems relatively easy, after all, it's just numbers in boxes it can take time. Get them to predict how long it'll take them before they start and see if their prediction is right - guaranteed it won't be. You can hit them with a double whammy for why your time expectations never quite add up either.

This is the only way I can really think of to get them to understand the way engineers work. I see lots of "those types just don't get us types" - people are adaptable, people can understand things if presented in a fashion they can understand, it's just that nobody's ever taken the time to present them with an argument they get.

BenAlabaster
the thing is, what if they cannot make the mental link of programming to puzzle solving? If they could, they'd probably understand in the first place and not need the illustration
Chii
You can't please everyone all of the time... if they can't make this mental link, there's surely another way. The question you've gotta ask yourself is "is it worth the effort".
BenAlabaster
I really like this explanation. I'm going to use it when needed.
Sandor Davidhazi
Wicked analogy! +1
John MacIntyre
That is a fantastic analogy. I'm going to have to remember that.
Colin Cochrane
@Chii - besides, if they can make the connection between programming and puzzle solving, they wouldn't likely be questioning what it is you do all day with your time.
BenAlabaster
The real question should be: How should *non* programmers in the office hide gossipping about American Idol and other such crap so that us *programmers* don't suspect slacking!
BenAlabaster
@Chii and @BenAlabaster - sometimes an explanation like this helps them to see the connection in the first place. Saying "I'm problem solving in my head" might not have the same effect as adding "...like when you take an hour to do a crossword, you only spend one minute writing - whatever it is you do for the other 59 minutes, that's what I'm doing." Sometimes that's when the light bulb comes on.
detly
great analogy, but completely impractical. No one would actually agree to do this. I suspect the reason the OP is considered a slacker is more to do with his general attitude to his co-workers (ie. social skills) and not his browsing of the web.
Anonymous Type
+7  A: 

Have your eyes closed and when someone walks up to you, say "Amen".

Even Mien
and put a crucifix on your wall and get a prayer mat too... or whatever your religion dictates. A sure fire way never to be pestered by anyone ever again. Especially if your religion is of a non-mainstream nature :P
BenAlabaster
like the jedi religion, or even the sith =)
Chii
May the sauce of the FSM lead you to enlightenment.
nilamo
+61  A: 

Years ago I had a gig writing some "Business Basic" stuffs. I was teamed up with a rather "brilliant" programmer with a strange work flow..

He would sit at his computer.. for half to 3/4's of the day.. and play doom / quake / wolfenstine 3D (he was really into the FPS). when he had enough, He'd fire up the editor and just type. At the end of the day, whatever he wrote.. was gold.

We had a new account manager start with the company that walked in on him playing one morning and in dealing with her, was not very polite.

She complained to the CEO that "one of those programmers isn't doing any work at all but playing those violent video games". To which the CEO replied to her "YOU DIDN'T DISTURB HIM DID YOU!?!?".

The games helped him think. He designed, wrote, tested and debugged all of the code in his head while he was playing. Once he was done, it was just a matter of brain dumping and getting it all out.

datacop
That's ridiculous and unprofessional.
Tim
Upvote not because I agree with the attitude, but just because I love the story. :-)
T.E.D.
I didn't relate the story because I thought it was an awesome thing to do or that I agreed with it.. more to emphasize that you need to teach, train, educate your co-workers about your work habits and what it takes for you to be able to do your work effectively. For him it was Doom.. for you it might be holding up the wall with your coffee cup. For me it's standing outside smoking a cig. Either way, your co-workers need to know that when they see you doing "that".. it's probably your most productive time.
datacop
@Tim - Are you referring with how the developer dealt with the account manager or the fact that he was playing games? If you are referring to them games, then it depends upon the company more than anything else. If the person was able to show that it helped their thought process and they produced quality results, then by all means let them play their game and maybe just make sure the monitor faced away from passers-by.
Rob
+1 rob, that is the best attitude to take. But to the suits, the idea that such free thinking view mightn't be acceptable...
Chii
Chii, playing games at work for 5 hours per day instead of producing is not "free thinking", it's unprofessional. If you can only produce "gold" after five hours of Quake, there's something wrong with you as a developer. ;-)
Peter J
If he's not disturbing anyone, how can it be unprofessional? Some people have to write to learn, others can just read to learn. Some people play video games to get their thoughts flowing, others can just read SO.
s_hewitt
You can see here in the comments that we have the results oriented crowd and the process crowd - really interesting after reading @cletus's answer. I'm more on the fence here, a developer needs an environment that helps him think and analyze, but they should be aware of how it impacts other people as well.
Redbeard 0x0A
Playing doom is a distraction and entertainment. No cognitive thinking is done then. While I would love to agree with you - that is just plain wrong and gives those of us who do actually think by walking around or stating at walls a worse hurdle to overcome.He is unprofessional because he gets paid to think and code. Playing a game at work is totally unprofessional.
Tim
Holy rep killer batman! The point of the story wasn't that the developer was a gamer at work... it was to illustrate that he had his own way of "doing it".. and he produced results that the suites liked, therefor the suites supported him and tolerated his "appearance" of not working. Because they knew at the end of the day, they are going to get exactly what they want. It was also to show how someone new could come in who hasn't been indoctrinated to his eccentric behavior how they perceive "goofing" off, only to be corrected by the boss that "it's all good". I didn't support it then or now.
datacop
@Tim - Maybe he gets paid to produce good code (rather than to strictly 'think and code'). If he produces enough golden material, then he's doing his job.
StuffMaster
It sounds more like an ego maniac who has convinced people he is some super programmer and that he has to have his way or else he walks. I'd fire his butt if he worked for me. I am results oriented - but the issue is not that I am an uptight "suit" but that he could be more productive if he wasn't spending most of the day playing video games. That is ridiculous.
Tim
Thinking isn't something you can do for eight hours straight and still be productive. Downtime is a vital part of the cognitive process -- it's when your brain gets a chance to rearrange what it already knows and spot correlations it couldn't while under load. How many of us have come up with some of our best ideas in the shower? If this programmer knows how and when to take their downtime, more power to them. Sounds like it works.
Joe White
I personally have to jump into this argument to defend him. I've been blessed/cursed with ADHD, it's one of the many problems I have, but it's the only relevant one to this topic. When I hit a rough patch or I get frustrated or I need to rethink things, I think about it for a few minutes, jot some notes down on paper, and then I turn on my Xbox360/Guitar and play for anywhere form an hour to four or five. Hitting my head up against a wall over and over is not stimulating enough to keep me interested or my brain working in the way I'd like it to be.
Sneakyness
To be totally honest, even when I'm coding, I still spend almost all of the time sitting there with XCode open listening to some music as loud as I can moving around in my chair. I suggest DI.fm's trance channel, or some good deathcore. Do me a favor, and the next project you start, record the hours you spend coding, and then divide that by how many lines of code you've written. It's not going to be anything close to 1:1.
Sneakyness
+1 for a boss who understands how his folks work best.
icelava
This is basically The Parable of the Two Programmers http://www.csd.uwo.ca/~magi/personal/humour/Computer_Audience/The%20Parable%20of%20the%20Two%20Programmers.html
Dana the Sane
After eating, playing guitar, video games, listening to SO on IT conversations, I feel invigorated to code. The idea of firing the most productive programmer because you think they can be even more productive means everyone else should step up their game.
Jeff O
Was this programmer's surname Carmack?
Arec Barrwin
This is just like mine only backwards.. I play games in my head while I write code.
John Isaacks
So long as the results are produced
Sir Psycho
+2  A: 

My strategies:

  • Bring up some gnarly code in Emacs, and stare in the general direction of the screen.
  • Take a walk.

The problem with the second approach is that if a thought strikes that requires looking something up, you are often a minute or more away from your workstation. Also, I often bump into someone on the walk I need to talk to. That isn't nessecarily a bad thing, but it doesn't help with the task at hand. Still, you end up learning something that you needed to learn. Consider it a holistic development technique. :-)

T.E.D.
Gnarly? Must've been some code your predecessor wrote I guess. I'm sure all your code is as elegant as poetry, mine is :P
BenAlabaster
Most of my work involves doing something with already existing code. Some of it is good, but most of it is C code written by a Fortran programmer compiled with a C++ compiler. Finding "gnarly" code to load into my text editor isn't that hard. :-)
T.E.D.
+4  A: 

Usually what I do is I'll leave something on my computer screen (query in progress, report, data table, etc.) and i'll play with my rubik's cube while periodaclly looking at the screen.

DForck42
yes...gotta have screen full of windows with things so complex it always looks like your working. Until they notice web browser and you're typing a comment on SO...ohhh shit.
dotjoe
+23  A: 

Take a walk

I've found that it's more the appearance of not "working" than anything else. If I leave my desk for a few minutes and walk around outside no one thinks anything of it. Much different than sitting at your desk looking idle.

Alan Jackson
I agree. It's a perception thing. Just sitting is always lazy. But moving either fingers or legs convinces people you're /really/ working.
Matthew Flaschen
Out of sight, out of mind.
Walt Gordon Jones
ps walking around with a piece of paper in your hand = working in most places.
Martin Beckett
MGB is right. I got away with wandering the halls in High School for a very large amount of time by simply walking around with paper.
Sneakyness
There's a fairly common corporate culture that says "if you're not at your desk, you must be slacking off (taking a long lunch, etc)". Unless you're management, in which case it's de rigeur to be AFD (away from desk) all day and in a meeting room.
Ether
+2  A: 

If you're the only programmer in your division, it's a pity. Otherwise you could write mini-documents like a model overview - anything high-level - to help you with your implementation thougts.

  • revise your own thoughts
  • provide a written document as basis for possible "stand-up" reviews with fellow developers
  • aggregate artefacts for later detailed documentation purposes (which mostly are required in not-so agile companies)
msiemeri
+2  A: 

You can run your test cases in selenium IDE. x 100

drikoda
+101  A: 
Yuval A
Hah, I was gonna link to this comic in my answer, but then I realized you must stay put while the terminal's puking. Can't look productive sword-fighting, now, can ya?
kch
Must... resist... urge... to... upvote...
Michael Myers
@mmyers - don't worry, I've got ya covered +1 :P
BenAlabaster
I had zero resistence to upvoting this comment. I actually bought a shirt with this comic on it from xkcd.com just on how much I cracked up when I saw it.
arabian tiger
Yes, lots of command prompt windows with scrolling lines! that's why i keep open my Task Manager with CPU or Networking graphs or my mobile Internet driver statistics page, ha.
icelava
BRB- building screensaver of never-ending compiler output
Graphics Noob
If your build script runs too quickly, write a shell script that runs it in an infinite loop. Leave it visible on your screen together with some CPU/disk/network usage monitor. Perfect excuse for a coffee break!
Esko Luontola
I swear this xkcd guy is secretly watching my life
LRE
that screen saver done already?
b0x0rz
+3  A: 

Sometimes when I have a difficult problem, like everything I've tried just isn't working, I lean back in my chair and close my eyes. Guess what that looks like.

Robert S.
Some times I do that and wake up slightly alarmed when a co-worker wakes me up with some random question. Closing your eyes is dangerous business.
kch
The last job I worked at, I had the same thing - I was leaned back, eyes closed, thinking. Boss walks into my cube, quietly. She says my name and I jump a little - wasn't expecting the interruption. Later that day, my supervisor calls me over and tells me the boss is going to have her "eyes on me" because of the situation. And she was a programmer in the past. Apparently, she's able to think just fine while coding - different strokes for different folks, I guess.
Knobloch
Heh. I had a long night of coding a few months back and passed out during the next day. Someone texted me that I was snoring from a few cubes over. Oops.
Chrisb
+4  A: 

I think it's important to distinguish between accepted forms of "thinking" and less conventional methods like some of the ones above (playing FPS games etc). Most workplaces expect some degree of professionalism, and while playing games might be the most effective method for you, society doesn't generally accept that as professional behaviour (yet ;) ).

Usually I just leave the CLI for a linux server open on one screen - most people see that and run.

Matt
+1 for the terminal - unfortunately for me tho is that I don't have access to any of our Solaris machines :(
Redbeard 0x0A
Just use the windows command line then - do an ipconfig or something like that. It works just as well!
Matt
If you can't do even *that*, take a few screenshots of the command line on your home computer and bring them in to work. :)
Barry Brown
+4  A: 

If they don't affect your getting a paycheck, what does it matter what they think?

johnny
If enough people think you are slacking off, eventually management would be forced to do something, which could affect you paycheck.
Rob
I thought he meant management was aware he was not slacking: "Yes, not the managers who see the output. Only the co-workers who see the process and can't relate to this kind of work."
johnny
Even if management knows you're not slacking, it's often easier for them to force you to change your behavior than force everyone else to mind their own business.
patros
I'd tell the others if they don't like it too bad.
johnny
There are always several levels of management. With enough mistrust to the levels under them. "He's a slacker." only has to reach higher levels and then you have a hard time.
stesch
if you do the work let folks say what they want. if you can prove real damage complain.
johnny
+6  A: 

I worked for a couple years for a small company as the sole developer. I know for a fact that they thought I was just slacking off when they'd pass by my door and see me on the internet looking something up, or reading a book like Pragmatic Programmer; and even when I was actually writing diagrams related to the current workload.

In short, I don't think it is possible for someone unfamiliar with programming practices to understand what we do. Anymore than it is possible for someone unfamiliar with engines to see a mechanic just standing there staring under the hood, and understand that the guy is actually working.

hmcclungiii
Yes, I had negative comments in a job once because coworkers saw me sitting around reading "magazines". Like Dr. Dobbs, Programmer's Journal, Proceedings of the ACM.
Cyberherbalist
@Cyberherbalist: The kind of coworkers who can't learn anything by themselves?
stesch
About reading Pragmatic Programmer at work: it's like an automechanic reading "Basic car care" at work instead of fixing cars.
simon
+4  A: 

I always come running back from the toilet, and say I got a great idea while I was thinking there.

The worst part: it is even true, I just make a show out of it. Do the same with coffee break, just break of mid-phrase if you get an idea etc.

Marco van de Voort
+11  A: 

Why do you even think you need to hide the fundamental part of your job as a programmer, ie thinking, from co-workers?

If a co-worker says "Wow! You really don't seem to do much each day, do you?", just explain, in a good natured way, what you are actually doing when they notice you staring off into the distance.

If they continue to have a problem, WHO CARES! Just let the responsible manager deal with it. Of course this relies on the fact that your output is actually acceptable.

This is exactly how I have dealt with this sitaution myself in the past. If someone just doesn't like you, you are not change their views, but most people are simply curious.

A programmer that believes hiding and being deceptive to colleagues about what it they do, will always have difficulty dealing with non-programmers.

Ash
+5  A: 

What I hate is when people see you browsing the internet and think you're slacking off. A key part of expectations or perception management is to not have your monitor facing a busy thoroughfare. I hate people walking behind me as a general rule anyway.

Jordie
And yet I've been inside companies that *enforce* an "open" working environment, such that each worker bee's monitor is exposed to each passer-by! Clearly, these executives haven't read 'Peopleware' by Demarco and Lister!
Jim G.
+4  A: 

Write your thoughts on a paper, so they see that you are working !

Adinochestva
+4  A: 

Program in Java. Then you'll have to do a lot more typing. Or, if you're already programming in Java, well, hmmm...COBOL, maybe?

Curt Sampson
+1 COBOL ROCKS!!!
FastAl
Ada is a good one for verbosity.
diverscuba23
+1  A: 

I don't worry about this that much any more. Someone - especially a non-programmer - will always be around to accuse of you of being a slacker. I just do my job and assume the whiners will shup up when they see my finished product.

PaulG
+6  A: 

I recall the movie The Firm when Gene Hackman tells Tom Cruise that if he is even thinking about a client, it's billable time. If it's good enough for a lawyer...

Jeff O
It's equally parts funny and true.
Jim G.
My employer couldn't pay me enough if we would handle it the same way. Programmers are constantly trying to learn and improve themselves. I've ideas in the shower before work, but can't put shower time on the time sheet.
stesch
+3  A: 

I've seen this one. We have an internal IM system where I work. Last year, word came to us (from our boss, as a friendly warning) that people in other departments were looking at the IM client to see our status (if we were "away" or not) and using that to determine that we were slacking off.

So we set our away timeouts to be very high, so it looks like we're always busy, which we usually are.

Between watching programs run that may take time, reading stuff on screen, talking to other programmers next to you, etc... it can look that way.

I don't worry about, really. That's how I work (and the others around me too). That just the way things work in our department. That metric can work with some jobs (i.e. % of time in a call for a call center employee), but it doesn't work for everyone.

What can you do about it? I wouldn't do much. I like the crossword suggestion above. If you are worried about others opinions, I wouldn't be. If they are complaining/making remarks, you can try being nice (the crossword thing) but if it continues you could simply talk to you manager asking for people to basically be informed "he's doing his job, let him be". It's not the job of the clerk 3 desks over to monitor how hard you're working.

The people who watch this kind of thing are usually the same people who are slacking themselves (or at least worried they are, such as a workaholic).

As long as your boss knows you're doing a good job and doesn't think you're wasting the company's money, you should be fine.

MBCook
+1  A: 

Talk to yourself.

When I need a thought break at a client I take a walk to the coffee room for coffee or just water (sometimes I take these breaks ten or fifteen times a day, so I can't have coffee every time). If I'm worried about someone seeing me the hall too much, I make sure to talk through whatever problem I'm working on under my breath. It helps make it clear that I'm thinking, not only walking.

Best if you can stop talking to yourself when you leave work, however.

Larry Lustig
+1  A: 

I get paid to think. I don't apologize for it. I don't try to hide it.

One might find whiny resentful critics anywhere. Their behavior reflects on them--not on anyone else.

If you are working someplace where your bosses accept the whiny criticism at face value, you are much better off getting fired and going to work somewhere with rational management.

bbadour
+2  A: 

Here's a solution from commandlinefu.com:

cat /dev/urandom | hexdump -C | grep "ca fe"

It will make some data scrolling off the terminal.

Olivier Lalonde