• 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 you can usually find them and how to deal with them? This post points out 3 areas where bugs may occur in your application and gives examples of these bugs in specific areas. You will also get to know what you should pay attention to avoid them.


Application bugs - what now?

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 without bugs. You can also have developers who are not good enough, but who have made the process. Or the best tools only. It's not possible that one of them will guarantee your success. They should work together, like well-functioning machine.


The key is to find a balance.


We will go through each of the elements, indicate what problems may arise in these areas and what you should pay attention to if you want to avoid bugs and problems with your app.



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 when the team starts working on a new version of your application to the moment when that version is released for production and available for your users.


What should you pay attention to?


Product versioning

Find out how the product is versioned. Imagine your app's version 1.1 is available to users. Your team is working on version 1.2 - they added two new features and suddenly it turned 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 quick hotfix, 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 in your software development process. What does it mean? Simply example: your developer says: "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 are you sure it will work for your end-user? To check it 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!" to the point when the application is stable and can be released for production some time usually passes. It is a process that must be well conducted and planned.

No bugs handling process

What does it mean to have a proper error handling process? Imagine that your 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 should you fix it? If you do not have such a classification and bug handling process defined, you may have significant problems managing them.



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 your developers use, are functional tests automated or are they manual? It is not always worth automating them; sometimes it is better to do them manually, but are they exploratory tests manually? If they are CASA tests, in what tool are they described, who maintains them? Tools are essential.


PEOPLE

The last area that can potentially generate bugs in your digital product development is people. Of course, the easiest way to say is that bugs have their source in the lack of proper skills among developers. It can be, of course, the main thing, but to be honest, it is infrequent.

What should you pay attention to?


Too small team and too much "pressure"

When you entrust your team the 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

It may happen that even though you have good developers and you estimate the next tasks for them well, there are still bugs in the application. And their reasons can be found in the bad architecture of the solution. If this is the case, you have to accept that it takes some 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? For example: you started to create your app in technologies that were used two years ago. 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 versions, so they'll probably have more and more problems with maintaining quality.


Let's summarize

Bugs in your application may concentrate in 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


At the end of this article, let us give you a helping hand with diagnosing potential or existing bugs in your app development. Download our FREE checklist to find them!