It seems like most startups and even many larger companies have adopted some form of agile software development with scrum being very prominent. Although the degree to which “true” scrum is properly followed varies, many younger software engineers haven’t ever had to experience heavyweight methodologies such as waterfall.
A good software company has to be driven by users. That doesn’t mean the company is driven by what a project manager, product owner, CEO, etc. thinks users want. This knowledge comes from actually working with real users throughout the process from the brainstorming phase through and after deployment. This process is called User Centered Design (UCD, sometimes called Human Centered Design to emphasize that not everyone who impacts the product is a user).
Online privacy is a funny thing. There is largely an expectation of anonymity that people don’t have in the physical world. For instance, if you go in to a store and ask for help finding clothes you might be interested in, the employees can look at you and instantly gather demographic data (approximately how old are you, do you look like a man or a woman, etc.). They can even tell what you’re already wearing to get a sense of what clothes you presumably like already. This is generally considered good because a teenage girl walking into the clothing store doesn’t want to be shown to the “old man” section; she wants to know whats trendy in the groups she identifies with.
As my interest in user experience has increased over the years, I’ve become overly aware of all the little issues in products that I use. In general, UX issues cause confusion and frustration and increase the amount of effort required to accomplish a goal. These particular issues are minor things in Ubuntu Linux (and, in some cases, other operating systems as well) that are relatively trivial to fix from the user’s perspective yet they’ve been problems for a long time.
Most apps are relatively familiar, even if you’ve never used them before, because they’re building on the same patterns that other apps use. If you’ve used desktop apps before, you’re already familiar with toolbars and menus and even hidden actions such as right-clicking for contextual menus. You’re probably familiar with a few of the more common keyboard shortcuts such as copying and pasting.
Mobile apps have building blocks that are becoming more familiar as well such as tabs and scrolling lists. Even less obvious ones like the hidden navigation drawer associated with the hamburger icon are increasingly common and more expected.
Of course, every app is necessarily different in some way. That means that, while many of the building blocks are similar, some will be different or entirely new. Users have to learn these in order to experience the advantage one app has over another; however, apps do a terrible job of teaching users. New users are bombarded with disconnected tips and unfamiliar overlays, while experienced users are left to fend for themselves.