Quote from fframe38:
I agree completely. Have been in software engineering field for 25 years now. When I started out, software engineers were respected scientists who were paid well, had decent benefits, and solved worthwhile challenging problems. Management believed in fostering creativity, rewarding innovation, results over process, etc. The field also had a sort of cred, although tainted slightly by the geek/nerd image. Even the contracting world of the 1990s was still very good - savvy people with skills could still bring home a decent check with paid overtime.
I remember the first hints of the decline to come occurred with the expansion of H1-B programs to deal with the perceived "programmer shortage". This occurred around 1990-1991, during a very bad recession when many tech firms were laying off by the thousands. The funny thing is every time I hear about these perceived "programmer shortages" it is during a recession when people are laying off engineers. It didn't take too long to put 2+2 together and realize that it was a strategy to replace high cost workers with lower cost workers, and basically alter the supply/demand relationship permanently.
The problem was that in the beginning, the H1-B program was supposed to be used to bring top quality people over here to meet specific niche needs that were hard to fill. Over time, it was abused to a method of importing warm bodies over here, holding them hostage until they could get a green card, and watering down the salaries in the whole industry so that costs could be cut drastically. Instead of the savings being passed onto the customers or investors, it was largely lavished on the executives who had created the "savings". The same thing happened with outsourcing as well. Executives would do stupid things for the long term in order to get short-term results and bonuses.
A simultaneous effect was that the software engineering role became "de-skilled" to a large degree and it was considered more intelligent for a company to hire more average developers than fewer outstanding ones, even though productivity studies have shown up to a 28/1 productivity factor between top flight developers and the average drones hacking up code. The idea was to avoid developers having negotiating power and to be able to easily replace anybody in the organization without losing anything much.
In the old days, innovation and creativity was fostered and respected. It was far better to create something excellent even if it ran over cost somewhat or took a little longer to create than first thought. Later on, it became all about pushing whatever crap to market as fast as possible regardless of quality. Most times, it was some near worthless web weenie crap. In fact, with the subscription based pricing it is almost rewarded to have constant "updates" which are usually just bug fixing of stuff that should have worked correctly when a product was released initially.
The Agile development methology and open source stuff is basically the "Communist model" of development. Reducing everyone to a replaceable widget, facilitating outsourcing and micromanagement. It is no accident that software engineering salaries have basically been cut in half over the past 10 years or so when you take inflation into account. Another side effect is that most companies are no longer offering challenges that appeal to scientist and engineer types.
The end result is that the intelligent people moved on to other fields, or started their own businesses, or invested or whatever, and the field was abandoned to the hordes of Indians and Asians and the clueless MBA management models. Then we wonder why there is no "innovation"? WTF. You can't force innovation, and the incentives in place (or mostly "not in place") do not support it. In fact, software development is becoming more like a union job in most places than any kind of creative endeavor. Mediocrity is rampant, management is clueless, Dilbert-isms are rife throughout the industry, and the whole industry is now infatuated with this shallow web-weenie vaporware BS which doesn't solve any real problem of significance.
You want to do software - do it for yourself and use it to trade or further some creative endeavor. Don't bother working for some company that will have you blowing every spare minute of your life toiling away for their bonuses while you get scraps and watch your dollars evaporating into the night with each successive QE program, and then eventually you will be laid off or replaced by an incompetent idiot who can barely speak English.