If you have read any of my articles on this site, you will know that my big passions in software engineering lately have been code quality and performance. In today’s world, both subjects are vitally important for any project to be successful. A while ago, when speaking at conferences, this is one of the slides I showed at the end of each presentation.

In this article, I discuss three subjects; demand quality in apps you use, demand quality in yourself (improve skills to grow professionally), and finally demand quality in the apps you write. Demanding a certain level of quality in yourself as well as apps that you use and develop will ultimately result in important growth as a professional, resulting in higher-paying jobs. Getting paid what you are work is my goal and for that reason, I write about these subjects, along with loving what you do. Plus, users will love to use these apps and other developers will find it a pleasure to work on new features.
Demand Software Quality in Apps You Use!
I have been writing and using software apps for most of my life, so when I encounter a poorly written app, I get so frustrated. My frustrations focus on three main problems; they are buggy, don’t meet the user’s needs, and companies unwilling to make the app or service better. The more I use software like this, the shorter my fuse is before I get frustrated. What makes matters worse, is that I’m a software engineer. I know how well-designed apps are written. I know how to talk to users so I can deliver great software. I know if apps are architected correctly, adding new features or fixing bugs is extremely easy for developers. For developers, there is nothing worse than having to work on a poorly written buggy app.
But more importantly, this is something I have told companies in the past…
Once you upset a user of your app, they will find an alternative!
At one company I worked at, I warned them of major design flaws 5 months before the release of the software. I warned them they would lose customers due to performance issues. They didn’t believe me! Unfortunately, after the release of the app, that’s what exactly happened. They started losing their customer base and had difficulty attracting new customers. When this team tried to fix the performance issues, they got worse!
In today’s software world, companies need to realize that users have many, many choices on what app they want to use. Companies, especially the larger ones seem to forget this. Or perhaps, their managers are more worried about meeting the schedule than delivering quality!
A quality (professional) developer has a responsibility to deliver only the best quality apps and make noise (bringing up issues and feature ideas), and let these software companies know what is broken, what features we want, or what we don’t like!
There are many ways to do this. You can contact customer support or Tweet it to the company. I have found that for many companies, just posting a tweet is the best since my comment is public and the crews that monitor tweets are usually quick to respond. They can offer immediate help or give you a link to contact customer support.
Amazon is a perfect example of this. Their response time is excellent. Sometimes getting help in minutes, not days like customer support. Sadly, Microsoft is not good at offering support like this. When I tweet about Microsoft products, I know that they will most likely not be seen, so I hope others will offer help or can serve as a warning.
Also, all companies need to make it very simple to send issues or feature ideas right from the app. Most apps I use do a very poor job at this. Some companies go out of their way to make it difficult to contact them. Submitting issues to Visual Studio is very simple and they have a web page where you can see the status and they send you an email about it. I wished all apps made it this easy, even other apps from Microsoft. All of Microsoft should use the same system. The only wish I have is for the emails from Microsoft not to end up in the “Other” tab in Outlook that I do not check regularly.
Demand Software Quality in the Apps You Write!
Let us face it, users are number one since they pay the bills so we can keep our jobs. If we don’t meet their needs, they will find an alternative. I see so many apps out there that don’t do this. Even when I am at a doctor’s office, store, etc., I ask the person I am talking to how they like their software. I rarely get a positive response. This is what I have always felt my job is as a software engineer…
My job as a software engineer is to make the user’s workflow (in what they are trying to do) better.
Recently, I was discussing with a friend and explained this concept to him. As software engineers, we need to make a user’s job easier by making their workflow as fast as possible. I suggested to my friend, that a great way to improve the user experience is to immediately display a status or success message instead of waiting for slow database results. Any process that does not immediately need to be reported back to the user, can be done asynchronously.
The user will appreciate this quickness for the website they are using, that any processing that does not need to happen immediately, should be done async or queued to be done later. This is exactly what Amazon does every time you make a purchase. Cloud services, such as Azure, can help us make this happen with a minimal amount of work.
At a recent contract I worked on, they had to call APIs from third parties that could take minutes to respond; I’m not exaggerating. Just imagine how bad of a user experience that is! There are a few simple ways to improve this. Why didn’t they cache or pre-cache the result from these calls?
One of the biggest issues I see with apps is they do not fulfill the user’s needs. Every company needs to get the users involved at the very beginning of the project. First by talking with them and then later showing them beta versions of the app. In every one of the most successful apps I’ve worked on, this is what happened. Even for one app, I showed up at the company at 5 am and spent most of the day talking to everyone from the manager on down so I could understand their workflow on how they shipped products. I’m now a patented inventor because of that app!
Sadly, getting the users involved in the process is either not done or not done well. At one company I worked at, I told the CEO I wanted to spend time with the users, but he didn’t see any value in this. This is crucial to the success of the project and the foundation of the Agile development framework. If I don’t fully understand the user’s needs, how can I create an app they will love?


Join the conversation! Your thoughts help the community grow.