In Part 1 of this series I explained my need for better time and goal management software, and my rationale for creating that app rather than using one or more off-the-shelf products. Time flies - I need this app yesterday!

Now it's time to start sketching out a few requirements:

I'm always amazed at how simple requirements grow into complex requirements. I really didn't think I was contemplating anywhere near that many features until I wrote them down. And I'm sure others will come to mind as I go along. 

I still have lots of questions. I'm a little fuzzy on how I want to handle categorizing of tasks. OfficeTime uses projects and categories, neither of which is dependent on the other. That's okay, but I've found it a bit clunky as changing tasks usually involves changing projects and changing categories. I almost think I want to be more task-centric - when I set up a task I assign whatever categories I need to assign, and then I switch between tasks (somehow) with a single click. 

But I'm probably ready to start putting my ideas together into something approaching the very beginning of a design.

Where to start?

There are a million different ways to arrive at a software design; what I'm describing here is a fairly simple example, and you don't have to follow my approach slavishly. 

I have a fondness for entity-relationship diagrams; they not only help me visualize the relationships between groups of data, they often get me thinking about how I want to structure the code that will manipulate that data. 

Here's the first cut of my ERD:

Years ago, when I got to this stage, I'd dive into the data dictionary. Or maybe I'd be in the dictionary from the very first thought about the app. Clarion devs always start with the dictionary, don't they? 

Well here' s my first and most important principle for software development:

DON'T START WITH THE DICTIONARY!!!!

Yes, I'm shouting. Data dictionaries are massively useful things in Clarion development, but too often they come into the picture way too early. 

But if the dictionary isn't the first step, what is? 

You'll have to wait for the next installment to find out. In fact you'll have to wait a little longer, because in order to take the next step (here's your clue) there's a certain freely available library that I need to update for Clarion 9 (and which I need to bring back into the ClarionMag sphere).