We often hear that applications and games are no longer a cake, there is one continuous donation everywhere and, in general, software manufacturers go somewhere in the wrong place. Let's try to look into the 'kitchen' of software developers and understand what is happening there, which leads to such consequences.
Subscriptions and Software as a service
A long time ago, when the trees were large in the last century, the market was growing, the potential audience of software buyers was much larger than the existing one. At the same time, the release of each new version of the application (or even the operating system) was a big event: there were plenty of changes. This allowed the classic sales model to work perfectly: the user paid money and received the product (in this case, the software). The developer did not just receive money, but received it stably (users were ready to regularly buy new versions) and more and more every day (new users appeared). This money was enough not only for new Ferraris and BMW for top management for bread and butter and sometimes caviar, but also for investing in further development.
But over time, the classic model began to slip. On the one hand, the market was gradually becoming saturated. On the other hand, the software reached such a level that users realized that we had enough of its capabilities, and updates were no longer needed. Indeed, if we look at Windows XP, we find that it covers all the needs of the typical home user. And if something is missing (for example, a quick search with indexing), then this is solved by installing additional software (the same Google Search, for example). Problems usually arise from artificial introduction of them. For example, Microsoft releases new DirectX versions only for new OS versions, and users Windows XP are left without new games.
Therefore, companies began to try to replace a one-time sale of software with a regular charge for use. In the B2B segment, the 'Pay 20% annual subscription and get support and free upgrade during this time' scheme has become popular. For B2C, this scheme will no longer work, and direct subscriptions are introduced here: 'Special offer for photographers – a set from Photoshop and Lightroom for 300 rubles per month (plus VAT)'.
The ideal option for a subscription is the SaaS model – Software as a Service, when the software does not operate on the user's devices, but somewhere in the cloud, and the user has only a small client part spinning. This approach ensures that the user cannot 'twist' the software. In the case of the classic version, no one bothers (technically, not legally) to hack the license check of the same Photoshop / Lightroom and continue using the applications after the subscription expires.
For games, everything is even worse – it suddenly turned out that donat brings the maximum and stable profit. Therefore, games on mobile platforms, where prices for the classic options 'buy once and use forever' were initially lower than for PCs and, moreover, consoles, and are slipping into a dull donut. This is the easiest way. Even if the game is unsuccessful, it is likely that some money will be cut off before everyone else blows it up.
Cadres are everything
The next problem does not affect the price, but the quality of the software. These are the developers, those who, in fact, are engaged in the manufacture of the product. It's no secret that in most software companies there is a regular turnover of staff. In the industry, it is believed that without clear growth, you should not stay in one place for more than two to three years. At the same time, it is obvious that when an experienced employee leaves, he is replaced by one whose experience is less. Of course, sometimes a guru is also hired, who, for example, may not know the subject area, but is fluent in all the tools. But this is not always possible. Some companies, after unsuccessful attempts to hire professionals, may altogether move to politics: “We only hire newcomers and raise them ourselves.” And beginners, of course, are more likely to make mistakes. And mistakes can not always be caught during the testing phase.
Sometimes there is a banal desire to save money. For example, a software development contract is concluded with a certain company. In fact, a completely different company can be engaged in real development under a subcontract, whose prices are significantly lower. And the customer will not even know about it.
What acceleration leads to
The times when software was developed 'from scratch' have irrevocably sunk into oblivion. The pace of life today is just crazy compared to what it was just 20 years ago, and software development must keep up with this pace. Applications need to be made faster and faster. The old Debian principle of 'New version will come out when it's ready' no longer works. The deadlines come down from the outside and are rigidly fixed, and the developers must keep within them. This gives two consequences at once.
The first consequence: in order to develop applications faster, they are assembled from ready-made bricks (libraries). Somewhere these bricks are small and completely invisible from the outside, but somewhere they are huge and clumsy. The library can significantly increase the size of the application, it can slow down, but if there are no other ways to solve the problem in the allotted time, this library will be used.
Consequence two: sweatshop can lead to a deliberate decrease in quality. If in order to solve the problem correctly and well, it takes a month, and the solution is given a week, then there is a high probability of getting a set of 'crutches' that 'most likely will work correctly in typical situations'. Sometimes they will work 100% correctly, but make it impossible for the application to expand correctly in the future. It can work like a ticking time bomb: right now and on time, everything is working well for users, but tomorrow everything will break.
Not to be like everyone else
Another problem in development is the selection of relevant tasks from an extensive preliminary compiled list. Real dialogue with the head of banking application development:
– Why don't you have utility bills? In general, I like your bank, I want to completely switch to it, but because of payments I have to use Sberbank.
– Well … many have utility bills. If we try to add them now, we won't do it as well right away. Therefore, they are recorded here, of course, but not in priority. We'd better add unique 'chips' that no one else has.
Why is it this way
As the saying goes, 'Nothing personal, just business.' Software developers do not have the task of making applications as user-friendly as possible. They have a task to make money. Otherwise, it is no longer a business. Of course, this only applies to software that is sold as a finished product. If the application is part of a large complex or service (and not necessarily software), then it can be completely free. For example, it never occurs to anyone to charge a taxi or pizza delivery app. If you use such a service, then you are already making money, and mobile applications will be completely free for you.
In addition, to make money, you do not need to make a perfect product, you need the product to be better than that of competitors. And not even necessarily in everything. Marketers can step in and present the product competently, highlighting its advantages and keeping silent about the disadvantages. It is appropriate here to recall the story of how the television game 'What? Where? When?' from the sports version of the same game. In the TV version, the team must beat the viewers by gaining 6 points before losing the same amount. This is some objective indicator. And in a sports game, many teams play together in the same hall (answers to questions are not spoken by them aloud, but are written down on pieces of paper and submitted to the jury). And a team doesn't have to play well to win. She can play very badly. The only important thing is that you need to play better than your opponents (or, which is the same thing: your opponents should play worse).
What should a simple user do?
Continue to buy and use the software you like and refuse the software you don't like. If the development company is adequate and ready to listen to its users, then regularly report what they like and what they don't like in their products.