Code Quality

Code Quality is identified as one of Matter’s top skills linked to performance and career success. Matter helps professionals tease out blindspots and areas for growth in skills like code quality through regular peer-to-peer feedback.

What Is Code Quality

Definition of Code Quality: Writes long-term useful and long-term maintainable code.

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.

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 Isn’t 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 Roles That Benefit From Code Quality

Who can benefit from practicing code quality? Matter is helping professionals at all levels get actionable feedback to improve their code quality.

  • CEOs who are looking to become better leaders and cultivate company culture
  • Software Engineers who aspire to become a tech lead or manager

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.

  • Analytical Thinking: Applies logical thinking to solve complex problems
  • Design Thinking: Applies user-centered methodologies to solve problems and create solutions
  • Hiring: Convinces talented people to join your team and/or company
  • Technical Acumen: Grasps the technical details required to lead a project
  • Technical Leadership: Ensures strong technical decisions are made while leading a project

Learn. Improve. Grow.

Our mission is to help everyone reach their career aspirations and achieve their professional goals.