I got up early, struggled against the alarm for an hour, and eventually dragged my ass out to work. It’s day five without cigarettes (cold turkey from a pack a day), and I’m not going to jinx it by saying how easy it’s been. I could go on, but the short answer is that I only need to worry about it when I’m in front of a counter that sells ’em, otherwise I can keep my mind pretty occupied.
Work is prototypically insane. My boss expects everyone to put in 60 hours a week because the business is tiny and struggling to survive. While I don’t want the business to fail, I just can’t force myself to care about proprietary scale calibration software—at least, not ’60 hours-a-week’ care. Part of the issue is structural, strangely enough. My boss wrote most of the 76k lines of code himself, and essentially dumped the whole thing in my lap about a month after I figured out the major difference between a web app and a ‘native’ or ‘desktop’ app. In the process, about half of his stuff was 80% done, so you’ve got a bunch of yet-to-be-tested features paired with the newbish web-developer (me). I clumsily broke things trying to fix things, and the related problems.
Part of the issue is that there is no QA, tech support, or documentation, so I’ve got to do it myself, and like every other programmer ever, I want to do… um… none of those. That is laziness on my part, but it’s complicated by the facts that there is no “stable” branch (there is a branch labeled ‘stable’, but I’m regularly asked to add totally new features to it, effectively making it unstable), so bug fixes get tested in the same branch as new features, and unless I want to quadruple my workload porting bugfixes between branches there isn’t a way around it.
Long story short the development “process” at my job is a total nightmare. It works fine for custom applications, but that isn’t what we’re developing, the last time I checked. Some amount of customization (templating) is done for clients, and must-have features are implemented upon request, but there is no way to get around the core problems short of telling some customers to live without typically poorly thought-out features for a while.