CLM logo Development Blog by CLM

Technical debt

From Wikipedia:

Technical debt (also known as design debt or code debt) are synonymous, neologistic metaphors referring to the eventual consequences of poor software architecture and software development within a codebase.

One of the typical software development practices is to have fixes and workarounds in code that are not necessarily correct, but makes everything work fine from the user perspective. Such code is very hard to maintain and the longer it stays in the code base, harder it gets to get rid of it.

We made some sacrifices in our code base and processes to get Anodia released and we fixed this during development of the second update. This way we were able to release Anodia earlier, but it required extra time to get things right later. We could leave as it was before, but this is not approach that we want to follow. We are reusing a big part of our code base (encapsulated as a separate ‘framework’ project) and we need to be sure that it’s working correctly and we can focus on game development.

From our experience it’s fine to get some technical debt at the end of product cycle, but it’s required to pay it back at the beginning of the next cycle. If not, you might get maintenance time bomb and at some point there will be no time for new functionalities because of the bug fixing.

Why this is taking so long?

The question that we get very often is ‘Why it takes so long to get Anodia updated?’. The answer is very simple: it takes time to get things done.

Actually there are a few reasons why it seems that it takes forever:

  • Content — the first reason is the scope of the update. It’s going to be big because we’re not only adding new levels but also lots of functionality. To be honest, the new version will have twice as much content as the first version. Development of Anodia took about nine months prior to the original release and we have the same resources. It’s 7 months since release so it’s not so strange that the update is still in the works.
  • Organization — paperwork takes a lot of time and during the last half of the year we were doing a lot of this — registering the company, changing developer account from individual to company, etc.
  • Software — we made the transition to Xcode 4 and done some changes in our scripts to adapt everything to the new environment.
  • Hardware — we updated our hardware (especially one used for CI) and it took some time to get it configured.
  • Technical Debt — this one is so important that I’ll prepare separate entry about it. In summary: when you are making some compromises and workarounds in your code base and tools, you need to fix it at some point.

Hope that this clarifies the current situation a little bit, please be patient and we hope it will be worth it :) .

The Road Ahead

Big update for Anodia is still under development, and the New Year is a great time to start a devlog.

The plan is very simple, we’re going to write about everything interesting that is happening with our projects, share technical details and provide some tips. Being an independent developer encourage us to share with the world as we get a lot of knowledge from other developers. Currently we want to keep our entries short, yet with as much information as possible.

There is no schedule, but we hope that we’ll get at least 2-3 entries every month.

Stay tuned!