About 4 months ago I started a new job as a software engineer for American Student Assistance. My whole professional and academic life I've been hesitant to join the ranks of the programmers for a few reasons:
1) Theres always a new programming language to learn, slightly better than the last, but still not as intuitive as us as humans would like when instructing a computer how to react... I thought that I would wait until the day where I could in plain english describe to the computer what I'd like to happen and it would do the work behind the scenes... Well that day isn't coming soon enough... but it is still coming....
2) Trends in outsourcing, with more and more companies looking into outsourcing and/or offshore development of their code.. I personally saw the job market inside the US possibly diminishing in the future... but it seemed that management of the software engineers would tend to stay here on US soil so that company stakeholders would keep control of the development and process/progress..
Despite these few reasons I decided to make the switch, the increased pay scale and potential had nothing to do with my decision :) The reason I made the switch was to learn more about the process of software engineering, to understand how to someday manage software engineers, and to get a gauge to understand the time/effort required to complete specified functionality... With hopes and dreams of someday managing my own corporation, most likely in a technical field, I knew at some point in my career I had to experience the software development life cycle first hand.