Saving team members from RSI

Posted: - Modified: | geek, work

I watched Jen: Ctrl-C, Alt-Tab, click, click, Ctrl-v, click, click, click, click, click, Alt-Tab, Down, Ctrl-C… One by one, Jen copied the tasks from our Drupal planning spreadsheet to the Rational Team Concert task-tracking system.

I didn't know if RTC had a batch import system we could use, but I'd rather do a macro using AutoHotkey instead of letting Jen copy the information one row at a time. (And with so many clicks, too!)

Fifteen minutes and some tweaking later, I have an AutoHotkey script that copies the information, creates the task, and moves to the next row. A few minutes, and I've copied all the rest of the tasks.

Less risk of repetitive strain injury for everyone, more interesting work, and the ability to easily handle future spreadsheets. Yay!

I show her the AutoHotkey script at work. “Coool,” she says.

Time to organize the tasks by story. Drag-and-drop to the rescue. Not easy with a mouse – Fitts's law, small targets – but it's easy enough with the tablet stylus. It feels natural.

Keep an eye out for the little things that you can fix with just the right tool. =)

AutoHotkey script:

F12::MakeRTCTask()
MakeRTCTask()
{
   SetTitleMatchMode,2
   CoordMode Mouse, Screen
   WinActivate, Planning
   WinWaitActive, Planning
   Send ^c
   Sleep 200
   WinActivate, IBM Rational Team Concert
   WinWaitActive, IBM Rational Team Concert
   Click 972, 346  ; add
   Sleep 500
   Click 927, 406  ; task
   Sleep 500
   Click 468, 154  ; summary text field
   Send ^v
   Send {TAB}{TAB}
   Sleep 100
   Send {DOWN}  ; filed against
   Send {TAB}{TAB}{TAB}{TAB}
   Sleep 100
   Send 1  ; priority
   Send 1
   Click 807, 125  ; save and close
   Sleep 500
   Send {PgUp}{PgUp}{PgUp}
   WinActivate, Planning
   WinWaitActive, Planning
   Send {ESC}{DOWN}
}
You can comment with Disqus or you can e-mail me at sacha@sachachua.com.