Code Quality

Code Quality is identified as one of Matter’s top soft skills that is linked to performance and career success.

What is Code Quality?

A good developer is someone who works intelligently, knowing the ins and outs of their job, but also someone who is a good collaborator and is completely reliable.

Developers need to be cheerfully flexible as they work to make scalable solutions in their software. Code needs to be efficient and up to the task of sustaining testing and updating.

Matter’s Definition of

Code Quality

Writes long-term useful and long-term maintainable code.
Matter is based on an ontology of over
30 recommended skills.

Great Coders You May Know

Ada Lovelace

Born in 1815, Lovelace is considered one of the very first computer programmers. Always interested in the sciences, Lovelace was immediately taken with Charles Babbage’s Analytical Engine. She was the first person to make the leap of thought that computers could do more than crunch numbers, but could manipulate symbols. Her notes include what is considered to be the very first algorithm designed for machine processing. To do this at any era would be groundbreaking, but Lovelace did it during Victorian England when few women were in the sciences.

Barbara Liskov

A professor at MIT where she leads the Programming Methodology Group, Liskov was one of the first women in the United States to be granted a doctorate in computer science (in 1968), and is a Turing Award winner. Among her accomplishments is the eponymous Liskov substitution principle (a principle relating to subtyping in computer programs), creation of the Venus operating system, and the design and implementation of CLU, a coding language that led to the development of object-oriented programming.

Joel Spolsky

Founder of both Trello and Stack Overflow, Spolsky created The Joel Test, a list of twelve yes-or-no questions that can be answered to determine the quality of a software team. These rules include things like “Do you use source control?” and “Can you make a build in one step?” He contends that the very top companies score a 12, while most software organizations are scuttling around near 2 or 3, and they’re in need of serious help.

Why Code Quality Is Important

Collaboration

It’s next to impossible to find a software product that was created entirely by one person. Collaboration is about communication and supportiveness in creating maintainable and readable code bases.

Reliability

A developer should be writing consistent and efficient code, and doing so in a reliable fashion. The code should support testability, and update easily without breaking.

Scaling

Scaling is essential in writing good software. The end goal of a business is to grow, thus a software solution that is inflexible and unscalable is going to fail the test of time.

What Code Quality is NOT About

Skipping Documentation

Good code should be code that can stand on its own without the constant care of the coder, surviving the test of time. Documentation is essential to making sure that you’re leaving your product in capable hands.

Overworking

While there is the occasional need for pulling a late shift to get something done, you want to avoid burning out on sleepless nights and energy drinks.

Control

A good developer isn’t one who sets up a fiefdom that no one else can navigate. Having secret backdoors and shortcuts that you hide from coworkers is a fast way to get taken off a project.

Abilities That Lead To The Mastery of Code Quality

Commenting code

In an ideal world, code is self-explaining, but it’s often recommended to add comments to the code to explain its role and functions. It makes it much easier for anyone who didn’t take part in writing the code to understand and maintain it.

Coding efficiency

Efficiency is directly related to software performance and speed. Software quality can be evaluated with the efficiency of the source code. Nobody likes to use software which takes a long time to perform an action.

Supporting testability

Testability measures how well the software supports testing efforts. It relies on how well you can control, observe, isolate, and automate testing, among other factors. Testability can be measured based on how many test cases you need to find potential faults in the system. Size and complexity of the software can impact testability

Writing extensible code

Requirements change frequently. It could be that new customer feedback has resulted in new requirements outside of a project’s original scope. This is why it’s important to write code that is resistant to change. This is called extensibility. Extensible code will allow you to add or remove features quickly without introducing bugs.

Writing maintainable code

Maintainability is about writing code in a way which is easy to add new features, modify existing features or fix issues with a minimum effort without the risk of affecting other related modules and functionalities.

Writing readable code

Readability is the ability to write code that is easily, quickly and clearly understandable by someone new or someone that hasn’t viewed the code for some time. It is important to ensure that everybody can understand the code written by everyone else.

Writing reliable code

Reliability is the ability to perform the operations consistently without any failures, every time it runs. The software would be less useful if the code functions differently every time code runs even though the same input is given in the same environment.

Writing reusable code

Writing reusable code measures whether existing code can be used again. Code is more easily reused if it has characteristics such as modularity or loose coupling.

Writing robust code

Writing robust code is the ability to cope up with the errors during the program execution in spite of unanticipated conditions. Typically software is fragile and can be buggy, but the error handling needs to be done gracefully. In order to achieve robustness, software has to be tested with common and uncommon conditions.

Explore Complementary Skills to Code Quality

Code Quality shouldn’t be practiced in a vacuum. Improve your Code Quality by exploring and developing these complementary skills.