There is a reason why computer science is not regarded as a "proper" science, mainly because of these reasons.
Computer science is a large field that involves many different disciplines. Hardware development or the development of optimal software algorithms (audio or speech recognition, path finding, etc.) is most definitely, and also recognized as, "proper" science. On the other hand, activities like designing software data structures is more akin to an art form, best left to people with a lot of experience and domain knowledge. Like most jobs in modern society, maintaining a companies IT infrastructure is neither art nor science. It really depends what you are talking about...
If someone reading this is a software development I would appreciate an explanation of why there are so many apps that don't work properly.
1)
As previously mentioned, time-to-market pressures certainly are a big reason why imperfect software gets released. Consumers, particularly those without a technical background, dramatically underestimate the time required to develop software.
2)
Software development isn't just time consuming. It is also expensive, which will typically pressure management into releasing software as soon as it is deemed tolerable (sometimes even earlier), in the hope of getting some returns on their investments before gauging how much more they can afford to invest. Consumers, particularly those without a technical background, dramatically, massively, supercalifragilistically underestimate the costs of software development.
3)
Most smartphone apps seem almost embarrassingly simple/trivial. In many cases I'm sure WP app prototypes were "whipped up" in a matter of days. However, there is a very big difference between getting a prototype of an app to run (which may even seem almost completed at that point), and getting that app to work reliably and fail gracefully in all expected failure scenarios such as the loss of an internet connection, missing files, or any one of literally hundreds of other possible failure scenarios. Developers can easily spend 80% of their time getting apps to behave correctly when things go wrong, while spending only 20% of their time on signature features. Understanding how to create maintainable and reliable software is usually what separates the hobbyists from the professionals.
4)
Professional software development is hard. It isn't by chance that the professional software industry is inhabited largely by brainy nerds. Any activity that is hard is susceptible to mistakes.
5)
9 out of 10 times, the blame for half-baked software is more appropriately placed on bad management, not "crappy" developers.