|
I have never practiced "death march" programming. After about 12 hours the number of bugs and poor coding introduced starts rising, so your real productivity goes down.
The longest programming session that I remember is 16 hours straight, after which I had lots of poor code to rewrite.
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|
|
Good point, but it depends on your state of mind at the time. I will admit that my rate of production may have slowed down a bit, but there was no known bugs by the time I was done.
I was once brought in to write what was essentially a message server (they called it an email server at the time) and I had less than 2.5 days to do it. The company I worked for provided the satellite up-link for a service company that just went out of business. Which met that in 3 days their biggest customer would lose all the services they provided via us. Our company decided it wanted to take their place, after all we were the ones actually transporting the data. So the called me because they knew I was programming on the side. I spent about 20 hours the first day, before being to tired to continue. They got me a room at a hotel near by, so I could recover. By the end of the 2nd day, they had a program, complete with a UI, that could do the job. I doubt if it is still being use, but I know that it never failed (crashed or otherwise).
Before I was in corporate programming, I did not understand why so many of their programs were buggy. Afterwards, I was surprise that so many of them actually worked. The attitude that we want it now, so someone above you can get a speed bonus has cost companies more money than any thing I can think of.
INTP
"Program testing can be used to show the presence of bugs, but never to show their absence." - Edsger Dijkstra
"I have never been lost, but I will admit to being confused for several weeks. " - Daniel Boone
|
|
|
|
|
Working in the ( machine ) shop, moderate physical activity, need to stay alert, but often not _really_ think, at 14 hours we were definitely getting stupid. Only did that a few times, that when I was 30. Coding, I'd be going in circles _much_ sooner.
|
|
|
|
|
You're right. John is wrong. Even on Gallons of coffee, or other "uppers" the quality of output has to decrease rapidly. Something to do with brain chemistry, I'm sure.
9 to 10 hours a day is the most I can do. And I take several coffee breaks.
I have given up eating lunch at my desk, life is too short.
My brain tracks are defective. My train of thought is constantly getting derailed.
|
|
|
|
|
I have never understood this. At 5pm my brain shuts down. Literially! I cannot do anything that remotely resembles work after 5pm. I am very good from about 4am on. I almost always am awake at 5am and doing something. But after about 12 hours I am done.
I had a boss once that wanted to force me and others to work past 5pm on projects. around 430 or 5 my brain starts going offline. I would be sitting there at 530 or 6 just staring at the computer just taking up space. He was pissed. Yelled at me. I got up and went home. Next day I had a meeting with his boss. I explained that I cannot think past a certain time. Just can't happen. Brain doesn't work that way. At least mine. He asked how long I had been at work. I said I came in around 530am. yesterday and today. He looked at my boss and let him know in no uncertain terms that after 10 hours. Employees are allowed to leave for the day. No questions asked. That ended that discussion.
I didn't stay in that job 6 more months. There were other things with the boss that weren't fun. Too bad because the company itself was pretty good as a whole. Just that boss drove me out.
To err is human to really elephant it up you need a computer
|
|
|
|
|
When you keep regular hours, your subconscious brain becomes accustom to them. So unless you are a major roll and stop looking at the clock, it says that's enough - go home.
Working long hours on a regular bases is a bad idea. That has burned out a lot of programmers; they just could not stand it any longer.
I reached that point once. I had not taken a vacation for years, just a few days off every now and then. When I was reaching my breaking point and ask for a few weeks off, the manager said to finish my latest project first and I can have all the time I want. What he did not understand was that "it was not a want", "it was a necessity". I went home, but I did not come back. I did not even turn on my home system for 6 months. No internet, not email, no games, no nothing. Then I started looking for a new job.
They did bring my back a few times to modify some other software I had developed for them. But I never touched their main product again and when I check, 5 years later, they were still using the previous version. They never brought anyone in to complete my work, not even me.
INTP
"Program testing can be used to show the presence of bugs, but never to show their absence." - Edsger Dijkstra
"I have never been lost, but I will admit to being confused for several weeks. " - Daniel Boone
|
|
|
|
|
Nothing like you guys are reporting. Early in my career, I put in some fairly long weeks (~80 hours) occasionally.
Quickly, I realized that there was no discernable difference in my rewards for being extra-diligent and quit doing that. "XYZ has fallen behind, we need you to come in and save the day...again," gets old real fast.
To be fair, I was always a LOB coder for companies, not doing personal projects that I might've gotten into personally.
I also don't want to give the impression that I was a slacker. I took my job very seriously, and spent much of my off time thinking about designs and how to write more efficient/more reliable systems. As for the actual coding, though, an employer is paying for ~40 hours of my time each week, and that's what they got.
|
|
|
|
|
As a friend of mine once said. Just because we are not sitting in front of a computer, it does not mean we are not working.
FYI: Albert Einstein was know to take long walks to clear his head and just think.
When I first started designing and coding for a living, I would work a ridiculously large number of hours. What ever it took to meet my personal timeline. Therefore, the company decide to switch me to salary without an increase in pay. A funny thing happen then, I found myself with about 20 more hours a week of free time.
INTP
"Program testing can be used to show the presence of bugs, but never to show their absence." - Edsger Dijkstra
"I have never been lost, but I will admit to being confused for several weeks. " - Daniel Boone
|
|
|
|
|
Maybe I can count myself as "fortunate" for never having to put in those sorts of long consecutive hours.
However, I have worked full 7-day weeks for 3 straight weeks before. Once in my 20s - even though I had the stamina back then, it still got to me. If that makes me a lightweight, then call me a lightweight - I don't care.
Last time was just a few months ago. I'm now in my late 40s, and shortly after I told my boss this could not happen again. The stress was seriously getting to me. Bad hearts run in the family, and I have uncles who have described strokes to me and what I felt at one point wasn't all that different. No paycheck is worth that. Especially when, in this business, there's no such thing as "being paid overtime".
|
|
|
|
|
That 72 hour session was by choice. That was back when I was young and teaching myself how to program, in C, by doing. Back then, I did not purchase other peoples libraries. When I needed something, I just did some research and wrote it myself.
A few years ago, I was approached by a company who had a policy of working long hours. They would run 2 80 hour week sprints. Take a few weeks off and then go back into another design and implement phase of 80 hour weeks. When I was young I probably would have went for it, because I normally spent those types of hours in front of a screen. Being older now, I just thought that was nuts. Sure you had more off time, but you were killing yourself to get it. Personally I do not think it was worth it.
INTP
"Program testing can be used to show the presence of bugs, but never to show their absence." - Edsger Dijkstra
"I have never been lost, but I will admit to being confused for several weeks. " - Daniel Boone
|
|
|
|
|
OMG, we are talking like 1992-1993... We needed to implement some crazy stuff in our software to be considered for one of the biggest deals (nation wide company), but we were missing 3 key features, and they gave us a week to implement them all. Demo on Friday.
I was literally pulling every shift I could muster, like 48hrs, 6hr sleep cycle, back 24hrs, 6hr sleep, back, 16hrs work, 8hrs sleep, back. It was INSANE. I delivered on Thursday night to the team, they called the company, and I went home and basically slept the long weekend.
I remember wanting to die on Monday... Where I was told the prospect said: "OMG, we are blown away that you were able to add all of that functionality in 1 week. We assumed you would fail, so we already built the 20 computers we needed with the OTHER software our team will evaluate, and we don't have time to put your software into the mix!"
It was a rude awakening. I was proud of everything, except the result, and the lack of a life that I realized I apparently had! Pulling future all-nighters became an incredibly rare thing. Only if we were down... NEVER on the "promise" of deal.
|
|
|
|
|
Memory lane.
I remember doing things like that in the 90's to. That is actually how I got my first job. I was brought in to recreate 6 months work to meet their deadline, which was 3 weeks away. It seems they pissed off the previous developer and he left the company with the company laptop, the only place were the code existed. I have no idea what the previous coder wrote, all I know is I had something tested and in-place before the dead line. It was not my best work, but it kept the company for losing their contact. And they decided to hire me at double what I was getting payed at my regular job.
INTP
"Program testing can be used to show the presence of bugs, but never to show their absence." - Edsger Dijkstra
"I have never been lost, but I will admit to being confused for several weeks. " - Daniel Boone
|
|
|
|
|
114 hours. Was ridiculous. Was doing triple shot lattes to stay awake. Once done I found my back had totally seized up and an ambulance had to take me to the hospital.
Never again.
|
|
|
|
|
And here I thought I was nuts.
I once had a 2 day emergency development session and my doctor read me the riot act. Because he was treating me for some issue at the time and going without sleep was detrimental to my health. It is just difficult to turn your employer down when he offers you double time pay for two days work.
INTP
"Program testing can be used to show the presence of bugs, but never to show their absence." - Edsger Dijkstra
"I have never been lost, but I will admit to being confused for several weeks. " - Daniel Boone
|
|
|
|
|
Early in my career I did a 20+ hour Friday. When I got back to work on Monday and started working on the code again I found way to many "What was I thinking??" pieces of code. I decided then to NOT do that again.
|
|
|
|
|
Y'know, I just don't get this. I've stayed up 'til 0100 or so a few times, but never an all-nighter, never a 72-hour binge. My brain can't usually do code after about 10 PM. I do get up in the morning, go to work, and start straight in on coding again after 6 hours of sleep.
|
|
|
|
|
I've been coding non-stop for over 40 years.
When I'm on a roll, I code for about 18 hours at a pop, 7 days a week.
I think I pump out more code than any person has a right to...
".45 ACP - because shooting twice is just silly" - JSOP, 2010 ----- You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010 ----- When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013
|
|
|
|
|
...there is no one to celebrate with because no one else cares about it.
It's just a thing you had to figure out to get a thing done.
I just figured out how to use JCov (Java Coverage tool which is ancient).
I could only find the source for JCov so I had to build it.
To build it I had to get Ant (build tool) installed and figure out how to use.
And I needed some additional Jars which were difficult to even know where to get.
I felt like I was downloading jars off some guys server in his garage but it was actually oracle (Index of /repositories/releases/org/ow2/asm/asm/7.0[^])
I also had to learn how to use JUnit (unit test framework).
So you have to
1) build your targets
2) build your target test classes that use the targets
3) add instrumentation to the class files using JCov cryptic commands
4) run the tests against your targets while invoking another JCov cryptic command which will watch the junit tests to see what is covered (outputs report.xml)
5) create a html report using the JCOv cryptic command which uses the result.xml
Here's a snapshot of the coverage report[^] on my very small Calculator code.
Check out the commands I had to run to get to that:
@echo off
REM ####################################################
REM Prework -- clean up old files
REM remove the report directory and all files
rmdir /S/Q report
REM remove all generated xml files
del /Q *.xml
REM Re-compile targets to insure they have all code changes
javac -cp .;junit/* Calculator.java CalculatorTest.java
REM #####################################################
@echo on
REM 1) Create instrumentation for target class -- creates template.xml
java -jar C:\Users\target\DevTools\jcov_3.0\jcov.jar Instr Calculator.class
REM 2) Run the code with instrumentation -- creates result.xml
java -cp .;C:\Users\target\DevTools\jcov_3.0\jcov_file_saver.jar;junit/* org.junit.runner.JUnitCore CalculatorTest
REM 3) generate report from result.xml
java -jar C:\Users\target\DevTools\jcov_3.0\jcov.jar RepGen result.xml
But, it's all esoteric and I'll forget it when the project is over.
|
|
|
|
|
So write a quick article or tip - it can remind you, and maybe help some other poor sod with the same problem.
Mind you, I've found some of my own tips when googling something I needed to do but forgotten I'd written about ...
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
OriginalGriff wrote: So write a quick article or tip - it can remind you, and maybe help some other poor sod with the same problem.
But, what about my laziness...?
OriginalGriff wrote: I've found some of my own tips when googling something I needed to do but forgotten I'd written about ...
I've done that too. It's really funny. And, actually, one of the main [only] reasons I joined StackOverflow and contribute is so I can find my answers later. Yes, I'm serious.
If I just put the info in a google doc or on my local disk somewhere I'd never find it.
|
|
|
|
|
raddevus: what about my laziness...? Nothing I can do about that ... but think of it as investing in your future laziness?
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
raddevus wrote: If I just put the info in a google doc or on my local disk somewhere I'd never find it. That's why so many of my "projects" include a text file howto
So as long as I can remember that I did something similar already, ...
Software rusts. Simon Stephenson, ca 1994. So does this signature. me, 2012
|
|
|
|
|
Peter_in_2780 wrote: That's why so many of my "projects" include a text file howto
So as long as I can remember that I did something similar already
That's actually a great idea. thx
|
|
|
|
|
find ~ -name howto or locate howto Waaay too easy!
Software rusts. Simon Stephenson, ca 1994. So does this signature. me, 2012
|
|
|
|
|
Ah, I know that issue well. I have written in depth papers on subjects in the past, with the intention of using them as reference material at a future date. Then I either forget that a I wrote them or forget were I stored them. Either way, it is a common issue.
Now if I just had the time and the wherewithal all to write a library program to keep things organize, I would probably be good to go.
INTP
"Program testing can be used to show the presence of bugs, but never to show their absence." - Edsger Dijkstra
"I have never been lost, but I will admit to being confused for several weeks. " - Daniel Boone
|
|
|
|
|