
tuck into cheek, do not swallow
![]() | home | pixelblog | qt_tools |
tuck into cheek, do not swallow
/** * @since unknown * @return again and again * @author poly@omino.com */ public class bar { @SuppressWarnings("nls") @Override public String toString() { String result = "frayed knot"; return result; } }
The other day I was coding. I wasn’t sure if it was afternoon or maybe evening… A single ray of red sunglight (dusk? dawn?) somehow found its way to a patch above my ergonomic chair. And my computer was strange. I had to put scrabble letters and plastic fish onto the screen just right, but they kept falling down. Also, my desk was sloped so the keyboard and mouse kept falling heavily into my lap, if I wasn’t careful to keep holding them up.
I looked around the office, and all my coworkers were happily, frantically typing away. And also, putting scrabble letters onto their screens, and sometimes reaching into the screen to squishily adjust something or other. Far away someone shouted, “101100101!” and was rewarded with scattered polite chuckles.
They were all very old.
I asked, “Should you still be here?”
“Oh yes! We have much work to do! We’re the only ones who understand the Olden Code!” He certainly seemed enthusiastic. “You know, job security, ha ha! In fact, this year I think we’ll be able to add a feature!”
“Yes, yes, a feature!” offered another in a nearby cube.
“But… should you still be here?”
A voice from a yet different cube answered, though he too didn’t turn to look. “Of course! We can’t leave. No no! We owe the Company. But that’s ok! It’s warm here.”
“And we have frozen burritos!” a fourth added.
“I was almost paid off,” another voice contributed, from a row or two over, “but then we got more users, so I had to stay on. Successful product, say what!”
More conversation ensued in this odd fashion, voices chirping from nearby cubes. But I didn’t understand. I wandered the aisles. One cube was decorated with a collection of old action figures, another with tiny bicycles, another with foam palm trees. And then I saw, posted in the break room, The Menu.
I was terrified. I would be discovered, and I’d be billed. I knew I’d done all these things. And then I thought, well, it is warm in here… it’s better than being outside, in the rain, without a burrito.
I work in corporate setting, on a large team producing (essentially) a narrow-market shrinkwrap title. And we’re getting very close to our ship-date.
This is the fun part!
This part of the development cycle is full of surprises. The basic code works, it’s been demonstrated now and then to roomfuls of people. But. All the little niggling details you were hoping would just go away shall now come back as a barrage of little crises. (Or do they? I think some of them did just go away.) It’s all about breaking or not breaking the build, urgent interdependencies discovered of a sudden, and… what about documentation.
Tiny details of this or that ripple up and down the directed acyclic org-chart graph as urgent phone calls, frantic emails. Executives suddenly take an interest in the placement of semicolons, recalling their own youths misspent as engineers. They just want to share the fun a little.
And somehow, branching the source tree just never becomes routine. You ever notice that? Every release is just a little different than the last one, and managing the branch is always an innocent experience, a rebirth. Everything old is new again.
The bugs roll in, the bugs roll out. Fixing a well-defined bug is so easy! It’s a task and you can just do it and then it is done. Bug closed. So satisfying. Sure, maybe it’s midnight, but heck, it’s always midnight someplace.
Ah, and the timezone dance, as remote corners of the company you’ve never heard of are suddenly outed as depending on a random bit of code you thought you’d deleted long ago. Thwack+8h! Ok, Europe, those libraries should link OK now. Thwack+8h! Asia calling, they say none of their plugins load any more. Thwack+8h! US of A here. Sorry about the broken build, you see we got this great idea last night about how to rework the class loaders…
And late stage architectural rejiggerings because… well, last chance before you ship. Heck. We’re professionals, we can do it. I bet it’ll work… yeah… I know: we’ll write a unit test first!
This is the home stretch, the relentless passage of hours between Alpha and Beta and Shipping (always known by their local names), the deferred features and misfeatures, the awesome impact of integration. Aah, invigorating, no?
This is the fun part!
You sound like you’re trying to convince yourself it’s true…
Yes, well… you know. Humor is how we deal with pain. Slapstick and ultraviolence. I’d say more, but I really gotta fix these bugs or Blevins upstairs will have my head.
(In which dvb weighs in on a very important current scientific discourse.)
In my line of work — software — we sometimes go on about how important names are. But our worlds are so tiny. The name of a thing in a software project is of deep and profound consequence to… oh, say, between 2 and a hundred people, depending on the size of the project. And that’s it. It’s a closed (and brief) world.
We have it easy. It’s those scientists trying to agree on names and classifications of the observable world who have it rough.
Ayup.