"Working" from home.
-
TLDR: TIL "Working from home" involves not actually doing work because you can't connect to the company network (from your bed no less) - but do you have to be so blatant about it? And why does no-one else of consequence give a fuck?
So, I get a filtered email from one of our automated build servers.
A while later a second server comes in.
Then a third server chimes in.
And then the fourth server decides to join the party.
Now given that these servers generally start their builds about 90 minutes apart, this indicates that rather than a transient problem with a particular server (which I've never gotten to the bottom of, but put up with the occasional failed build,) someone Done Fucked Up® and checked something into SVN that they shouldn't have.
So I go dig up one of the emails. They are in the general format of:
from: slave-04 <buildbots@mycompany.example.com> reply-to: pjh@mycompany.example.com to: PJH <pjh@mycompany.example.com> date:Wed, Apr 1, 2015 at 10:40 AM subject: [version] FAILED: make -C /home/autobuild/version release
[list of copy/pasteable
exports
should I need to go retry the build manually from where it left off][log of what my autobuild script tried to do and the result of each command, like
- wiping the previous autobuild on that machine
- checking out the SVN source
- ensuring there's enough disk space for the build
- attempting the actual build...]
[And on failure....]
[
tail -n 100
of the output from the last command][
svn log -l 10
so I can normally get a quick idea of who to blame if any of those match the previous block][attachment: contains full build log from the start of the script]
So, the
tail -n 100
indicates that someone still can't remember that they need to put a\
before an unadorned_
in atex
file (let alone 'compile' the release notes before checking in to check for such errors):[][][]\T1/cmr/m/n/10 JIRA_TICKET-765[][]:\T1/cmtt/m/n/10 logging \T1/cmr/m/n/10 - changed print spec-i-fier for vari-ables Cur-rent-DEV and g_CurrentDEV ! Missing $ inserted. <inserted text> $ l.84 ...file_with_underbars, other, inhouse, programs} updated to operate with l... ! ==> Fatal error occurred, the output PDF file is not finished! Transcript written on releasenotes.log. make[2]: *** [releasenotes.pdf] Error 1
The
svn log -l 10
indicates that this is indeed the case:------------------------------------------------------------------------ r12345 | other.programmer | 2015-03-31 15:31:36 +0100 (Tue, 31 Mar 2015) | 1 line Changed paths: M /svn_root/other/directories/release/releasenotes/V4.next.tex JIRA_TICKET-987 - changes to in-house utilities [even though this *particular* checkin has fuck all do with them and is a change to the release notes. Note that there were about 7 other individual files checked in in 7 individual checkins]
Now this isn't an unknown problem. Everyone in the department has been bitten by this in the past.
Everyone knows what you're supposed to do:
- prefix your
_
with\
in the release notes
- compile the release notes to make sure you didn't miss one
- check it in.
(1) rarely gets followed by some people. You can guess what happens with (2).
Everyone's capable (sadly) of doing (3) without necessarily doing (1) or (2).
Anyway, when [!1, !2, 3] happens I generally forward the 'failure' email to the person indicated the
svn log
file to have last touched (therefore not checked) the release notes, and tell them to fix it.This time the build failed in this manner, this happened:
from: slave-01 <buildbots@mycompany.example.com> reply-to: pjh@mycompany.example.com to: PJH <pjh@mycompany.example.com> date: Wed, Apr 1, 2015 at 6:49 AM subject: [version] FAILED: make -C /home/autobuild/version release
[body of email as above - releasenotes.tex fucked]
from: PJH <pjh@mycompany.example.com> to: Other Programmer <other.programmer@mycompany.example.com> bcc: Sorta Manager <sorta.manager@mycompany.example.com> date: Wed, Apr 1, 2015 at 8:42 AM subject: Fwd: [version] FAILED: make -C /home/autobuild/version release
O.P, build broken again, you [ed - yet again] appear to have been the last to touch the file...
[forward of above email]
from: Other Programmer <other.programmer@mycompany.example.com> to: PJH <pjh@mycompany.example.com> date: Wed, Apr 1, 2015 at 8:52 AM subject: Re: [version] FAILED: make -C /home/autobuild/version release
Hi P,
Can you do me a favour and fix it.
Yes I should have ran make but
$BLAND_EXCUSES
I'm currently tucked up in bed. I'm trying to work from home today. I have no VPN to
$COMPANY
.If you can't fix it then I'll have to drag my ass in to work.
from: PJH <pjh@mycompany.example.com> to: Sorta Manager <sorta.manager@mycompany.example.com> date: Wed, Apr 1, 2015 at 9:07 AM subject: Re: [version] FAILED: make -C /home/autobuild/version release
How does this work then? [ed - implication - working from home but no access to work resources]
Answer, dear readers, there was none. For the sake of my sanity I just stuck in a couple of
\
's and checked it back in.NB: Even though I live a 5-7 minute drive from the main office, I can still get to any company resource (I'd have from my desk) from my laptop at home. And technically from anywhere I can get to my home laptop (i.e. anywhere I have an internet connection).
I think the fact that they can "work from home" yet not be capable of doing the most basic work from home is inexcusable.
Anyone I asked about this incident that day didn't.
-
I think the fact that they can "work from home" yet not be capable of doing the most basic work from home is inexcusable.
Yes.
If you can't do most/all things from home that you can do in an office, you're not working from home, you're just at home.
-
I think the fact that they can "work from home" yet not be capable of doing the most basic work from home is inexcusable.
... that would end any good will between me and that programmer.
i tend to not be subtle in the slightest when that happens
my reply probably would have been
from: Accalia accalia@mycompany.example.com to: Other Programmer other.programmer@mycompany.example.com CC: Sorta Manager sorta.manager@mycompany.example.com date: Wed, Apr 1, 2015 at 9:07 AM subject: Re: [version] FAILED: make -C /home/autobuild/version release Since you are "working from home" without access to the VPN or any other work related resource i have fixed the build failure that was caused by your failure to properly test the build before checking it in and breaking the build server. Have a good day <s>playing World of Warcraft</s>"working from home".
-
You have to understand though. Working sucks.
-
TRWTF is not setting your CI / build server to only send success emails on the first success after failed builds.
-
Going "rogue" from home could make sense if you are doing experiments, greenfield or some fast & loose catching up, so you need more time/concentration than you'd get at work.
But if you could get full VPN to work, there's no excuse not to get it (and THEN go work from home, without a care in the world). The guy's a WTF and must feel pretty comfortable with his job security if he's acting like that.
-
TRWTF is not setting your CI / build server to only send success emails on the first success after failed builds.
I sometimes want to check that the build servers are actually working (Sorta Manager above has taken to arbitrarily commenting out the
crontab
jobs without telling me) and how long it's taking them (it takes about 2¾ hrs currently.)
-
Depends which colleague it is.
Some of them I'd have just told them to get into the office and fix it themselves.
The others wouldn't be trying that stunt anyway.
-
The guy's a WTF and must feel pretty comfortable with his job security if he's acting like that.
I'll be bringing it up officially sometime soon, I think.
-
Depends which colleague it is.
any of the ones that would pull that sort of stunt do not deserve any sympathy.
they would be very lucky if i only CC's their boss. if they were already on my shit list i probably would have CC'd their boss+1 as well
like i said, once you fall from my good graces i am not subtle in the slightest. Good news is it's rather hard to do that so long as you're actually trying to do your job.
For example if they were unable to VPN in because internet at their house was out and they were emailing over mobile, that would be a strike against them but not an instant drop into the outhouse. being unable to fix it because they forgot their laptop and was getting ready to come to the office and grab it (or work from the office anyway) would have been a raised eyebrow and i would have fixed it.
but being in bed and unapologetically without VPN? nope. that's beyond the limits of my patience.
-
I sometimes want to check that the build servers are actually working
Ours has a webpage. I check it every now and again, but I can see the benefit of having it handy right there in your deleted email.
-
Ours has a webpage.
Mine is just a bash script I cobbled together called 4 times a day (staggered by 90 mins per server) from
crontab
, nothing fancy like what you presumably have.
-
-
Now this isn't an unknown problem. Everyone in the department has been bitten by this in the past.
No offense, and the story's still a WTF, but why don't you just automate it then? Solve it once for everybody.
-
Mine is just a bash script I cobbled together called 4 times a day (staggered by 90 mins per server) from crontab, nothing fancy like what you presumably have.
Shouldn't you be using BuildMaster ;-)?
I really recommend installing something though (I use Jenkins, but there is heaps of them). It is mostly a fancy cron with web gui, but the version control integration and ability to mail the people who committed since last good build is really useful.
-
You just fell for an elaborate April Fool's joke
I wish. It wasn't.
but why don't you just automate it then? Solve it once for everybody.
Automate what? The insertion of \ before any unescaped _, %, and any other number of characters?
In this latex file (which the common, but not the only reason for a build failure this late in the process)?
In all latex files?
What about all those .c files that could have similarly build-breaking syntax errors?
That's a slippery slope that ends up syntax-checking all the other code that's being checked in on a commit-hook.
Which is unreasonable, since the only way to do that is compile it.
And since this is a full OS build, not just a standalone app, expecting people to wait 2hr+ (see above) for each commit they perform is not going to happen.
In fact it is automated... all they have to do is before doing
svn ci -m "checkin message"
is
make releasenotes
which takes seconds.
But apparently for some snowflakes who work here, that's too much effort to remember doing.
Shouldn't you be using BuildMaster ?
Has Alex released a Linux version already?
I really recommend installing something though
I'll probably get round to it, but this was basically a PoC (can we actually automate our build without hand-holding it intervening half-way through) that ended up actually getting used (yeah yeah, I know) -
-
Automate what? The insertion of \ before any unescaped _, %, and any other number of characters?
I don't know how your dumb system works, I'm just saying if it's a problem, fix the problem. Right? We're engineers? That's what we do... right?
That's a slippery slope that ends up syntax-checking all the other code that's being checked in on a commit-hook.
You don't have to slide all the way down if you don't want to!
But if you're sitting here telling us, "oh this problem affects everybody all the time and here's the extremely trivial fix", then just fucking fix it in an automated way and save everybody's time.
You could just NOT use the apparently easily-broken Latex format in the first place, if it's so easily-broken. Who the fuck "compiles" text files? No wonder people can't wrap their head around it, it's totally mental.
-
But if you're sitting here telling us, "oh this problem affects everybody all the time and here's the extremely trivial fix",
Where?
Now this isn't an unknown problem. Everyone in the department has been bitten by this in the past.
Everyone knows what you're supposed to do:
- prefix your _ with \ in the release notes
- compile the release notes to make sure you didn't miss one
- check it in.
(1) rarely gets followed by some people. You can guess what happens with (2).
Who the fuck "compiles" text files?
People who follow the DRY principle and only edit one file to produce multiple output formats.
For counter-example, I presume in your shop you have your PDF and HTML versions of your documentation in separate files and are meticulous about updating both with the same information at the same time.
-
make releasenotes which takes seconds.
if the release notes issues is common enough i can see making an svn hook that requires that build target succeeds before allowing checkins. adding hours to checkin is unacceptable, but a couple of seconds could be justified if the problem you're solving is widespread enough.
-
I'll probably get round to it, but this was basically a PoC (can we actually automate our build without hand-holding it intervening half-way through) that ended up actually getting used (yeah yeah, I know)
Well, you'll keep using most of the work anyway. The build server will do the checkout and mailing and store the old artifacts (and optionally prune them after time if you want to), but if you have some atypical build process, you still need to write that bit of the script. So it's just natural extension of such PoC to put it in a more advanced scheduler. With the big advantage that then you can use it to manually trigger release builds (since our release builds involve four compilers that run on two different platforms and we don't each have all of that, it's the only way).
-
if the release notes issues is common enough i can see making an svn hook that requires that build target succeeds before allowing checkins.
Has been considered, but I'm not sufficiently proficient with the the hooks to do that, plus I don't currently have the time to figure out the smallest subset of checkout that I can get away with to be able to do that.
but a couple of seconds could be justified if the problem you're solving is widespread enough.
It's not as widespread as Blakey tried to make out - I'd rather get people to do what they're supposed to and fix the problem, not fix the symptom of their laziness/cant-be-arsed-ness.
The main problem here is not the build failing (nor the reasons behind it) - it's the fact that the person who caused the build to fail, once told to fix it, couldn't because they were "working from home", when it's obvious that they were doing very little work if "I can't fix it from here" is why I have to do their work for them.
-
It's not as widespread as Blakey tried to make out
ah. then not worth the time making the hook.
it's the fact that the person who caused the build to fail, once told to fix it, couldn't because they were "working from home", when it's obvious that they were doing very little work if "I can't fix it from here" is why I have to do their work for them.
that's called "taking informal PTO" if that thing is common then stop BCCing you replies. ;-) it's wonderfully focusing when you publically address their direct superior in an email that was clearly meant to not be visible to their direct superior. ;-)
or it's not focusing because they stop working for the company. ;-)
-
that's called "taking informal PTO"
The concept of PTO does not officially exist in most UK companies. You're either
- At the office working
- Working From Home, actually doing some work
- Off sick
- On holiday
Personal Days are not that common IME.
if that thing is common
First time I've directly seen it for a while, then again I've only just started getting people to fix the broken stuff they're checking into SVN.
-
The concept of PTO does not officially exist in most UK companies.
on this side of the pond PTO is usually "Sick time + vacation time" in one pool of days.
if you're really lucky it's just vacation time and there's a different policy for sick time. but that's rare.
unless that's more a regional things and i'm projecting onto the rest of the coutnry... that could be the case too i guess.
-
The concept of PTO does not officially exist in most UK companies.
A quick Google suggests it's just a fancy term for the combination of sick days and paid holiday.@accalia: You've pretty much got it spot on ;)
Vacation days are actually an EU thing; minimum 28 days each year. The UK does it as the eight bank holidays and 20 other days.
-
if you're really lucky it's just vacation time and there's a different policy for sick time. but that's rare.
In the sense of, "If I didn't have bad luck, I'd have no luck at all." I've taken leave due to being sick, but it's very rare. I probably took 3 or so days off a few years ago when I had pneumonia, and that was a lot.
When you break it out like that, it just makes people lie about being sick.
-
Personal Days are not that common IME.
Nor mine.
The UK does it as the eight bank holidays and 20 other days.
I get 25 days + the bank holidays. And I'll get another 3 this year as I've been here for Y amount of time.It's too much (yeah - FWP) and I struggle to use it all even with selling 5 days every year.
-
Personal Days are not that common IME.
There is 'compassionate leave' (I think), but you have to have a fucking good reason to get it.
-
For example if they were unable to VPN in because internet at their house was out and they were emailing over mobile
If their internet doesn't get fixed soon, these people here are told to either a) take the day off on holiday or b) get into an office here.
-
it just makes people lie about being sick.
depends on the policy.
the one we have here is officially:
"Sick time: Unlimited. Note that you are still expected to perform your job satisfactorily despite any sick time taken. Should you fail to perform satisfactorily or abuse this policy disciplinary action will be taken which could result in garnished wages and/or termination of employment."
-
If their internet doesn't get fixed soon, these people here are told to either a) take the day off on holiday or b) get into an office here.
that would be my reaction too.
"Your internet is out at home? So when can we expect you to make it into the office?"
-
I get 25 days + the bank holidays. And I'll get another 3 this year as I've been here for Y amount of time.
Hmm. So do I... (the 3 extra are a recent implementation.)
It's too much
Speak for yourself. I've been known to take the whole of December off with days to spare in the past..
There is 'compassionate leave' (I think), but you have to have a fucking good reason to get it.
Death of an immediate family member is typical - my mother dying was one such. When father in law died I had to use holiday instead for time off for the funeral.
-
I get 25 days + the bank holidays. And I'll get another 3 this year as I've been here for Y amount of time.
It's too much (yeah - FWP) and I struggle to use it all even with selling 5 days every year.
It's pretty good where I work. We get 26 holidays + bank holidays + 5 sick days (although you are allowed to use holidays as sick days if you've ran out of sick days).
You can also get paid for up to 6 unused holidays and all 5 unused sick days at the end of the year.
-
garnished wages
Your wages come with a sprinkling of coriander?
INB4: Yes, I know what you're talking about. But I can't resist the joke ;)
-
the one we have here is officially:
"Sick time: Unlimited. Note that you are still expected to perform your job satisfactorily despite any sick time taken. Should you fail to perform satisfactorily or abuse this policy disciplinary action will be taken which could result in garnished wages and/or termination of employment."
I could see that working for some companies. It fails spectacularly when your income is based on billable time to customers.
-
-
Your wages come with a sprinkling of coriander?
no. we use nutmeg instead.
I could see that working for some companies. It fails spectacularly when your income is based on billable time to customers.
Yeah, that won't work well for every industry. It seems to work well for us though.
-
I could see a precommit hook being a slippery slope, because people start relying on it. And then you'll get more errors on different files.
Better to do it like this - make it procedure for people to verify their changes don't break stuff, and call them out on it if the periodic builds fail by their fault.
-
It's too much (yeah - FWP) and I struggle to use it all even with selling 5 days every year.
I've encountered people who have this attitude surprisingly often, seemingly preferring to work rather than... do whatever it is you do in life... I wish I could take your "too much" days :)
-
Better to do it like this - make it procedure for people to verify their changes don't break stuff, and call them out on it if the periodic builds fail by their fault.
That's basically what I'm doing. I may need to adjust the CC and BCC lists if the wetware problem still exists however...
-
We have the build/test result mails going to the entire dev team. If something breaks, QA reopens the bug that they made last time something broke, and that person is responsible for investigating. And of course bugs are public.
So if you break something, you're likely to get assigned investigation of future issues in the same area until someone else does something bad enough you can get the bug moved.
-
Here: 30 holidays plus bank holidays. Unlimited sick time (but need doctor's certificate if sick for three or more consecutive days). Unreduced pay for up to six consecutive sick weeks, after that a separate sick pay kicks in.
If I get sick on vacation holidays, I get those back.
Plus up to 10 days per kid when my kids are sick and I don't have anyone to look after them.
-
5 sick days (although you are allowed to use holidays as sick days if you've ran out of sick days).
We don't have a quota of sick days.
I've been known to take the whole of December off with days to spare in the past..
I've got to December with 13 days left, before ended up with 9 at the end of it as it was a busy period and I couldn't take any more.
I had tried to take every Friday off for the last quarter but that miserably failed after 3 weeks.
-
That's basically what I'm doing. I may need to adjust the CC and BCC lists if the wetware problem still exists however...
It's a shame you can't automatically roll back breaking builds, but I can understand not going that route…
-
I've got to December with 13 days left, before ended up with 9 at the end of it as it was a busy period and I couldn't take any more.
We aren't seasonal (or at least we're no busier in December than the rest of the year.)
In fact the only thing likely to contribute to refusal to be allowed time off/empty office is
- Those with families wanting time around Christmas off
- The "use it or lose it date"* is Dec 31st, so those without families wanting to use up their holidays want the time around Christmas off.
Making the 'use it or lose it'* date either Jul 31st or financial year end would mitigate the perceived problem by moving the second group away from December.
* In the UK, you cannot 'exchange' the first 28 days holiday for money, and must either take it or carry (only some of it) over. If you get '28 plus bank holidays', you could (if employer permits) sell the 8 bank holidays.)
-
In the UK, you cannot 'exchange' the first 28 days holiday for money
Yeah - we get 25 + bank holidays which gives us a max of 5 we can sell.
It's not necessarily seasonal, just the last couple of years we've had a big release at the start of Jan which has been in dev/test over the tail of the previous November and most of December.
-
We get 28 days (required 20, 25 common), excluding official holidays. The required days expire 6 months after the end of the year you got them in, The rest expires after 5 years.
It used to be 5 years for all days, but that resulted in people building up pools of vacation days, either because they were not taking them or because the employer was constructing situations where they could not take them. So now for the required 20 days expiry has been reduced to 6 months.
-
Tucked up in bed
Working from home
These, although not mutually exclusive, don't seem to be very compatible with actually getting work done.
-
That's amazing.
Apparently you get 16 weeks of paid paternity leave here plus can take more at the long term disability rate. That's insane for the US AFAIK.
-
For counter-example, I presume in your shop you have your PDF and HTML versions of your documentation in separate files and are meticulous about updating both with the same information at the same time.
Yeah we don't. We give the client one format, and it's their job to read it.
Even if we did do both, we'd probably make one "canonical" and just generate the other from it. It's pretty trivial to convert PDF -> HTML and vice versa. And neither of those formats "fail to compile", which is totally mental.