The Omni Group
These forums are now read-only. Please visit our new forums to participate in discussion. A new account will be required to post in the new forums. For more info on the switch, see this post. Thank you!

Go Back   The Omni Group Forums > OmniFocus > Applying OmniFocus
FAQ Members List Calendar Search Today's Posts Mark Forums Read

 
OmniFocus and Programming? Thread Tools Search this Thread Display Modes
Does anyone have any advice to offer, or to point to, re using Omnifocus for planning and directing programming tasks?

I'm slowly forming my own habits on this, but some ideas wouldn't hurt.

As an example of how a programming task might go from bright idea to implementation as I'm doing it right now:

Let's say that I have a long-term project called Widget Application. I'll have a single-action list called "Widget Planning". In here, I put general thoughts re the Widget Application, large and small, that aren't yet broken down into any actionable form. I put them all in a context that I call "Lists" that I keep permanently "On Hold" so that I don't see those items unless I'm doing a review.

Imagine that I did that and a Widget Planning list item called "Egg Balancing", a smallish new feature, floats to the top and I'm ready to work on it. I'll then create a project called "Implement Egg Balancing". Also, as soon as I have any future actions for the delivery of this feature (say, "Don't forget to load Egg Definition Sheet") I'll also create an On Hold project called "Deliver Egg Balancing" to hold those things.

The first action in Implement Egg Balancing, when I create it, will be Specify implementation actions.

When I work that first action, I create actions to Implement Egg Balancing, trying to cut them up into crankable widgets small enough to allow me to work on them even when I'm fairly brainless. So, to break up purely fictional tasks into very small pieces, I might have the following:

- Create empty BalanceEggs method placeholder.
- Insert BalanceEggs in TakeSomethingFromRefrigerator, passing Something and SomethingQuantity as a parameter.
- Insert BalanceEggs in PutSomethingInRefrigerator, passing Something and SomethingQuantity as a parameter.
- Create EggConverter method placeholder, passing FromEggType, FromEggQuantity, and ToEggType, and returning ToEggQuantity.
- Design Egg Definition Sheet to specify basic egg size and conversion factors from that size to other egg sizes.
- Code EggConverter to read in Egg Definition Sheet.
- Code EggConverter to convert incoming egg to arbitrary basic egg size.
- Code EggConverter to convert from arbitrary basic egg size to ToEggQuantity and pass quantity out.
- Code BalanceEggs to read existing AvailableEggResources number.
- Code BalanceEggs to call EggUnitConverter and calculate new AvailableEggResources number.
- Code BalanceEggs to write newly calculated AvailableEggResources number.

If I'm doing a task that I've done a dozen times before I'll have fewer actions and may even stop with the top "Implement Egg Balancing" action. If I'm coding something that I'm having trouble wrapping my mind around I'll use this level of detail, sometimes only getting a few bite-sized actions planned, and returning repeatedly to work out the next step. Sometimes this works, keeping me coding when my brain power runs low and I might otherwise stop. And sometimes it doesn't.

Do others put this much of their programming in OmniFocus, or do the details live elsewhere, or live purely in your head?

Gardener
 
Gardner,

Your system seems pretty good. I tend not to put a great deal of detail on programming tasks into OF. I think of small-scale programming as a bit like discovery writing—I don't know what I don't know until I set out to write the code. Given that, planning detailed steps isn't very productive for me. I put fine-grained actions into the code as comments, preceded by one of TODO, FIXME, or CONSIDER. If I'm going to leave a coding project for awhile, I might capture some next actions in OF that point me at the important such comments.

For larger programs, some sort of bug/feature tracker is a must. I haven't worked on a larger project in a couple of years—my paycheck comes from teaching now—so can't offer advice on integrating a bug tracker with OF. Others on the forums have looked into that I know.
__________________
Cheers,

Curt
 
I tend to agree with Curt. I find it most helpful to create a TODO (in TextMate) inline. That way, I don't have to switch apps to get something out of my head. TexMate has a very useful feature for showing all todo's, etc.

Here's my workflow:

Basecamp
Used as a collaborative planning tool for our dev team

OmniFocus
My personal GTP app, basecamp tasks get sent to OF via Curt's awesome mail script. I also tweak the project in OF by setting up milestones and proper "next action" for a 10,000 ft view. Again, TextMate handles the more granular "to-dos" such as "Make sure the user can delete items".

TextMate
Used for day-to-day programming and for granular "to-dos" using the TODO bundle.

SCM/Bug tracking
I've been playing with Redmine lately, which is similar to TRAC but written in Ruby. It supports bug tracking and displaying roadmaps and your SCM repo. Looks like it "could" have the ability to hook with OF, but I haven't gotten that far.

Future request/wishlist
1. I would LOVE the ability to have Basecamp to-do's arrive in my mail inbox, then get placed in OF by the title of the to-do. Currently, the OF mail script uses the generic Basecamp subject line as the to-do task name. I wonder if the script can be modified for this? I know nothing about AppleScript.

2. Sharing a common OF project across a team. I know that the OF 1.1 supports syncing to WebDAV, but I wonder about the possibility of separating projects as independant databases? For example, most of my team uses OF for personal and work. It would be cool to have a central hosted version that our PM could access and add tasks to, then those projects could get "pushed" to each client app. "Kind of" like subscribing to an iCal feed, but 2-way.

We keep looking for a way to leaverage OF in a team environment, anyone have experiences to share? Would love to hear about other programmers workflow.
 
Quote:
Originally Posted by bcalloway View Post
1. I would LOVE the ability to have Basecamp to-do's arrive in my mail inbox, then get placed in OF by the title of the to-do. Currently, the OF mail script uses the generic Basecamp subject line as the to-do task name. I wonder if the script can be modified for this? I know nothing about AppleScript.
I put together a script to do this. It creates the task name from the to-do name in the Basecamp email. You need the script and a rule in Apple Mail.

Details: Automate OmniFocus Tasks from Basecamp To-Dos
 
Quote:
Originally Posted by ryanirelan View Post
I put together a script to do this. It creates the task name from the to-do name in the Basecamp email. You need the script and a rule in Apple Mail.

Details: Automate OmniFocus Tasks from Basecamp To-Dos
You absolutely rock the house! Works perfectly.

Thanks so much!!!
 
Hi,

I put a little service called Spootnik (http://www.spootnik.net) together which synchronizes Basecamp directly with OmniFocus.

It is currently in private beta. If you like to test-drive it you can sign up here http://www.spootnik.net/signup.html and join the private beta crew. It's always hard to find good private beta astronauts. You're very welcome!

Best regards,
Lars
 
Quote:
Originally Posted by bcalloway View Post
You absolutely rock the house! Works perfectly.

Thanks so much!!!
Glad it's working for you! :)
 
 


Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes


Similar Threads
Thread Thread Starter Forum Replies Last Post
available here!! Learn iphone programming tutorial , now with access to remotely Mac AlexCore Omni Lounge 0 2009-11-15 09:48 PM
Cocoa Programming Classes or Tutoring in SF Bay Area? dbfreq Omni Lounge 0 2008-03-18 06:13 AM
Thank You, O Programming Ninjas! GeekLady OmniFocus 1 for Mac 0 2007-07-13 11:57 AM
MacOS X Programming Questions evad OmniPlan General 1 2006-12-16 10:27 AM


All times are GMT -8. The time now is 03:55 PM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.