"Doing" Development Journal - The Problem and a Solution
I thought it would be interesting to document building an application from scratch. I will build a small, called "Doing". Throughout this process you'll be able to see my thinking, the steps, and missteps I take along the way. I am not sure where this will end up, so come along and let us see what happens.
Defining the Problem
An application that does not solve a problem, may be fun to build, but is rarely useful. I've written some rather clever code solving problems I never had, and consequently, never used. So let's start with a problem:
When I set off to solve a problem, I often find myself working on something else.
Do any of these sound familiar to you?
- I was fixing a bug when I installed software updates, and now my computer keeps crashing, so I installed new video card drivers, but they didn't install cleanly, so now I'm looking up arcane and dodgy workarounds.
- I was debugging a tricky problem, but my boss came in to ask why the servers were down, and now I don't remember where I was.
- I was supposed to fix a typo on a webpage, but now I'm fiddling with CSS because everything was just a pixel off.
- I needed to implement a complex feature, but I keep finding myself reading blogs about getting things done instead.
- I was doing something, but...
If you haven't, then you have a mind like a steel trap, and I applaud your iron clad determination. The rest of us could use a little help though.
Proposing a Solution
To solve this problem, we will build a tool that promotes mindful activity. It must help me know what I am doing, how long I have been at it, and what I was doing previously. Here is the general flow of my solution:
- When starting an activity, I will state what I intend to do.
- When I am working, a timer will indicate how long I have been doing this activity.
- When I am done, I will stop the timer, and Doing will log what I did.
- If I am interrupted while working, I will log the interruption, and start a new activity.
To help visualize this, I've knocked up a few mockups with Balsamiq:
We have a starting point, next we will set up a project.blog comments powered by Disqus