Posts Tagged: code quality

Home » code quality

Artur Śmiarowski’s Guidelines for Writing Readable Code

Code means communication has become a bit of a mantra for me. Source code isn't just the means by which you translate requirements into commands and structures a machine can understand. Source code also communicates your intent as a designer and engineer as to what a particular piece of software is supposed to do. If written in a clear and comprehensible manner code can serve as an authoritative design specification with no or little extra documentation needed. I would go as far as ... Read more

Dimensions of Software Quality: Outcomes, Continuity, Cohesion and Coupling

IT consultant Erik Dietrich wrote this interesting article about his approach for evaluating software quality from a business perspective. He suggests these 2 questions as the main business considerations when it comes to software quality: Does the software do what it’s supposed to do? Can I easily change what the software does? In other words: Software quality is determined by both outcome and continuity (the extent to which software allows for changing circumstances, see Jeff Sussna's book Designing Delivery for more information on this matter) The ... Read more

Test-driven Development (TDD) with Angular 2 / 4

Recently, together with Jan Massenberg of Setlog I gave a talk on test-driven development (TDD) with Angular at the 2nd Angular Ruhr meetup. Currently, I help Setlog with improving their software quality and in particular with developing a SaaS tool that simplifies quality assurance processes (QA) in supply chain management. The talk was about hands-on experience with using TDD for implementing this SaaS tool. This article (sorry, German-only) summarises the key aspects of the talk and goes into some more detail regarding the various ... Read more

Agile Med Dev: Software Testing for Medical Devices

Medical devices software engineer Julien Zaegel wrote an interesting series of articles on medical devices software testing. These articles provide an overview of as well as several useful insights on the specifics of testing medical devices software and software in general. When it comes to automated and manual software testing for medical devices there are several aspects you don't usually have to deal with when testing more common kinds of web or business applications: With medical systems human lives are at stake. Medical devices ... Read more

Clear Acceptance Criteria: The Key to Good Software Quality Right from the Start

Actually it should come as no surprise that clear acceptance criteria are a quintessential prerequisite for high quality software that meets both design requirements and customer demand. All too often however, acceptance criteria for software products are either non-existent or vague and ambiguous at best. Who hasn't come across 'acceptance criteria' such as "The app should have a modern UI." or "The application should be easy to use."? What do bromides like that amount to? Not much, unfortunately. Elena Kulik of RubyGarage wrote ... Read more

Writing Disposable Code, Not Reusable Code

In an article about common software over-engineering mistakes Subhas Dandapani provides a lot of useful insights on why software often is over-engineered - sometimes to the extent it becomes unmaintainable. From my experience, the by far most frequent cause of over-engineered and overly complex software is engineers trying to anticipate requirements and potential future use cases. Everything has to be abstract in order to accommodate any possible use case business might come up with. Repetition is generally regarded as waste. Engineers hate ... Read more

Mockito 2 now available

Last week version 2.1.0 of the Mockito testing framework for Java has been released. For more information on this latest iteration check out this page. As the name suggests, Mockito allows you to mock object behaviour during unit tests. When writing unit tests you only want to test a particular unit's behaviour (hence the name). Depending on the programming language used such a unit might be a function, a procedure or - most commonly in today's object-oriented programming environments - a ... Read more

Less Is More

What's true for design in general certainly is true for software design in particular: Less is more - or paraphrasing Dieter Rams - "Write less software in order to write better software." A few weeks ago I read this interesting article by web accessibility consultant Heydon Pickering. In this blog post he argues that the only foolproof way of writing performant web applications is to write less code. Sure, all that fancy minification, transpiling, JIT / AoT compilation and optimisation stuff might ... Read more

Code means communication

Writing software is all about communication. Code is a way of conveying the meaning of natural language requirements in an exact manner so that computers can make sense of the intentions of our fickle human minds and the often ambiguous ways we tend to express ourselves in. So, in that respect software development amounts to translating human concepts and notions into a language machines can understand. However, communicating with machines is only one, more technical aspect, of writing software. The by far more important ... Read more

Varying Degrees Of Software Quality And What To Do About It

When working on client projects I come across copious amounts of source code, which sometimes is very well-maintained, sometimes less so. The various code bases are as diverse as their owners and respective stakeholders: A few come with an inherent sense of quality, lots of unit tests serving as the specification for the product. They're typically delightful to maintain and extend. Some though at times leave the impression of having been cobbled together in a rather haphazard, impromptu manner in order to solve ... Read more