Why improvements and maintenance are as important as new features | Development Talks

In the interview series Development Talks, we give you a look behind the scenes of our development processes. This time Joey, one of our back-end developers, spoke. He explained to us why working on maintenance is as important as building new features. What do we consider as maintenance? And how do we do it?

Doing maintenance
Priscila
Marketing
Posted on
Reading time 7 minutes

We get numerous feature requests each week. We do our best to consider the feedback we receive from our clients when building new things.

Although it is easy to see new features, they do not immediately reflect much of our important development work. So, our Marketing Owl Priscila interviewed one of our back-end developers, Joey, about the importance of maintenance and how developers alternate between different types of work.

Priscila: Thanks for joining me for this interview, Joey! I hope we can explain to our clients and readers what the maintenance work we do for Easy LMS is and why it is necessary. Could you start by explaining what kind of work we do to maintain Easy LMS? 

Joey: It’s my pleasure. I will try to explain things without going too technical. We have two types of maintenance work. The first is fixing bugs that appear in the system that clients report. The other is fixing things that we find ourselves and require improvements, so we work on improving them.

Priscila: Right. So, could you explain how that works? Do you work on-demand, or do you plan what to improve ahead of time?

Joey: Well, we usually work in planned cycles of three weeks. The demand for work comes from the Product Owner, who keeps a list of improvements collected based on feedback from clients, people in the company, and ideas that we come up with ourselves. 

Previously, we worked on regular feature development projects where all types of improvements and maintenance work would overlap. That meant we got interrupted by fixing bugs and had to diverge from the new features we were building. 

Recently, we tried something new. We added an improvement cycle on top of our feature development cycle. So, now we have two development teams working at Easy LMS: one working on regular feature development and only working on improvements. These teams switch tasks every three weeks. 

The dedicated improvements team works on a list of improvements, including bugs, by picking up the highest priority item from that list. Then, once the story is complete, we evaluate what the next high-priority item is. In this way, we work through the list during the three-week cycle. 

I think everybody is pleased with the way it’s going. We are trying to find the perfect balance between fixing bugs and improving things unrelated to bugs.

Priscila: Ok. That sounds like an improved way of working indeed! Why is working on maintenance as important as building new features?

Joey: Well, it’s like a house. If you build a house and never maintain it, you will start having many problems. That’s the same with software. If parts of the system get outdated and unmaintained, they might cause problems in time. 

Also, we change the way we work regularly. We need to keep the system up-to-date with how we work now. It would take more time to build new features if we needed to touch on an unmaintained part of the system.  

If we don’t maintain the system, fewer things will be working in the long run

And the need for maintenance will just keep growing. In short, if we don’t fix bugs and don’t maintain the system, it will create more bugs, and fewer things will be working in the long run.

Priscila: Alright. So, are ‘improvements’ features or fixes?

Joey: That’s a gray area. We call ‘improvements’ things that add to an existing feature. They are not a brand-new feature. For example, we recently launched an improvement for the Academy groups feature. Now it’s possible to add a cover image as a description image to each group in the Academy. I call it an improvement, but you could also call it a feature 🤷‍♂️. It’s kind of difficult to differentiate. But I would say that improvements are usually the smaller changes we make to current features. 

Priscila: Which type of work do you prefer, regular feature development or working on the improvements team?

Joey: I would say both. I really like to switch to other projects after a while. It’s not that I get bored, but it’s nice to change and work on different things.

Priscila: Ok. Do you get to finish everything you start building in the three-week cycle? Or, do you leave it for the following team or another cycle?

Joey: We are supposed to finish everything we start building in the same cycle. It’s really easy to create something big and never finish it. But if we are really focused on improving the product, we get that finished. Whatever we do, even if we end up not liking it, is done in three weeks. 

We never know exactly how much time it will take to build or improve something. So, the complete thing may not be finished in three weeks, but we will have something that works and adds value to the system.

Priscila: That makes sense. I think it also gives you a feeling of accomplishment in the end. Do you have any examples of recent work you’ve done on improvements or maintenance?

Joey: Most of our maintenance doesn’t directly affect clients. However, a lot of our maintenance work makes it possible for us to build future features. For example, we just released an improvement that allows admins to re-order the groups in the Academy. It may seem like a small change for the admin, but we actually had to rebuild a lot of that page to make that possible. 

We’ve improved the exports' system as well. The admin will only notice that they now can export larger amounts of data at once. But we had to build an entirely new system that could support those exports and work faster. 

A lot of maintenance is in our development environment and improving how we can actually build new features — it can be updating or changing the code. Still, it can make it easier for new developers to work on our code.  It also makes it easier to test the system before deploying something online. That prevents bugs from appearing and bugging the clients 😁. 

Priscila: That’s a good thing. Have you seen the impact of that?

Joey: Definitely. Any issues that we find during the testing don’t go online. We have automated a lot of the testing. We have been teaching more people in the company how to test properly and get more people involved in the entire process.  That way, we can spot small bugs that clients can’t even notice. 

Priscila: What are the plans for the future in terms of maintenance?

Joey: It’s the continuation of what we are doing now. As I said, the whole idea of having a dedicated improvements team is new, and we are really pleased with it. As Thomas explained, we are also moving more and more parts of the system to a microservice architecture.

There’s always room for improvements in the system and the way we work. However,  I am very happy with the improvements we have made so far, including our processes and our general way of working. 

Priscila: From what I could understand and from my non-technical perspective, I agree with you! Thanks for participating in the interview, and we are looking forward to more improvements.

Joey: You’re welcome. I am too!