[A- The Impact Of A Bad Codebase] — The Duty of the Developer As A Professional #2

Abderrahim Benmakhlouf
3 min readOct 17, 2019

--

When a Developper produces bad code, it impacts three different types of actors: himself, his development team and his company, respectively. These impacts can be classed in different categories, which will be detailed in the rest of this article.

Comprehension and Explanation

  • As time goes by, a rotten code can be quite difficult to understand and apprehend by our “future-selves”. Obviously, this can even be more confusing to our development team, who did not write the code at first.
  • Explaining the code to our development team (while reviewing a pull request, or on-boarding a new member, etc…) may be painful, and may lead to misunderstanding.

The consequences of this are more time to understand the code, to make changes; and high risk of inducting bugs. As far as concerned the company will have to spend more time and more money on the project.

Testability

  • Unit-testing our methods/functions, classes and even the features can be harder to implement.

As a result, the risk of having bugs becomes higher, which may prolong the development time, hence more cost for the company.

Reusability

  • Reusing a part of the code or module within the project becomes impossible for the development team
  • For the company, the profit of reusing already-developed modules in other existing or new projects is lost.

On this aspect, the waste of time and money is more remarkable, as the team may have to re-do a lot to achieve almost the same result.

Maintainability

  • We’ll encounter some difficulty while adding, modifying or removing a feature.
  • Fixing bugs can be more time-consuming and less effective

The difficulty of maintaining the codebase will often force the company to rebuild the product from scratch and sometimes with a new development team, since the cost of maintaining the existing codebase will drastically raise even higher than the cost of developing a new one.

The decision of the company to stop the code maintenance is considered as if the development team has lost control of what they have been doing. This also affects directly and negatively the Developer’s reputation and image toward the management side.

Skill-raising

  • Low-quality code influences developer’s motivation. This can be a reason for team members’ early quit from the project or even the company.
  • For newcomers, as soon as they aware of the difficulties, their behavior can divide. They will soon leave the project if their voice is not listened by the development team and the management team. Or they will follow the team producing more bad code.*

The consequence is clear: the company may lose good developers, the human-resources personnels will have to put more effort and time finding replacements. Finally, the company’s brand fades little by little.

  • We will talk about how a professional Developer should behave in another article. Wait for it!

Reputation & Image

The project in which the bad code is produced, it will appear directly on the Curriculum Vitae of the Developer. The bad reputation can also be spread from one to another (Development team or also management one).

This has a knock-on effect on the company that holds a such project by decreasing its business but also the possibilities to recruit good developers.

In Brief:

  • Developer -> Tarnish Curriculum Vitae
  • Development team -> with others teams or development teams
  • Company -> Recruitment and Business

Conclusion:

“NEVER SHIP SHIT.” — Robert C. Martin (Uncle Bob)

Note: Refactoring does not mean time wasting.

Co-writting with Mohammed HIMOUD and Linh NGUYEN.

We hope that you learned something today with this post ! Give us claps if you liked it :)

You can see our other posts here:

--

--

Abderrahim Benmakhlouf

 iOS Tech Lead Developer — Professional developer — Extreme programming (XP) Never ship shit