Dr Duncan James's profile photoLee Smallwood's profile photoMiroslav Lapour's profile photoLuca Sala's profile photo
My annoyed co-workers have asked many times "Y you script it all?"
Same here. The problem is, I have an urge to write scripts for pretty much every automatable task - even those that would normally be solved close to the vertical line... :)
heh heh heh - doing this at one job got me fired. :( But they still use my script...
* sees red vertical line segement*

* flips out! *
Just to the right of this graph, and extra arrow: "manager fires geek for not working hard enough"
If a computer can do it, then it doesn't worth wasting my precious brain power.
This reminds me of Terence Parr (author of ANTLR) motto: Why program by hand in five days what you can spend five years of your life automating?
Explains the IT life.... But you get to taste the success at the end!!!:)
best example yesterday: i wrote 2 regular expressions... the other guy was going to edit manually about 100 entries... fu*k yeah!
That just vindicated my life to some extend...
After 'runs script' you forgot: debugs script, runs again, debugs again, re-works, makes unit tests, improves script, fixes failed unit tests, fixes new bugs, makes new features, etc. ))
I actually have experience of this (if in a more basic way): I wrote a simultaneous equation which would provide the correct number of energy-saving bulbs versus halogen energy-munchers for a given area of enclosed space.

Unfortunately, nobody remembered their high school maths, so didn't understand :(
intelligence, knowledge and efficiency are excellent tools for work....
Thanks Bruno... Writing script to do the repetitive task is acceptable other than else.....One time script saves our time than lots of doing manual task.
OMG ! thats true.
but I belive at times its smarter to go manual then go coding for some tasks where you may lose precious time DEBUGGING !!!
I would have liked to have the time spent to write script to automate a little lesser but anyways this is way cool... Thanks for sharing..
Who the hell fills their life with repetitive tasks and script writing? You guys need to get outside and do something in the sunlight.
insightful. Question is how long does it take to automate the script
Draw a circle with pen and paper. then write a program to do the same include the a roughness algorithm to simulate unique shape the human hand produces.
Holy cow, this graph summarizes about 80% of the issues I have at work.
If the task size never reaches the intersection point, non-geek still wins.
well non-geeks end up using geeks methods.
Therefore non geek will get to infinity before geek so non geek wins in the long run.
Scripting is beautiful when you need to process 250000 files...
if task size is smaller then effort to write script should be less so intersection point moves in relation to task size
I need to start a graph at work to control my stress level, thanks.
For data intensive jobs, just cleaning up the data could take lifetimes if done manually so heavy automation (mostly regexp replacing strings) is not an option - it is the only way :-)
The real trick is to know when to go manual, and when to start writing a script for it.
Ajoy S
Don't give the secrets away..... it's job security .... Automation means budget cut ... ultimately loss jobs.....:-)
geeks are the special set of talented people
I read a story not long ago, where the claim were that a good IT manager were a lazy IT manager.
The idea were that if your IT guys were running around putting out fires, they may look like they get a lot done, but they are disorganized. A good IT guy prepares and scripts his way out of trouble, and seems relaxed and organized.
+Elena Rocks We need more Geek Gods (and definitely more Geek Goddesses), but beware of Geeks bearing gifts :)
+Jase Robinson I believe the point is to automate the task so they CAN get out to do something... Or get back to their WoW raid...
SO true!
I get annoyed, try to automate it, and I may not have a big enough task. :)
I may loose, but I win in learning something.
I am so guilty of this, Crap! I'm a geek.
True... multiple file renaming, vlookup in Excel, RegEx, text compare, binary compare, dos scripts and many other ways. And if a task is too complex, there is still C++, Pascal, VBA, Java. I love automation.
Replace "task size" with "number of iterations"
Then some "ordinary people" will fail to understand this, and don't realize they are in the blue line. :)
String comment(String who) { return who .= " ftw !!1"; }

you must early decide to automate tasks, and then save your script to a place where it can be easily found for the next job.
How many old Greek ideas can we substitute with Geek, and make it better?
- Geek democracy?
- Geek Gods and Goddesses, though I'm an Atheist, I'm willing to make an exception with +Felicia Day
- Geek...gifts?
-`Geek ...?
Its ALWAYS worth spending precious time to write the script. However, it's equally important to save and re-use code wherever possible! Bonus time savings.
The problem is when the geek tries to automate even small tasks that will never do again, then the non-geek wins.
That was what I were referring to earlier, the trick is to know when to script. :P
God I love this....I am going to reshare this. My friends just don't understand when I stop and say "I can automate this!"
Oh, I just noticed that this have 1102 shares and 995 +1's.
There must be a lot of geeks here :)
Even worse when the blue line represents your spouse
Question, what is your most used, and/or favourite scripting language/tool?
Just the name, and keep it short with he reason :)

In my case the tool is probably Regexp, I use it just about everywhere something needs to be found or changed.
The language is Java and Perl. Java because I'm good at it, and perl because it's just so damned convenient and fast :)
So True. This works out great for geeks so long as the vertical line indicating "Project Due Date" (not shown on chart) is after the automated line / non-automated line intersection point.
This is both sides of me in one graph!
This graph when clicked on, may have a script embedded in it (how ironic) which when viewed and then you try to go back to your Google + page asks for your password to reenter.....hrmmmmmmm
My experience is that most admin types spend more time writing scripts than they'd spend just doing the task manually, and frequently script things that are are basically one-offs. Not that I'm not all for the automation of complex tasks, just what I've noted.
And there are people that call these "scripts" appliances and sell them. :)
The problem is, I'm going to end up scripting myself out of a job...
Explains right for a geek. But it is not that a persons is always a geek. He changes roles.
according to that graph, the non-geek is winning more than he's losing
Graphs misses the bug hunting portion though
+Nick Bartz Depends on how long you extend the graph beyond the right edge :)

+Dwight Trimble Only if your boss is an idiot, and luckily, despite popular stereotypes, most aren't :)
best scripting language is bash! Quick and simple, with a lot of useful programs and tools!
I am not a programmer, just think too much sometimes.... LOL

the non-geek makes fun of the geek's complicated method at a meeting with bosses (while the geeks is working hard at his desk), bosses get upset, fire the geek... the non-geek takes geek's script, which make him produce, he goes bragging to the bosses, the bosses promote him and claim the script as theirs....
As a non-geek married to a geek, I agree!
+Bronislava Slagle, that will be good excuse for geek to create scripts that poorly documented and full of trap pits. :-) So when the script tje bosses depend on failed, he will be forced to hire the original geek as consultant (obviously with much higher hourly salary). :-)
as a geek programmer, i agree. BUT, at the end, where the geek wins is NOT a given...I must admit.
I believe, if a task that gets repeated 3 times is a candidate for automation...
if you do,you'll be win.if you don't, you 'll be nothing
and people say using the fast wat was faster
@ most its a 1 time manual process.
Haha! My husband is a total geek. Or should I say, professional geek. He's a computer programmer.
The lines should probably be switched around if you were trying to go for accuracy and understanding, but I don't think you are..plus it really drives home the idea. Good job--that is some nice work.
lol This is why i have a job. I find solutions.
The real geek will try to automate before having done it manually. That way one cannot gauge how big the task is and how worthwhile automation really is. A cost/benefit analysis does not usually happen and it more depends on the preference of the person facing the task. 
+Daniel Freitag I usually find that a task I have to do once is done manually. If I end up having to do it twice, automation research is now required because if I have to do it twice, chances are a third time is coming around too.
+S P Arif Sahari Wibowo the only flaw is that if the script fails, the promoted colleague will search for a better programmer (he will be PO'd that the original put him in trouble) --- so perhaps another geek will get hired with good salary :-)
+Jeremy G agreed. There is indications like this but you can't ignore the cost side of the equation. Just because a task is to be done two or three times it doesn't always justify automation. But I agree it's certainly an indication
A quote from our admin, "laziness is the hallmark of any good sys-admin"
Mmmm, that sounds like Dilbert's pointed haired boss.
It is also a reflection upon the laziest person in the office. I will work very hard to allow myself to be lazy.
WOW. 2600+ shares!? O_o. If I had known this ugly chart would be so popular, I'd have drawn it better :-)
I mean... I would have written a script to draw it better.
I think we may be able to produce a similar graph illustrating how a parent goes about a task versus a teenager. 
This is the reason i say programers are lazy, it's the total amount of work that meters
The graph is funny - but isn't it wrong? Time spent is not stable as the task size grows. Assuming the script code only codes 1 task.

If task size increases more code would have to be written and you get looks like stairs on the graph for us geeks. Giving Non-geeks the win.
Ummm... the last time I checked the winner is the one who crosses the line first. This isn't a sprint by the way, it's a marathon. The problem with the scriptor however is that, in the long run, he also puts himself out of work because tasks that used to take all day are now accomplished in minutes.
Don't forget script maintenance they can get just as repetative and if anything changes in the envirernmet script becomes usless again. Humans can see the issues and reacte accordingly. Also once scripts are done they are usally haded over to someone who knows nothing but to run it and if it does not run all hell breaks loose.
Don't you know that t (time) always goes on the x-axis? Otherwise hilarious.
I need to write a script that writes all my scripts.
There is a learning in the process of writing scripts to automate... i feel that trying this way also helps learning
you left out the 'reworks script' and 'rewrites script to cover all possible use-cases' and 'rewrites script to use HEREDOC' &c &c
i agree but the bar for time spent should go down with it being automated
It doesn't go down because it's not time per, but total time spent. You don't get back the time you spent on the task in the past, you just don't have to spend any more time on it. That's why the bar is flat.
But Many companies can not wait for you to the cross
I reckon the time until script payoff is better
Only happens when you have to do it all the time. If I am not sure that I'd do it again and again for the next millenia (AKA, not that annoyed yet) I save command line snippets in my favorite random file and do copy pasting. If it gets to the annoying levels, then the scripting is done.
kai hu
non-geek win before the cross
I think this is why so many people hate non free software like Windows. The more frequently things change, the more effort is wasted and the more the click and drool lazy person laughs. Unix and now gnu/linux has stability measured in decades - it's what you use if you want to get things done.
Also, as the number of repetitions increases so does the chance of an error in the manual mode.
Sometimes you don't have to go "as far" as writing a script. Many times I've assigned strings or macros to F-keys and had a semi-automatic, error-free solution (e.g. changing a parameter via command line interface in dozens of boxes)
На самом деле есть третий вариант: -нанять гика написать скрипт. Мне кажется это самый оптимальный вариант.
I would like to see the extrapolated version of this graph as this picture shown here is not that satisfying. (just a lil difference)
Geek to geek - The axes should be switched with each other as productivity is a function of time:)
It has been mentioned above: the y axis is not time per-se. it's accumulated time spent on the task.
+Robin Manson-Hing You are absolutely right, it would be more intuitive with time on the X axis and work on the Y axis. Also, as +Bård Aase pointed out earlier, "iterations" would have been a better label than "task size". I drew this chart at 4 in the morning and didn't think a lot about it. I'd have been more careful if I knew it was going to be reshared 3600 times :-)
Great image. I often write scripts for others after being annoyed by seeing them repeat the same steps continuously. It has even allowed me to win deals vs competition. The only one I can't help is my wife.
Geeks only win cuz the non-geeks are having sex with females whilst doing it so don't have time to write the scripts.
I can't believe how many 9gag posts make it to the What's hot page here on G+... Sad, sad reposts...
Indeed this is so very true! And the reason I quit a job, way ago, where I was forbidden to use a scripting solution rather than do a repetitive data-entry job manually. Added advantage: the script would be error free while the manual job needed at least twice very boring correction loops (also manual of course!)
and if you graphed time spent over amount of work completed, you'd see the geek's line looking like a rocket taking off over a long platform.
On the subject of eternal repetitive tasks: Do you have a script that wanks for you, or do you just wank yourself?
If this were XKCD, there would be an point on the time axis labeled "the long run"
I need some heavy scripting learning for running my current office. I have a Windows Server 2003 domain with 1 Linux box and an iMac. Workstations include either Windows XP Pro or Windows 7 Pro systems. Is there one common scripting language to all these platforms that I can use?
So much truth to that and often something that I have to explain to non-devs all the time. Once is a freeby, twice we'll talk, three times and it's automated.
wrote a script to replicate wife and make me a sandwich. After long compilation and execution script told me "go make it yourself", sen't me divorce papers, now it talks to my wife about purses and how "all men are pigs"

/joking; my wife is an angel, I don't deserve her :)
@John Hart - Try pearl? You'll have to install a few things onto the XP boxes, but it's doable.
Oh yeah! The geeks always win the long run. Geeks rule the world!
The power of programmers (and of all the other "makers")
Now if I could script annoying ppl away
As a friend used to say, if you need to borrow a tool more than once, you're better off buying it (auto mechanic). Same principle applies. Scripts FTW!
Bruno, did you do this drawing? If so, could you ping me off line? buzz at activewords dot com
geeks pay more. but truely fun is the process.
Hahah, I spend so much time automating, I'm not sure I ever break even
I love this, geek makes value absolutely
even without winning at the end, the journey is better on red line
+Yvan Munoz yeah, that sounds like a good task to automate via a Chrome extension for instance! I sometimes write scripts on Chrome for repetitive stuff I have to do on web pages.
problem is when geek writes a script for ANY task (just cause it's fun) that may never surpass the non-geek line :)
Yeah, I've had this happen often: "Oh, I had to do this 3 times already and I have to spend 1 minute each time. I'll just take the next hour to write a script so I can do it in seconds." Even though I know that, in a whole lifetime, I won't have to repeat that task more than the 60 times it would require for that to pay off.
This is one of the most true things I have seen
It is missing the gray line showing the impact of all the other geeks who think it could be "done better" with THEIR language/platform/framework.

This also doesn't factor in the Geeks with weak leadership having to add user interfaces and weak features for non-geeks which bends the whole thing up ;)
Let's not forget "brain scripting" -- understanding which can be leveraged and treating everything as a chance to learn and that learning acts as the new rule book or script. And then sharing this script or knowledge as a program or as shareable insights.
Wow so many comments, but I still don't know what a script is, although I guess it is nothing to do with actors lines.
Completely agree but your diagram also shows that Obviously there is a range of task sizes (in your diagram almost all tasks ;)) where the non-geek will be more efficient :)
Ha ha - so true. Geek wins by a mile if the task repeats itself alot ;)
unfortunately "loses" should say "loses job." :-(
If I ever feel like I'm going to do it again, it must be automated.
I have a different pattern: Every time I do it manually I automate a step of it. So I don't have the vertical line, just a line slightly higher than the doing it entirely manually line. This way tasks which I really do repeat eventually become fully automated, but tasks I only repeat a few times don't burn more time than needed.
Wow Clay, fired for scripting? How unusual, it was the other way around here the first time I automated something.
Hysterical But I hate to say it, I'm with Grethe on the grocery list ap!
I've always leaned toward automation, generalization, abstraction and reuse, but after many years of blind devotion to those principles, I've been learning to question them and try to honestly evaluate the context. Optimization isn't necessarily achieved by a naive rush to optimize.

I referenced this a few nights ago with some friends. Yes, this us the geek way. 
discussed this post with 1 person in a hangout.
Experience tells the wise geek how soon to get annoyed and whether to build the script or alternate method at all based upon this projection held unconsciously....
I need to make this my wall paper.
Can replace "geek" by "me" and "non-geek" by "my boss"
Iiterally did this the other day. I had to use a dataset without imputed data but had removed outliers based on my imputed data. Thankfully instead of removing the outlying records by hand I took the half an hour to write the syntax so it literally took me 10 seconds to remove them the second time. It was pretty awesome.
Today I wrote script for automatic filling of doodle.com in bash:
sleep 2; for i in `seq 10 21`; do xte "str $i:00"; xte "key Tab"; done
#Linux and #bash FTW! :)
John Ek
That is the most True thing I have ever seen. I love being a geek. And I hate being annoyed. Thank you for sharing.
it's not just about time. non-geek wins when his bill-rate is less
It's sad how so many developers don't catch on to this simple concept.
+Bruno Oliveira are your the original author or do you know? cause i redrew it on my site and love to give credit. thanks.
I'm the original author (when I did it, I had no idea it was going to be reshared so much!). Feel free to use it!
It happens to me too... Sooooo, where is the club to sign in? :-)
Add a comment...