>>but what really pushed me was getting a job, on campus, writing software to support PhD candidates in another discipline. I quickly made the jump from researcher to practicum precisely because I was trained as a researcher, then applied those skills to understanding what my customers needed.
I think what allowed you to make that jump was that you were inherently familiar with the problem domain; even though your customers did research in another discipline, at the end of the day they were still researchers.
I was the lead trainer at my company, and the training materials (hundreds of pages of them) used to be on Word documents. I got fed up with it, taught myself Rails, developed and deployed a learning management system, and migrated the content there. It was very successful because as the lead trainer, I knew exactly what features would be needed and how they should work. It was kind of funny actually because when I gave a demo to the trainers in other teams, they basically said, "wow, this is exactly what we need -- when can we start using it?" Which is music to any programmer's ears.