Some Things make development easier

One of those things is Things. It’s my task manager/project manager/todo manager of choice for my development projects, and I recently setup a new structure to make the process a little easier.

Things has two main grouping concepts, areas and projects. An area can contain one or more projects, while projects contain the tasks that you need to work on. They are the building blocks of how I organise my workflow in Things. I create one area for each app I work on, with multiple projects within each area.

As an example, take the app I am currently working on, QuizFolks. In Things, I have a QuizFolks area which contains two visible projects at any time. There is the Roadmap project, which is always visible, and the Release YYYY.X project, e.g Release 2024.1.

Main screen of Things on iPad. In the sidebar on the left are the following headings: Inbox, Today, Upcoming, Anytime, Someday, and Logbook. Beneath that is my QuizFolks area, and underneath that are my two Projects; Release 2024.1 and Roadmap.

In the right-hand pane, the QuizFolks area is shown, with the two projects beneath it - a pie chart next to each project gives an indication how complete they are. Look, I’m not the fastest, so those pie charts may as well say “Not very complete, buddy!”

Roadmap contains all the items that I am considering working on. If I decide to reject an idea on the Roadmap, I tag it as Rejected and complete the task in Things, but I do not delete it. You never know when a bad idea might become a good one! If I know which release I want an item to appear in, then I tag it with that release. This lets me have the Roadmap as both a scratchpad of ideas, and also ideas that I have decided to definitely add to the app.

Main screen of Things on iPad. In the sidebar on the left are the following headings: Inbox, Today, Upcoming, Anytime, Someday, and Logbook. Beneath that is my QuizFolks area, and underneath that are my two Projects; Release 2024.1 and Roadmap.

In the right-hand pane, the Roadmap project is shown with three greyed out tasks; One-time in-app purchase to unlock the app, UI refresh of the main Quiz edit screen, and Make the iPad version use multi-column layout. Beneath that is an expanded item titled; Theme system - allow easy change of themes, colours etc across the app. The detailed definition is: Similar to PocketPB, I want a Theme struct/object storing in the environment. It should allow me to reference colours like theme.red or theme.buttonHighlight, and it will return the relevant colour from the asset catalog based on the currently selected theme. Not sure if this should be an Observable or not - it probably should be, so that if we update the theme then the Ul will update automatically in any visible views.

The Release project contains items from the Roadmap that have been tagged with the release that I am currently working on. Once a Release is finished, the project is archived, and I create a new Release project with the new release number.

This is working well for me so far. It helps me focus on what I have to achieve, and it also keeps me excited for development when I check out the Roadmap to see what I’ll be working on in upcoming releases.

As my app is so new I haven’t incorporated bug fixes or feature requests yet. I think I’ll add feature requests to the Roadmap and tag them as such, then they can become part of the normal flow. Bug fixes are a little different, as I may need to fix things before the next main release. It feels like I need to figure out my Git/Xcode Cloud workflow for bug fix releases first, and then I can incorporate that into my Things workflow.

How do you handle things?