I work from home.
::cue up everyone’s immediate recall of 10 zillion cheesy spam emails::
Well, technically speaking I don’t work from home. I mostly live with my girlfriend, and this is “my apartment” which has effectively become my work studio since taking this job. It’s nice up here, I’ve got two external monitors to plug into my laptop and a nice keyboard and two external hard drives for backup and alt booting and etc. But I digress…
The folks who hired me, and who have been paying my salary since May, never see me. And they don’t get any tangibles, even pseudo-tangibles like electronic work-in-progress that they have any ability to asses and determine that yes I’m doing work and not viewing porn on their dollar week by week, etc. So in all fairness they’ve been very patient.
But they did assign someone the unhappy task of doing a weekly liaison with me, a Monday meeting. Please set some goals for this week. Please explain how well you met last week’s goals. They handed this delightful task to someone hired roughly the same time I was (last May) so she knows neither the existing system nor the db environment in which it (and the new version) is written. I think she’s 19 or 22 or something along those lines. Earnest, clueless, rule-follower. I’m trying really really hard to cut her some slack and make the shitty impossible job of keeping tabs on a remote developer she doesn’t know developing in an environment she doesn’t know to create a replacement for a system she doesn’t know at least no more unpleasant than it has to be. And she’s been decent to me, btw. Not trying to short-sheet me administratively or rake me over the coals about fitting what I do into silly & inapplicable categories of “what will you do and what did you do and how successful was it” etc.
So this Monday for the first time she starts pushing. I’d just said that “soon” I would be wanting to toss the thing onto server and have some guinea pigs try to use it as they used the old system and start filling my email inbox with bug reports. And she said “What will happen, in what order?” I said “I dunno, it’s at the stage where I hop rapidly from thingie to thingie, the big stuff is 99% finished, it would take longer to describe the remaining tasks in useful detail than it would to just do them, and the descrip would be wrong anyhow, it’s all ad hoc”. She says “Well I need you to make a time line, break it down as best you can, we won’t hold you to it…”
After two more iterations (one of which included my complaint that she was asking me to stop what I was doing in a climactic phase and engage in what would be a complete waste of my time) I said “OK, fine. Umm, a week from today I will send an empty clone of the sucker, with a script to import all the data from the existing system. So we start with the guinea pigs on the 17th. Oh, if you want to consult with folks about who should be the guinea pigs, and then want to walk them through how the new system is different and what’s expected of them, I suggest you get a move on. And likewise the IT guy who has my server, you’ll need him to be ready in a week to receive and deploy the new db. So get a move on.”
Well that was fucking smart. Felt good for 20 minutes. And then OH SHIT. I said this thing was gonna ship in like the rest of today + four more days?? I didn’t have to say that. I said that?? Yeesh!
Well. Damned if I didn’t pull it off
It’s, umm, far from perfect, but it’s deployable, or at least at a point where I’m ready to find out if it is. This is a port of the most sprawlingly massive Topsy-esque chaos I’ve ever had to deal with. I counted 414 native tables in just the most central subset of the existing files. I’ve trimmed down to under 85, for a reduction to nearly a fifth, and it’s in one file instead of 20-some-odd. Even after the cutdown I’m importing from about 175 tables and concatenating on-the-fly in the import script.
So on Monday I get to ship
I’ve already long since told them to start lowering expectations. Assume it will land broken and will be buggier than the bottom of a rotten log, that I will have built dozens of things that no one actually uses any more while deciding not to built dozens of other things I figured no one uses any more when actually they do. Etc.
All par for the course. Time to throw some users into the picture.