How I Lost My Battle With The Blob
It appears that you have captured everything I had to deal with in my last gig. I performed an extensive amount of design and development for ASP based projects and was pulled into some Oracle/Perl backend stuff. The refactoring came in 2 parts. The first being the rewrite of ASP code with embedded SQL and other hardcoded/static crap. The second being the refactoring of some backend shell scripts into Perl. The later turned out to be automating some projects in Perl by wrapping it around an existing Blob. My mistake was that I said "I know Perl" when asked by my development manager at the time.
"The reversal began quickly. Management, developers, etc. proclaimed my style as an excellent one-- but only a few adopted it for their own. Automated unit tests were created for Perl. The ASP unit tests were manual. No one else performed any unit testing - less one developer. Even more frighteningly, no one but me ever ran them. No one had the time, it seemed. Then my refactoring started to take the blame for things. Despite the fact that I had automated unit tests backing me up, somehow I was always the one called in to fix emergency problems-- and since I had fixed the problems, somehow it was assumed I had caused them."
(paraphrased from stephen) This was most obvious with the Oracle back-end team who f'd up every stored procedure they wrote. All their testing was either half-assed or nonexistent from what I could tell.
Before I knew it I was working on multiple "Blobs". The backend team could not get their act together. Everytime something croaked (build process, infrastructure, oracle, etc.) is was my fault. False alarms occurred on an hourly basis.
Devise a Common Goal
That would be "Kill the front-end developer"...and if he writes Perl "Kill him and all his children".
I can only be pulled in so many directions. It appears the
development managers goal was to turn me into plastic wrap.
Who's the Boss
There was an obvious animosity between QA and development.
I was beaten and mauled in every meeting by QA for bugs which were backend only. Regardless of the fact that my front-end code was complete and working. QA acted like Management and Management sat back and watched the fireworks. Management failed to do its job on many fronts.
The common goal in the development environment was not to cooperate. Coding standards which were non-existent when I arrived were created. 2 or 4 developers continued to do what they wanted. Management did nothing when it created problems. I guess the train was moving to fast for them and they were too busy worrying about their money.
Don't Force Knowledge
Never got the chance with all the other BS going on.
Refactoring is great when you have time, a professional environment of people (and I don't mean a bunch of suits), management with half-a-clue, and developers who know their stuff.
Thanks for writing this up for me! :)