Application Development Part 1: An app for time and goal management

Lately I’ve been struggling with time management, and I’m not sure whether that’s because I’ve been busier than I like to be, or that I’m busier than I like to be because I’m not that good at time management.

Every stage of life, and of work, brings new challenges. One of my biggest challenges over the last two years has been migrating Clarion Magazine to its fourth platform. Yes, fourth.

When I started ClarionMag back in 1999 I knew very little about content management systems. That initial site was mostly static content I created with (ack!) FrontPage. It didn’t take long for me to realize I needed something way more capable. I was doing some Java programming at the time, so I started writing a new system based on the Tomcat framework, using a MySQL back end. That worked pretty well, but there were always new features I wanted to add to the web site, and although I liked Tomcat and Java just fine I had this nagging feeling as time went on that I needed to revisit the whole application architecture.

And then SoftVelocity released Clarion.NET. This seemed like a great opportunity to rewrite the site using Clarion#, and I began to do just that.

As with most rewrites, the job was a whole lot bigger than I’d imagined. And I ran into some limitations in those early Clarion# releases that persuaded me that it was time to do my web site development in ASP.NET and C#. That expanded the scope of work again as I needed to get up to speed on those technologies.

That third iteration of Clarion Magazine worked pretty well, and it added a number of new features such as article comments, ratings, and so forth. But it still had some glaring weaknesses, particularly in content creation. I still had to do all of that offline and upload the articles. And that made collaborative and administrative work much harder than it had to be. 

When I first started Clarion Magazine there weren't a lot of choices for content management systems. But that was a long time ago, and there are some really terrific products out there now. It hurt to move beyond all that code I'd so lovingly crafted, but it had served its purpose (and actually it still does, on the archive.ClarionMag site). 

This site doesn't run on my code anymore. It runs on Atlassian Confluence, which does almost everything better than my code ever did. And that's no surprise, as it's a commercial product backed by a great company and a dedicated team of professional developers. 

But I did say "almost" everything. 

Confluence is designed for collaboration, but really not for subscription-based publications like Clarion Magazine. To be frank, my own code does a much better job of subscription management (no surprise as it was designed for that purpose), and it also handles some other important tasks like MailChimp integration for bulk emails. 

I really really like code that handles the tedious bits, and the old ClarionMag site was pretty good that way. So I've gained some important benefits, but I've lost some other things I want back.

Getting that functionality back, so I can spend more time on content and less time on administration, is going to take some work. Work means time. And I need to know how much time I'm spending on which tasks, and whether those tasks are bringing me closer to my goals. 

Time and goal management

I don't have particularly high requirements (so far) for time and goal management. I have a couple of tools I currently use for time management. I'm a fan of OfficeTime and have used it for a number of years now to track how much time I spend on various projects. I'm a little weak on discipline, though - I still have time that slips through the cracks. 

I use a little system utility app called WinAlarm (by Pawel Glowacki) to manage appointments and event notifications. Like OfficeTime, WinAlarm does many of the things that I need, but not all. And it seems to be an orphaned product. 

Time management is a pretty easy thing to pin down. You're either doing a thing or not doing a thing. But goals can be much more difficult to define and assess.

There have been times in my life when I've paid close attention to my goals, and times when I've gotten too busy to be goal-centered. And I know which of those approaches works better. So I definitely want some way to keep my goals in front of me as I'm allocating time. 

But it's tricky. Goals can be highly specific (spend one hour writing an article) or somewhat vague (write software that makes the administration of ClarionMag simple as possible). 

To make things more complicated, any given unit of work, though only occupying one slice of time, may in fact serve more than one goal. 

The ideal would be to find some existing software that does everything I need. This has the advantage of greatly reducing my own investment (even if such a program costs thousands of dollars, it will ultimately be cheaper than writing my own). But that does make me dependent on someone else's development process - what if I want a feature that is of no interest to the vendor, or the vendor goes out of business? 

It almost certainly is smarter to go with existing software. But I have a competing goal: not only do I want software that will help me add the missing bits to ClarionMag administration in the shortest period of time, I want to produce a set of documents that illustrate what I believe is a better way to develop programs (and program features) in Clarion. 

So although I've smartened up enough to use commercial software for (the majority of) ClarionMag itself, I'm once again going to step off into the deep end and write some code for my own use. 

Next up: Preliminary requirements