It All Changed While You Were Working
In my first post after my hiatus, I confided that I’m not sure what I can write about in this blog when it comes to my work. And, in the post before that one, I revealed that I’m going to create version 2.0 of the CMS I’ve been building incrementally since January 2002.
Well, what the heck! I think I’m going to go on a limb and share with you some random work-related reflections. After all, working and rethinking my work have not only defined me in the last two month, but also explain why I haven’t been blogging.
The first set of thoughts, which may have crossed your mind as well when you read “January 2002” in my opening paragraph is, “Has it really been that long?” Well, yes …I’ve really have been at it for nearly four years. Even I am a little bit shocked when I read that: four years. Obviously, it’s not like I’ve been working only on the CMS in all that time; I’ve had to do some day-to-day stuff for my clients. But when I think long and hard about that number—four years—I understand even more what would prompt someone like my dear BeeGoddessM to say that it’s amazing that I’m still motivated and passionate about this project after all this time, for most people would probably have lost interest long ago and dismissed the idea as too grandiose for just one person to undertake. Yet from every new module I create, every new puzzle I solve, and every big or small improvement I bring to my CMS, I derive so much satisfaction. But this realization, in a semi non-sequitur manner, reminds of the master’s degree I never did because the thesis I had in mind would have been strictly for my intellectual satisfaction and would have had little to no impact on my earning power. Hence I wonder about the extent to which I’ve thrown myself into building this CMS to obtain that same kind of satisfaction, with the additional hope that I could eventually enjoy significant, positive economic benefits as well.
The second set of reflections ties in with the title I gave this blog entry. But first, a bit of context on how I, an editor by trade, became a Web developer.
In the spring and summer of 2000, after three years of creating and maintaining fairly large websites while relying on only HTML, limited CSS and extensive SSI, I started looking into existing Open-Source CMSs in order to make my work life easier. However, because most CMSs generated portal-like websites whose organizational scheme might well appeal to young geeks (which weren’t my client base) and would require a lot of tinkering and hacking to meet my (and my clients’) needs, I figured that my time would be better spent trying to understand how to build a CMS built so that I could create one that better suited me. I thought to myself—very condescendingly, I know, but bite me!—“If kids half my age can figure this out, then surely I can figure it out, too!” In that sense, I’m very much like my mother, who got her first computer at the age of 69 because she couldn’t stand being outdone by her kids.
So, after my fruitless search for a CMS, I began reading extensively on creating database-driven (a.k.a. dynamic) websites with PHP and MySQL. I chose the PHP/MySQL combo because it was included in my hosting, whereas ASP and ColdFusion were not. By September of the same year, I wrote my first lines of PHP code and, by Christmas, I had built my first dynamic website which, as I look back, wasn’t too shabby for a first effort. But the experience had shown me the folly of putting together what amounted to a distinct CMS customized for each of my clients, and thus by May 2001 I had what Oprah would call a “lightbulb moment” and came up with a very rough scheme of what would become my generic CMS. So, I warned my clients that I was setting aside the first four months of ’02 to build the foundation of this CMS and, during that time, I restricted my work for clients to essential maintenance.
It matters at this point of this reflection to remember how things were like in the world of Web development 2001-02. Specifically, there was the avant-garde, namely the purists who knew the direction Web techniques were heading and thus advocated fervently for compliance with rigidly defined standards. However, for the most part, only a few browsers could render correctly markups that followed those standards. Netscape 4, which many of my clients still used, was the worst at garbling the new code.
Consider this chart showing the release dates of the most popular Web browsers. In particular, it’s important to retain the following point:
- by then, Microsoft had effectively won the browser war against Netscape;
- however, in same places like Atlantic Canada, Netscape 4—possibly the worst browser ever created—was still widely used by the few diehard Netscapers even though the much-improved (but resource hog) Netscape 6 was in circulation; and
- Windows IE 6 was just starting to come out (do note that we’re still on version 6 today).
Meanwhile, design practices that are rightly frowned upon today, most notably table-based webpage layouts, were the norm back then. It mattered not that the W3C had recommended X(HT)ML as the new standard as early as October ’99; most browsers’ support for these techniques sucked. Consequently, for me, standards compliance was an impossible sell—you hear me: not a tough sell, but an impossible sell—given, on the one hand, the reluctance of my clients and their online readers to upgrade to compliant browsers and, on the other hand, my clients’ reasonable expectation that their websites “look good” for all visitors. All this to say that I felt I had no choice but to opt for HTML 4.01 with simple CSS and stick with the “bad” practices, because building a CMS that would generate websites that would look good only if viewed with the handful of fully compliant browsers on the market at the time would be misconstrued by my clients as my CMS (or my webmastering skills) sucking eggs. Plus, I thought, what about the rule about not designing websites for specific browsers?
So I got to work and hardly looked back. I became completely involved in my project of building my CMS, and seldom gave much thought to revisiting my non-compliance decision. Then again, I didn’t think I would still be building in late 2005, but, in my defense, I feel I must point out that, along the way, I packed in far more features into my CMS than I initially imagined.
Mind you, there were a few occasions by 2004 when I wondered if I should give compliance another look. But when, as recently as Spring ’04, I noticed that the site of one of my clients drew as much as 10% of its traffic from Netscape 4 users, I felt confident that staying the course was the right thing to do. And by Fall ’04, when a new client insisted that their site be standards-compliant, I was able to meet the requirement for the most part—certainly the site template itself is very compliant. So, I thought, finish the core of the CMS, which was within sight, and then, in the next phase of the project, work on making it compliant.
Then, however, things unexpectedly turned weird in 2005—mostly on the personal front, but in a manner that had an impact on the professional as well. Professionally, the year started with payment on big contracts rolling in. But around the time I moved to my new apartment downstairs, I stalled a little. I can’t say exactly how much of a role my turning 40 this year played in this stalling, but I suspect it was considerable because one thought kept coming back to my mind: I wouldn’t be able to go through my 40s as I’d gone through my 30s.
Some things had to change—things more significant than changing apartments. But just thinking about what had to be done to effect those changes overwhelmed me. It was simply too much for one person to take all in.
BeeGoddessM has undoubtedly been the most enthusiastic user of my CMS. I would even say she has become more enthusiastic after being forced to use another (not widely known but which shall still remain nameless) CMS at work. But as early as Spring ’05, one thing she would often say to me was that as much as she knew my CMS was better than the one she had to deal with at work, the look of mine had to change in order to look more like competing CMSs. She also made suggestions for new features and different ways some existing features should behave.
Her suggestions didn’t offend me in the least; on the contrary, I knew her points were valid. But what I couldn’t wrap my mind around was what I should change the look TO, so I admit that a few times I hoped a few of her bees with sting me with more specific suggestions. I also vaguely acknowledged to myself that changing the CMS at this point would force me to stop resisting standards-compliance. In short, my already long to-do list was getting even longer.
Now, with a bit of hindsight, I can say that the five weeks spanning my birthday to the end of September were a seminal period in my professional life. Indeed, it started the night of the brainstorming which yielded a template for version 2.0, and culminated with a 600 km trip to visit with my brother, the accountant, for practical financial and marketing advice.
But between these two events, another intermediate but signifcant event occurred. To keep a long story from getting even longer, let’s just say that I had to convert one of my existing websites to full standards-compliance. And you know what? Although I had the advantage of having to replicate an existing site rather than starting from scratch, I managed to pull it off with about two or three days’ work …and it works great! This inspired me: yes, it would take a lot of work, but my CMS could be made compliant. Not only that: it could run a compliant site even better than the CMS the template was designed for!
As for my visit with my brother, well …he was as realistic and practical as you’d expect an accountant to be. Basically he forced me to think about all possibilities, including mothballing my CMS or taking it to an employer. But in the end, the plan I left with amounted to giving another kick at the can but agreeing on a fixed date by which I should move to Plan B. As of today, I have exactly eight months.
Back in Halifax, even though I was exhausted and my head was swimming in too many new good ideas, I drove directly to BeeGoddessM and Stephanie‘s without coming home first to share my insights with them. But what was funny in a way is that, at one point of our conversation, Stephanie made a specific suggestion which, although my brother hadn’t made it, coincided with the spirit of his main suggestion. There seems to be an agreement among those who have used my CMS that if it—that is, in its new version—had more exposure, if only more people had a chance to use it, then it could develop a following but without my having to be responsible for installing and configuring each instance.
Of course, for starters, this idea will mean developing even more documentation than already exists, which is already considerable. But it wasn’t long before I started thinking of ways to make it all happen. More importantly, I realized that standards-compliance was now absolutely required if I didn’t want to be laughed out of the market.
And so, that’s what I’ve been working on ever since. Oh, not just converting for compliance for its own sake, but also revising all my code so that it will behave in the CMS’s new version. My goal is to have version 2.0 ready for release to my existing clients by Christmas. Distribution should follow sometime afterwards.
In the last month, I have cussed more times than I can count as I’ve been working through this process. After a first run through a validator yielded over 200 errors, I was fit to be tied. Fortunately, I was able to bring it down to the range of 40–60 errors fairly quickly. But it’s seriously frustrating. At one point, I found the Unicode for a common special character, but then the validator would complain that it was invalid. (Dig around the ‘Net and you may find that #146; is the right code for an apostrophe, but in fact it’s #8217.) Or by playing with some CSS commands that are now supported better than they were in 2002, I discovered that today’s MSIE 6 is almost as great a bane on developers’ existence as was NS4 in ’02, so the Web developer’s favorite sport these days seems to be to find MSIE hacks and workarounds.
I swear my hair has turned even more silvery as a result. But you know …I’m like my mother and I’m so not going to let myself be outdone. At least not yet.