This is a common dilemma among IT staff: “Should I spend more time writing code, or should I simply get it done quickly?” Although everyone wants to take time to write code for every function, it is difficult to do so. The never-ending shortage of development time and pressure from the boss often forces IT staff to give up the pursuit in the quality of coding to produce new features/new products, finishing at a barely pass standard and pick-up the mess later. However, programmers are just human, and it’s hard to defy the law of “later means never”. You can not get both, and we generally opt for saving development time and cost.

Even though we know we should spend time in writing code better at the beginning, how can we convince ourselves, our bosses, and even our bosses to write better right from the start? What is the importance of quality coding? Martin Fowler recently wrote an article titled “Is High Quality Software Worth the Cost?” which provides us with a clear answer to the question on what software quality is really about in various aspects.

External quality and internal quality are the most important aspects of software quality.

Martin Fowler first distinguished between external and internal software quality. External quality refers to what is visible to the user, such as the UI and program flaws, while internal quality refers to what is difficult to distinguish between good and bad, such as the software architecture.

Nowadays, many companies focus on the UI and UX design, because it is easy for users to get frustrated, complain or even give up because it is not smooth to use! use. Of course, programmatic flaws should be avoided as much as possible, because they directly affect the user’s experience. Relatively speaking, the quality of the coding structure is hidden behind the fancy UI, and it is difficult for the user to know how well the software is coded. For example, Martin Fowler said that the UI of both software is equally good, and there are not too many programming flaws. The internal code is neat and orderly and sells for $10, while the other internal code is a mess and sells for $6. Since you can’t even see the internal code, and the code seems to work fine, who would pay $4 more for it? The former? Why do software companies have to spend resources on the internal quality of their software?

Internal quality and continuous software development

As a programmer, the most time-consuming task should be to process and modify code, even for new software development. You still need to write the source code based on the completed program. To add a new feature, you need to know how to fit the new feature into the flow of the original program, then change the existing flow and place the new feature into the source code. function. The programmer has to understand how the program is written because he/she usually comes across/uses the original code.

The problem arises when the internal quality of the original program is extremely poor, the logic is confusing, and the data is hard to follow. Understanding and using the original program. The difference between the program’s current state and its supposed state is what Martin Fowler calls the cruft, a kind of programmatic redundancy. He refers to another famous programmer, Ward Cunningham’s suggestion of cruft as a kind of Metaphorically, Technical Debt is a technical debt because when a programmer ignores internal for whatever reason. The resulting technical debt will cause all future programmers involved in the source code to spend more time on the process. These additional hours may be considered as interest on the technical debt.

Although users do not have direct access to the internal quality of the software, they do care about the time it takes to develop new features, which is directly related to the time it takes to develop the software. The impact on internal quality. As there is a large amount of technical debt, every new feature added will carry a corresponding interest rate, which means that the development time will increase and users will have to pay more for the new features. Waiting the same amount of time for new features to be available. In this case, software with less technical debt will release new features faster than software with more debt, and users are relatively likely to Switch to a similar software that is more expensive but has more features. A software with a lot of technical debt may be able to run quickly, but it often loses out on staying power.

Martin Fowler points out that even the best development teams inevitably incur technical debt, because the development process is often in a state of uncertainty, and developers only have a rough idea of what the software needs, and can only see steps, the later the fog will clear.

We made good decisions, but only now do we understand how we should have built it.

A successful development team will be able to build the platform by writing automated tests, reconfiguring the building, and building materials. refactoring), continuous integration. This means that the development time for new features can be reduced by actively eliminating sufficient redundancy. In this sense, software with high internal quality may have a higher initial development cost. In the long run, however, software with high internal quality will be cheaper to develop.

Therefore, you programmers should know how to explain the importance of software quality to your bosses, and your bosses should also know how to allocate their time and resources for software development, right?

We are ONEs Software Limited, a Hong Kong based software development company dedicated to the provision of the best software solutions tailor-made for your business with our expertise and professional technology. If you are interested in bringing new impetus into your business, or looking for software to support your business growth, or for inquiries, please feel free to contact us.


Website: https://ones.software/
Email: hello@ones.software
Tel: (+852) 5538 3410