I just made it through one of the worst weeks of my professional career. It's too bad really. I finished giving a presentation on FIT that went extremely well, but this success was overshadowed by all the other crap going on. I will hopefully post the FIT presentation online sometime soon, once I strip out the company specific material.
I don't expect anyone reading this to really understand what I mean. I just feel the need to rant for my own sanity.
There are certain facets of my current software development situation that I really don't appreciate. Here is a short, non complete, list of things I have come to loathe...
I hate that I feel the need to cover my ass and record anyconversation with anyperson regarding anyproject. Project requirements are often ironed out and finalized in informal meetings or conversations, and inevitably, someone along the way will say, "We didn't sign off on this!" XP software requirements are defined on freaking notecards, and any process that requires more than this is broken!
I hate feeling apathetic and not charging forward to make a system better. I'm working on a legacy application with over a million lines of code and thousands of classes that have taken literally hundreds of developers to build. The architecture is extremely procedural and the codebase is littered with bloated utilityclasses. Test coverage is somewhere between 3 to 5 percent. Most functional classes have hundreds of revisions and were built in large part by contractors or developers that are no longer around. With every project I work on, I see the opportunity to refactor procedural logic into small testable units (50 to 85 percent coverage is what I shoot for) without changing the overall business requirements, but what's the point? Inevitably, someone will be pissed off that you changed their code, and I'm beginning to wonder if refactoring is worth the hassle?
I hate militant software development processes. Agile software development requires agile processes. In particular, I hate code inspections. Having code reviewed by other developers is extremelyimportant, but a formalized meeting has no value and is just a waste of my time.