This is about the scams that are happening in the software industry and the victims that have to pay for these scams. I’m sure there are scams in many other industries such as the auto repair industries but the software industry is especially expensive for the victims. This is also about why people do not want to work smarter and also choose to be without passion for their craftsmanship and instead rather kiss up and follow orders because the responsible parties have their own agendas.
Let me spoil the summary and the conclusion right here and if interested in the details, please read on because I will list a few ways in which to remedy some of these scams:
Scams in the software industry are allowed to happen because either the people responsible do not care or simply are too lazy to change because they know they are not being held responsible.
This post is my personal opinion and my experiences over the last 25 years in the software industry. For those who are stumbled upon my blog and who are not involved somehow in the software industry for a living, you are using software that was created by people where these scams may or may not have been executed.
First, let me point out the victims in these scams. The victims are the end users of these software products and services. These customers are users in the consumer market as well as the users in the corporate world. I will be concentrating on the users in companies as well as the stake holders or the responsible parties that are paying the bills for something they thought is “quality software”. These are the victims.
The scam artists are the software developers (code monkeys or cheap code grunts), project managers & analysts (the bureaucrats), Database Administrators (the evil gatekeepers and control freaks), and especially the software architects who are not really software architects and are mostly responsible for these scams (the big fish).
In the last 25 years, it has become apparent to me that software is really all about people. When you deal with people on the consuming side of software, you have people who are generally excited or interested in what software can do for them. After all, the computer is generally used as a tool to be more productive and to get work done or the computer is used for entertainment purposes.
In the corporate world, companies create software internally to help the business to be productive and assist in the primary business goals. Companies also purchase third party software, but that is another type of scams and politics that I don’t want to go into right now. I want to point out the scams that are happening in the corporate world when companies create software internally.
How would you feel if you buy a brand new car and only drive it for two months, then the car starts to break down on a daily basis or has constant problems? Imagine you are driving your car in an extremely busy, multi lane highway and your brand new car breaks down? Imagine your car breaks down on this busy highway and you are on your way to work to an important meeting with customers? How would you feel? How would you feel knowing that “your” understanding of a “new” car means that it works and that it will work reliably for at least a few years to come? Well, no problem, you think, you might be an exception and bring the car in for repair because you have a warranty on your car. The warranty is only a small relief. What about the time and energy that you had to use in order to get your car fixed that should have worked in the first place? What if it keeps happening over and over because the car manufacturer just doesn’t care about long term relationships with customers and especially having happy and repeat customers? In an open market with competition, that car manufacturer won’t last long because consumers will drive that company out of business and go for a higher quality car created by someone else.
My point is that the consumer of a car can see tangible problems, the car stopped and is no longer driving. In addition, the consumer has choices and is able to pick between competitors to get a higher quality car.
Let’s shift to the corporate world and the users of internally created software. Users of software in the corporate world may contact the corporate help desk or some other support contact when there are issues with the software. When this happens, the support chain is triggered and usually several people are involved to track and possibly correct the defect. In fact, the number of reported defects in the software or the amount of work involved to correct these defects may trigger more serious actions such as bigger changes and corrections to the software up to possibly redesigning the software.
When companies choose to create software internally, they do so with the resources and budgets available. These budgets are limited. So, companies are forced to make the best decisions possible under the given circumstances.
For example, the sales department discovered an opportunity to automate a manual process if they could just automate this manual process and therefore be more efficient and reduce waste. So, they start the process and communicate with the Information Technology (IT) department on what options are available to automate their manual process. The IT department does its due diligence and finds that there is no third party software available for purchase and recommends to the sales department that the IT department can create this software for them. This is when the scams get born.
What follows is a chain of politics and the birth grounds of personal agendas, laziness, cluelessness, and most importantly carelessness.
The stakeholders at a company and especially the shareholders will pay for these scams and don’t even know it. A perfect scam. That is, a perfect scam until the company’s resources and budgets are being drained so much, that the IT department becomes a financial “burden” with a huge amount of waste to the company. The problem is that these scams are so perfect because companies cannot function nowadays without the help of technology. Companies are being held hostage by their IT departments. STOP THE INSANITY! Please read on, I will offer ways to remedy this.
The Scam Artists – Developers
In order to create software inside a company, companies have developers who can program this software at a minimum. Many times, these developers are split between internal employees and external vendors. One side effect of the scams in the software industry is that the stakeholders of companies hire cheap labor and many times outsource the development to offshore companies because they can create the software much cheaper. The decision to hire offshore companies with their cheap labor are usually driven by the “expensive” employees that current IT departments employ. The waste that has accumulated over the years in a typical IT department is mostly the fault of these scams. So, the stakeholders and shareholders don’t have many options to reduce costs and the drag of these IT departments in the overall execution of a company. Remember that the stakeholders and shareholders are the victims here and only look at the options that are currently on the table. Offshore companies simply feed on this huge problem like parasites feed on their victims. In short, it’s business! It’s business for the offshore companies and more power to them to discover this opportunity.
The analogy I would like to bring is the one of the cancer industry. Who do you think would benefit if all cancers are curable due to medication? Any cancer patient would benefit, of course. But, imagine the huge, multi-billion dollar cancer industry? It surely is not in their best interest to find a cure for caner patients. The same goes for these offshore companies. It is in their best interest to offer cheap labor to remedy the symptoms of the software industry scams in the short term. The patients, the corporations, will be a repeat customers because they cannot cure the cause (the scams) of the symptoms.
Developers are schooled and trained in different ways. But, most of the developers are trained based on what skills are currently needed. These developers pick their skills in their hopes to be marketable as best as possible. There goes the same for developers who are employees or are hired by contracting companies and then placed into these companies.
How do you know that you have hired a great software developer? How do you know that you have a developer who cares what he/she creates and maintains? How do you know that this person has the company's best interest in mind? How do you know that this developer cares so much so that he/she actually offers ideas on how to help the business by coming up with new ways of doing things in the IT industry?
Over the years, I’ve to come to know only a few types of developers:
- Developers do care only enough about the business as long as their job is secure and until they decide to jump ship (a natural response). This includes developers from offshore companies.
- Developers do not care about the business and just follow orders and do as they are told (worst kind). They make efforts to appear to care but could give a rats behind. This includes the kiss ups.
- Developers who are so narrow minded and opinionated that they refuse to see the new way of doing things even it would hit them in their face.
- Developers who are so lazy and just try to cut corners wherever they can. They love the company of other lazy developers.
- Developers who actually care about the business and the long term effects of their creations and offer ways to improve themselves and the processes (willing to learn new things and think out of the box).
You only want to hire and retain the fifth kind of developers. Fire the rest of them. But in order to know that you have developers of the fifth kind, please see my solutions below.
The Scam Artists – Project Managers and Analysts
If you had to lay off people in the IT department, who would lay off first, developers or project managers and analysts? You would lay off the people who are not directly producing. Why do we have project managers and analysts in the software industry? That would be another great discussions but let’s just say that companies think they need them and that they might be useful to them. Let’s just assume that developers cannot think on their own and are simply disorganized individuals who must be told by the middleman (project managers and analysts). What a wonderful scam.
Let me explain why this is such a wonderful scam. Have you ever played the telephone game? For those who are not familiar with this game, it is very simple. There are three or more people with the first person whispering something in one ear standing next to the first person. The second person in turn tries to whisper the same thing to the third person standing next to the second person and so on. Almost every single time, the last person in the line will get some other meaning of what was originally said by the first person.
As a company, why would a company increase the risk of developers not understanding the requirements and problems that the business is experiencing by adding middle men? After all, it is the developers who are actually creating the software and not the project managers or analysts. Why would a company choose to play the telephone game when creating and maintaining expensive software? Why would a company keep developers away from the business? You can plug in your answer here: [...]
It is an old school thinking that a company still needs project managers or analysts in the software industry. They have become obsolete. Companies who are truly embracing the agile software development process have discovered this with great success.
It’s even worse then companies say they are doing agile software development but have project managers as SCRUM masters. Project managers are actually dictating the developers on what to work on. What a nightmare of a failed agile process. What a waste of time and money for those companies.
Fire project managers and analysts today!
The Scam Artists – Database Administrators (DBAs)
Database administrates are one of the best disguised scam artists and only beaten by the master of all scam artists – The Software Architect!
There used to be a time, decades ago, when there was an actual need for database administrators. There was a time when “The Data” is the most important thing in the world. These data gate keepers are living in their very own world. They believe that it is all about the data, nothing else.
Let me first clarify one thing: there is a huge difference between data and information. The business wants and needs critical information in order to make the right decisions at the right time and to get their job done. The business in the corporate world does NOT want data, they want information.
Information is usually a collection of one or more data sources with all business rules applied BEFORE it can be used for decision making. This is so critical and has such a huge impact on the entire IT department and the entire software industry, I cannot stress it enough:
“NO DATA IS GIVEN TO THE BUSINESS UNTIL ALL BUSINESS RULES ARE APPLIED FIRST!”
Why? Because just like playing the telephone game, data is up for interpretation! That simple. Companies cannot afford to leave the interpretations up to individuals.
To make things worse, there is a huge database industry out there with a huge following of database tools that these third party companies want you to use and ideally being locked in for a long time. What a wonderful scam!
None of these databases or database tools help the business directly. Databases are useless unless you have software that business can use to make sense of information.
The fact is that there are ways to store data and information in automated ways that make traditional SQL databases obsolete for most systems. These newer types of storage mechanisms are object databases and NoSQL solutions. These technologies have been around for years now but have been intentionally suppressed by DBAs and developers alike because it could potentially threaten the job security for those involved. Cloud computing technologies are here to stay and will further displace outdated SQL databases. SQL database were created in a time (40 years ago) when there was not much else out there.
It’s time to fire the obsolete database administrators and save the companies from these leeches.
The Scam Artists – Software Architects
Out of all scam artists in the software industry, the software architect is the biggest fish to catch. Don’t get me wrong, companies do need software architects for many reasons. What I’m referring to are the software architects who are not actual software architects but are masters of disguise and perception. A true software architect can smell a fake one from far away. The sad fact is that there are more fake software architects than there are true software architects. The other sad fact is that the true software architects are not allowed to be in a position to point out the fake ones or to execute disciplinary actions.
The reason why the fake software architects have such a negative impact in the corporate world requires further explanation.
First, what is a true software architect? There are different opinions out there and I’m offering my opinion based on my many years of experience in eight different industries:
- A true software architect can do most of the development by him or herself if required. In short, a true software architect is a hands-on developer with a vision.
- A true software architect spends about half of his / her time with the end users and stakeholders. In short, a true software architect is the glue between the end user and the developer(s).
- A true software architect is a visionary person that can see ideas into reality. The visions that this architect has is aligned with the company’s goals and executions.
- A true software architect has sense of the business needs and can fit himself or herself in the business shoes.
- A true software architect can demo the software created before the users and stakeholders.
- A true software architect is willing to compromise when there are better solutions available that did not originally come from him or herself. In short, open to suggestions from other technical peers and willing to learn and try out new things.
- A true software architect is a master craftsman that has expertise for many technical areas and is versatile with different technologies.
- A true software architect is always exploring new ways and is willing to experiment
- A true software architect is willing to mentor software developers
- A true software architect has the best interest of the company in mind
- Ideally, a true software architect is many years experience in different industries because this will allow to discover commonalities across different domains and therefore create solutions that fit.
How do fake software architects get born?
There are many ways this happens. Many times developers get “promoted” to become software architects simply because they put in x numbers of years as senior developer. This alone is not bad but the problem comes when the developer was not really a great developer in the first place. Now, you have a software architect who influences entire projects and really has long term, financial impacts. Decisions by this fake architect have dramatic affects on the entire company and is a big contributor to the drag and waste that IT has today.
A true software architect is visionary. By following a vision that is aligned with the company’s goals and executions, a true software architect will be able to stick to his or her vision and be able to create a plan on how to get there.
In software, the architecture makes or breaks a software product or service. It is the glue between parts that need to operate smoothly. Would you want to build a house without an architecture? In software, some parts can created in an agile method and are more dynamic and other parts are more closely aligned with the overall architecture and vision. Nothing is perfect and compromises will need to be made. However, the vision that the architect sets in place still works and must be followed with discipline.
Sometimes companies have many architects and/or technical leads. Each and everyone have their own opinions. Software architecture cannot be managed democratically. Software architecture teams where every software architect has the same decision authority do not work. It just doesn’t work and causes more chaos and confusion in the long run. It is good to have discussions in general and to keep the communications open at all levels. However, there must be only one who makes the final decision. In corporations, this can be the Chief Technology Officer (not the CIO) or the Chief Software Architect. It is important that the software architect and the Chief Technology Officer share the same visions. Also, what makes a true software architect also applies to the lead software architect either the CTO or Chief Software Architect.
So, how do you eliminate these scams? How do you create true value for the companies that need software to help with their business needs without being ripped off?
The most valuable assets that companies have are the people they employ. It is the pool of these knowledge experts that a company must concentrate on hiring the right personal and especially retain them.
In the open market, you have many car companies competing for the consumer to buy their car. Since cars are usually a long term purchase for most consumers, this is an important decision for most people.
Creating software is complex and an expensive undertaking. So, companies should be careful when creating new software because the financial burden of maintaining poor quality software is extremely expensive. Companies who make short-term decisions and just out source to offshore companies do not see the long term affects at first but will eventually pay the price.
Solution – Create Competition within the Company
If you have followed the reduction in manpower required as I mentioned above, companies free up additional resources and budgets for the following opportunity:
What would happen if a corporation decides to create internal software but assigns the responsibility of creating the software to two small, agile teams inside the company at the same time?
Both teams would compete against the other team for the business customers final decision to opt for their software solution. Business would have to work with both teams at the same time. Both teams would have the freedom to create solutions they think it would fit the best. Both teams have their own software architect. The business will make the final decision on which solution they will pick for production use. The winning team might be compensated in some form or reap other kind of benefits. Once a solution has been picked by the business, both teams come together and learn from what has worked and not worked and why the business decided to go with one solution over the other.
However, the test is not over, yet. One of the key areas of software is the maintenance part. How easy and how costly is it to maintain the winning solution? Is it flexible enough to accommodate change over time? How much time does it take to implement changes, etc.?
I’m sure there are other ways. Please do let me know, I’m curious.