Home Developer Code Quality Threats and How to Solve Them

Code Quality Threats and How to Solve Them

Author

Date

Category

In the process of building Codacy, I’ve learned that software companies in different life stages have different needs in terms of code quality.
Early startups have, for example, very different needs in comparison to digital agencies and freelancers.
There is however a common ground that links them all together: code quality is not being taken seriously enough, regardless of the stage.

If this resonates with you, take action today. Continuous improvement is the central piece of software engineering craft.

1. No continuous integration

Continuous integration is an important key part of every modern development stack.
It implies that you also have unit testing, that those tests are centralized and that there is some sort of validation in your deployments.

What can I do about it?

You can start today setting up amazing tools like Jenkins, Codeship or CircleCI.

More reading on this: Martin fowler

2. Living with broken windows

Quoting from the Pragmatic Programmer:

Don’t leave “broken windows” (bad designs, wrong decisions, or poor code) unrepaired. Fix each one as soon as it is discovered. If there is insufficient time to fix it properly, then board it up. Perhaps you can comment out the offending code, or display a “Not Implemented” message, or substitute dummy data instead. Take some action to prevent further damage and to show that you’re on top of the situation.

Everyone has urgent time-to-markets and deadlines.
Companies that don’t view code quality as something continuous rapidly lose control and the cost of redoing the product is less than maintaining it.

What can I do about it?

Be diligent.
Correct or improve when you find issues. Don’t let them accumulate on you. Here are the top 10 ways to be a faster code reviewer.

3. Gatekeeping

Sometimes teams and companies receive code or a product as a result of outsourcing.
In this case, the process of quality assuring is about gatekeeping and making sure your solution is being developed properly.

What can I do about it?

You should try to follow best practices to oursource your work. Do not integrate bad quality code, it will always cost you more on the long run.

4. Heterogeneity

Different code styles or practices are a way for teams to start diverging on things that should be common and agreed.

Making sure development teams are in agreement in their code style is imperative.

What can I do about it?

The first step is establishing your code style guide in the very beginning. Enforcing them is where most of the product owner fail. This is where Codacy can help. Codacy can help you centralize all your code best practices, making code quality an integrated part of your development process.

5. Growth phase

It’s easy for companies to first output an MVP and prototype an idea. However, when the first users and customers start entering through the door, quality of the overall solution will be an increasing concern.

When growth is introduced, quality will start to matter.
One thing we’ve seen is that there is a threshold on which using tools or processes start to make sense.

If you’re seeing yourself having the same problem over and over, it’s probably a sign you’ve grown out of your current processes.

What can I do about it?

You should always question your current processes.
If quality problems are recurring, you should question whether it is time to introduce stricter rules, processes and quality tools.

6. No static analysis

You should get input and information from every available source that you can.
John Carmack wrote a great article about why it is important to pursue static analysis which serves as a motto for modern software development best practices.

What can I do about it?

You should also pursue static analysis and code linting.
If you use Javascript, take a look at JSHint.
If you use PHP, take a look at PHPMD, PHPCS and see their review and other tools in our Review of PHP Static Analysis Tools.
If you use Python, take a look at PyLint.
If you use Scala, take a look at Scalastyle
and CSSLint for CSS

If you want to use all of the tools above combined, organized and improved with a lot of features, you should take a look at our automated code review tool Codacy.


Edit: We just published an ebook: “The Ultimate Guide to Code Review” based on a survey of 680+ developers. Enjoy!


About Codacy

Codacy is used by thousands of developers to analyze billions of lines of code every day!

Getting started is easy – and free! Just use your  GitHub, Bitbucket or Google account to sign up.

GET STARTED

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Subscribe to our newsletter

To be updated with all the latest news, offers and special announcements.

Recent posts

Static Code Analysis: client-side tools integration with Codacy

Testing and analyzing your code is one of the most important parts of your software development process. With Codacy, you can...

Open salary calculator: our commitment to transparency and fairness

Here at Codacy, we are committed to being a fully transparent company. So back in 2019, we launched our open salary...

How Vevo uses Codacy to replace legacy systems while guaranteeing code coverage

As the tech world keeps evolving, having legacy systems is a certainty, especially for organizations that have been around for decades....

December Product Update 🚀

Hi there 👋, With 2021 in the rearview mirror, we can now focus on making 2022 an incredible...

How Loft uses Pulse to measure Engineering health

Customer story about how Loft uses Pulse to measure Engineering health. Estimated reading time: 5 minutes. About Loft