What surprised you the most in your career as a software engineer?
The race to the bottom.
I started in the early 1980s. Employers championed tight code that worked well. During the late 1980s till today there has been a constant dumbing down of software development. Hacking on the fly was always shunned. Now it is called AGILE and expecting people to pay for a hand polished turd is standard business practice.
Software quality has fallen through the floor and it is gaining speed as it heads toward the planetary core. Patients are dying wholesale from medical devices developed using AGILE and nobody is going to prison for it. The 737-Max is a shining example of why you should never use AGILE and I’m willing to bet nobody from Boeing will go to prison for it. (I’m also doubtful that plane will ever be allowed to fly commercially again.)
Nobody really considers just how dangerous connecting every thing to the Internet really is. Consumer press is championing IoT despite constant reports of hackers taking over the things and using them for BOTnets. Most of the people developing the things aren’t highly skilled either. This adds to the problem.
When I started, IT workers were well paid. You started out around $20K (which was a lot then) and within 3 years were getting paid north of $80K. After 5 years you were making north of $180K with bennies. With dumbing down and anyone who read a single “Teach Yourself How to Be Totally Useless in 21 Days or less” calling themselves a programmer, employers have went back to trying to get developers with 10+ years of experience for less than $80K.
The dehumanization of IT.
Through the 1960s – early 1980s, after you graduated from college (once there were college courses) you got hired into a firm with a bunch of other trainees. There was a formal training class teaching you how to develop software for that company using the home grown routines and libraries they had. At the end some where hired as full time coders and the others were sent down the road.
Today the primary “skill” most employers want is a willingness to work for absolutely no money. I worked for a client that used an off-shore team. The team couldn’t code. The system they delivered was a tragedy causing millions in financial loss. Still, they used them. Why? They worked for $10/day.
Companies used to take it upon themselves to make the IT people they needed. Now, they want to buy exactly what they need off-the-shelf for absolutely no money and once the project is done kick them to the curb all in the name of the bottom line.
What made IT work through the 1980s and 1990s was institutional knowledge. An IT department learned how the business operated and would take that into account when asked to develop a new system or make a modification. Now, IT workers have no institutional knowledge. I’ve seen automotive parts ordering systems developed that didn’t even have any code to handle core charges. I’ve seen order processing systems written that never took into account sales taxes. I’ve seen others that understood exactly one sales tax. I’ve seen payroll systems that didn’t have any means of handling a wage garnishment. The list goes on and on.