• Tomasz Soroka

Types of bugs in your application. How to deal with them?

The first version of your digital product is likely to be buggy - this is normal. Where do they come from, and how to deal with them? This post will point out 3 areas where bugs may occur and give examples of these bugs in specific areas. I will also write what you should pay attention to avoid them.


Bugs in your application are one of the many challenges you will face when creating a digital product. That's why at the end of this blog post I will share with you a ready-to-download e-book about the most common problems with developing digital products!

Hope you find it useful!


Watch my video:



Application bugs - what now?


The fact that your application has bugs is not unique. It also doesn't mean that you have poor developers - there are many more challenges related to digital product development.


It would help if you remembered that a team is working on the development of your application. And the team consists of 3 elements: PROCESS, TOOLS, AND PEOPLE.

Even the best developers without a proper development process and appropriate tools will not build a properly functioning product with bugs. On the other hand, poor developers have made the process, and the best tools also won't be able to deliver a solution that works well.


The key is to find a balance.


For your application to work and have no nugss, you need to combine all these elements into one well-functioning whole.

We will now go through each of the elements, indicate what problems may arise at the level of each of them and what you should pay attention to avoid them.


PROCESS

If we are talking about the process, first of all, you should find out if your team has implemented the development process of your application. What does it mean? The development process is not about the team using Scrum, having weekly planning, reviewing, and retrospecting. It is only a framework. The development process is about what happens from the very beginning: from the moment the team starts working on a new version of your application to the moment that version is released for production and available on the App Store or Google Play for your users.


What should you pay attention to?


Product versioning.

Find out how the product is versioned. What does it mean? Imagine your app's version 1.1 is available to users. Your team is working on version 1.2 at the time - they added two new features, and suddenly it turns out that a critical bug has been found in version 1.1. (available to users). If in such a situation, the team tells you that you have to wait to fix it until the end of development with version 1.2 because they cannot release version 1.1.1, which is a hotfix quickly, then be careful. There is something wrong with your process.


Lack of an appropriate testing path. Another important thing that can generate bugs is the lack of a proper testing path. What does it mean? Simply put, it means that the developer will say: "It works for me." It doesn't mean that the next version of your product is ready for release. It just means that the application works for the developer, but does it work for your end-user? To check this and make sure that a non-working product does not get into your users' hands, specific steps must be taken, and certain tests must be run. Perhaps some, if you are lucky and your developers are using the appropriate tools, have already started. But from the moment the developer says, "It works for me!" When the application is stable and can be released for production, it takes some time. It is a process that must be well conducted and planned.

No bugs handling process.

Another thing is that there is no proper error handling process. What does it mean? Imagine that the user reports a bug. The bug handling process is about who decides whether the bug reported by the user is fatal, what to do with it, when? If you do not have such a classification and bug handling process defined, you may have significant problems managing them.


TOOLS

Another area where errors can occur is in tools. When talking about the tools used in building and developing your application, I mean primarily programming tools and frameworks such as Test Drive Development, team programming, and others.


What should you pay attention to?


What tools does your team use

Find out what tools developers use, are functional tests automated, or are they manual? It is not always worth automating them; sometimes, it is worth doing manually, but are they exploratory tests manually? If they are a casa test, in what tool are they described, who maintains them? And so forth.

Tools are essential. For your application to work well, you need to combine 3 elements: processes, tools, and people.


PEOPLE

The last area that can potentially generate bugs in your digital product is people. Of course, the easiest way to say is that bugs are the lack of sufficient skills among developers. Sometimes it happens, and it can, of course, be the cause, but to be honest, it is infrequent.

What should you pay attention to?


Too small team, too much "pressure."

When you entrust your team with 30 new functionalities for development in the next two sprints, and after starting the sprint, you add 50 more errors to be fixed - do not expect that all these tasks will be completed on time and in the right quality. The time it takes to complete the assigned tasks must be adjusted to the capabilities of your team.

Bad architecture.

Another thing you should pay attention to is bad architecture. It may happen that even though you have good developers and you estimate the next tasks for them well, there are bugs in the application. And their reasons are to be found in bad architecture. If this is the case, you have to accept that it takes a little time to invest in changing this architecture before discovering that something is not working as it should.

Technological debt

The last thing I want to tell you about in the area of "PEOPLE" is the so-called Technological debt. What does it mean? Technical debt is responsible because, for example, your application started to be written in technologies that were used two years ago. Still, after two years, many things changed - a new technology was created, or the technology in which someone started to build your product already exists in a more recent version. It may happen that for some reason, maybe due to lack of time, no one has ever made sure that your product, your application was updated and developers do not use the latest, and thus have more and more problems with maintaining quality.


To sum up, bugs in your application may concern 3 areas: PROCESS, TOOLS, and PEOPLE. When looking for the cause of a large number of bugs, you should pay attention primarily to:

PROCESS

  1. Product versioning

  2. Lack of an appropriate test path

  3. No bug handling process

TOOLS

  1. What tools and frameworks does your team use


PEOPLE

  1. Too small team

  2. Bad architecture

  3. Technological debt


And finally, as promised, I have an e-book for you to download to help you find out:

What are the most common problems with developing applications/digital products.