InfoQ Homepage Code Quality Content on InfoQ
-
How to Tame Technical Debt in Software Development
According to Marijn Huizenveld, discipline is key to preventing accumulating technical debt. In order to be disciplined you should make it difficult to ignore the debt. Heuristics like fixing small issues immediately, agreeing on a timebox for improvement, and making messy things look messy, can help tame technical debt.
-
Booking.com Doubles Delivery Performance Using DORA Metrics and Micro Frontends
The team in Booking.com’s fintech business unit implemented a series of improvements across the backend and the frontend of its platform and was able to double the delivery performance, as measured by DORA metrics. Additionally, the Micro Frontends (MFE) pattern was used to break up the monolithic FE application into multiple decomposed apps that could be deployed separately.
-
How to Prevent and Repay Technical Debt: What Teams, Tech Leads and Managers Can Do
Tech leads, project managers, and managers can prevent technical debt by giving software developers more time; in addition, they can plan for spare time and refactoring sprints to allow teams to improve code. To prioritise technical debt, development teams can show how much time we can save if we invest, and how complicated the software will become in the future if we don’t repay technical debt.
-
EqualsVerifier Delivers Improved Support for JPA Entities
The EqualsVerifier library may be used in Java unit tests to automatically verify equals() implementations inside a project and provides one hundred percent code coverage on equals() and hashCode() methods. Recent releases improved support for JPA, by requiring the use of getters instead of using fields, and solving several related bugs.
-
The Challenges of Producing Quality Code When Using AI-Based Generalistic Models
Using AI with generalistic models to do very specific things like generating code can cause problems. Producing code with AI is like using code from someone else who you don’t know which may not match your standards and quality. Creating specialised or dedicated models can be a way out.
-
How to Create a UI That's Both Robust and User Friendly
The key challenge in building UIs is balancing ease of use and maintainability, with scale and complexity. It requires thoughtful component design and an understanding of common usage paths to create a UI that's both robust and user-friendly. Automation can be a game-changer when it comes to improving efficiency and consistency in your codebase.
-
Programming Foundations for Test Automation
Proper programming foundations can improve your test automation, making it easier to maintain testing code, and reduce stress. A foundation of the theory and basic principles of coding and programming can help to bring test automation to the next level. Object-oriented programming principles can help to overcome code smells.
-
Test Automation Requires a Strategy and Clean Code
Having a good strategy for test automation can make it easier to implement test automation and reduce test maintenance costs. The test automation pyramid and automation test wheel can be of help when formulating a test automation strategy and plan. Test automation code should be clean code, and treated similarly to production code.
-
Using the Technical Debt Metaphor to Communicate Code Quality
With technical debt, we end up paying a gradually rising cost. The technical debt metaphor was intended as a way to help us talk and think about the invisibility of decisions and qualities in code. Kevlin Henney gave a keynote about Six Impossible Things at QCon London 2022 and at QCon Plus May 10-20, 2022. His sixth impossibility was technical debt is quantifiable as financial debt.
-
The Challenges of Reading Code and How to Deal with Them
Reading code can be confusing in many ways; we are not explicitly taught how to read code, and we rarely practice code reading. Being aware of the cognitive processes that play a role can help to become better at reading code.
-
How Mob Programming Collective Habits Can be the Soil for Growing Technical Quality
Mob programming can support teams in changing old habits into new effective habits for creating products in an agile way. Collectively-developed habits are hard to forget when you have other people around. Mob programming forces individuals to put new habits into practice regularly, making them easier to adopt. Teams are intolerant of repetition, looking for better ways of doing their work.
-
AWS Announces General Availability of Amazon CodeGuru
Recently, AWS announced the general availability of Amazon CodeGuru, a developer tool powered by machine learning. It provides intelligent recommendations for improving code quality and identifying an application's most expensive lines of code.
-
GitHub Super Linter Helps Developers Ensure No Broken Code Is Ever Merged
GitHub Super Linter aims to automate the process of setting up your GitHub repositories so they will use the appropriate linter for your language whenever a pull request is created.
-
Organizational Topologies and Their Impact on Quality
August Lilleaas recently wrote about the correlation between organization complexity and software quality citing a paper by Microsoft. Rapid Software Testing Methodology creator James Bach has also recently written about how we should interpret quality metrics. The authors of Team Topologies shared insights into how adapting organizational structure can improve the health of software.
-
Experiences from Mob Programming at an Insurance Startup
What do you do when two developers in your team mention that they have been stuck on a task for three days? At an insurance startup, the whole team decided to try-out mob programming. From the first day they started to mob, their knowledge of the codebase increased. Working together also helped them to get to know each other better and to be more efficient as a team.