Politicians… Welcome to the Real World of Software Engineering

Politicians are all up in arms about the Obamacare website not working properly due to lack of testing. Testing? QA? In the real world, testing is one of the main tasks that shrinks to allow more time for development because we all know that development always takes longer than planned. This is unfortunately an issue on every project I have worked on. Today, a web site I helped developed for a very large university is being released with absolutely no official QA testing of any kind. There aren’t even any QA engineers on the project. Want to guess what’s going to happen?

What I have learned that it’s crucial that QA is involved in all stages of development and should even be included in the very first meetings. Again, I can only remember this happening once on a project but it was not followed through. I have tried over and over again to get this happen with not much luck at all. I once had a manager remove all testing tasks from a feature I was working on because it “did not meet the release date”.

In just about every project I have worked on the magical (dreaded) “release date” is usually the problem. This release date is usually decided by people that not only are in the development team but never actually talks to them before coming up with the date. I once went to a project meeting and the manager for the product management team walked in, told us the features that had to be done and the date they had to be done by. At this point all the developers in the room checked out (mentally) because this could not be done so there was no point on paying attention anymore. Actually, we did give them a number on how long these mandatory features would take. The number was 6.9 man years… there were only three developers.

So when the department head heard this, he rushed into our meeting and announce we would get it done in three months by hiring contractors. This is the typical response that managers have and we (developers) all know that throwing more bodies on a fire does not work! The department head later cornered me in the stairwell and asked me my opinion. I asked him if really wanted to know and he had to promise not to fire me. After agreeing I told him that if we hired these contractors six months ago we might have a chance, but his plan would not work.

Guess what happened… you got it! The project was many months late and we had to remove many of those “mandatory” features. Actually when we released the product we started loosing current customers mostly due to issues with the program. What will fix this problem? Many are using software development practices like Agile, but this won’t fix it. The only thing that will fix this is communication and education.

Communication is key in any company and is usually never done much at all. At the last company I worked for it was maybe the worse I have ever seen. We referred to all the teams as “silos” that didn’t seem to know how important this is usually due trying to protect their domain.

Eduction refers to teaching everyone above the development teams on how the software process actually works. The last company I worked for had a habit of putting people in key positions of project management that came from other non-software teams in the company like the financial department. They had no idea how this process works. Even after going through the process a few times it seemed, to me, they did not learn anything. Actually I kept ranting that the project management department head had never gone through a software development process even though he has… heck we was the department head. He was removed from this position and we though we might have a chance… we didn’t with the new guy. Not long before I left the company he was brought back. This was the point many of us started looking for new jobs. Actually, one year later, all of the senior developers are gone. Jumping the sinking ship.

Now this company thinks that outsourcing, to foreign countries, will fix their issues. Ha, this is only going to make it much worse and they will learn the hard way. Let’s see if they have any customers left in the next few years.

So how do we fix this? Do all of the things I mentioned in this rant. Sadly this will continue be the norm. In my 20+ years of software development experience I have never seen this issue change.

5 thoughts on “Politicians… Welcome to the Real World of Software Engineering

  1. Sing it, brother David! I’ve reached a conclusion: deadline first never works. It COULD work if you ruthlessly slashed features as the deadline got closer. But no one is ever willing to do that. The deadline stands still — or even moves FORWARD — while the feature set grows and changes.

    1. Thanks for the comment. I get dirty looks when I tell people how long something will take. I’m always longer than anyone else, not because I’m slow but because I try to take this and other things into account that people don’t want to hear.

  2. Teensy bit pessimistic but the point is well taken. The humor of the situation is not just the lack of testing, but that they used this as an excuse. Even in Agile adoptions, I still see QA not included in Scrum teams.

    1. Thanks for your comment. As a developer this has always been a point of frustration because people believe our code should just work perfectly! I hope you will share this.

    2. Pessimistic like Dilbert is truism. Another part of this equation is not being able to say ‘no’. Our company goes to a new customer who wants custom modifications (what I do), and the customer gets a ‘go live’ date in mind, so contracts are written, and no one wants to lose the sale, so they (our managers) agree to ludicrous and impractical timelines. We then get a full-on cluster f*** of untrained, albeit skilled, contractors who have never seen the product before. Satan himself could not custom craft worse nightmares from hell if he tried.

      The most successful projects I’ve been on have been when all the coding is done by one or two (three at most) developers, and the customer is not in any hurry. Yeah.. I know.. Eutopia. I’ve actually been blessed with a few of those. Customers still running code in production years later, and even more recently wanted added feature – presto. No problem adding functionality to well-documented, well-designed, well-implemented code that is well-understood by developers (not contractors) who’ve worked with the software and product framework for years.

      The real problem is that human condition which disposes us to want something (or everything) for nothing. Practically no one wants to pay up front to do it right, so they pay 3 to 5 times over on the back end in break/fix spaghetti-kludge git-er-done jamborees. That’s not pessimistic. That’s just plain real, though horribly unfortunate.

Comments are closed.