Have you noticed how nobody is talking about being outsourced anymore? Does it seem odd that the crisis of our generation is dealing with the recruiter calls? You know, people who want to give us money. Have you stopped to wonder why the times are so good?
The demand for us is so high because the systems we build are so broken.
Each decade we spend an increasingly large proportion of our effort maintaining legacy systems from the previous decade. We continue to throw abstractions at this labor devouring monster, but it shows no signs of slowing. Higher level languages, type systems, DSL's, TDD, and many others have been developed to increase our productivity but they are not enough.
The way we preform computation today is fundamentally broken. Every instruction that is added to an existing program reduces the chance of it executing properly and increases maintenance and change cost in a super linear fashion. Each line of code in production makes our systems worst and our response is to write mor