InfoQ Homepage Quality Content on InfoQ
-
The Value of Using Timeless Testing Tools
According to Benjamin Bischoff, developers find new tools much more interesting than old ones, as they offer an opportunity to learn new technologies and approaches and to expand their tool belt. Using tools that have been around for decades, however, can save time and budget. When evaluating tools, it is more important to understand the problem to be solved than to jump straight into the tools.
-
How Data Mesh Platforms Connect Data Producers and Consumers
A challenge that companies often face when exploiting their data in data warehouses or data lakes is that ownership of analytical data is weak or non-existent, and quality can suffer as a result. A data mesh is an organizational paradigm shift in how companies create value from data where responsibilities go back into the hands of producers and consumers.
-
Enhancing Developer Experience for Creating Artificial Intelligence Applications
For one company, large language models created a breakthrough in artificial intelligence (AI) by shifting to crafting prompts and utilizing APIs without a need for AI science expertise. To enhance developer experience and craft applications and tools, they defined and established principles around simplicity, immediate accessibility, security and quality, and cost efficiency.
-
The Impact of Testing in Software Teams
Communicating quality gaps, holding space for good testing, and writing automation are some of the ways that testers contribute to software teams. According to Maaret Pyhäjärvi, we need to think about testing, not testers. Collaboration and having conversations between team members can result in valuable impact that changes the product and the experiences of our users.
-
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.
-
Making Software Development Boring to Deliver Business Value
Given there’s a limit to our cognitive abilities and our comprehension of complex systems, Corstian Boerman argues that software development should become boring. He suggests moving infrastructure out of the way so that it does not burden the day-to-day development process, and focusing on delivering business value in a predictable and repeatable way.
-
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 Moral Values and Ethics Impact Software Delivery
Ethics and morality ensure fairness and integrity, which according to Anton Angelov is crucial for software professionals and society. The rise of technological advances, globalization, and demographic changes pose challenges to maintaining moral values in software delivery. Angelov believes that it is crucial for the QA industry to have a strong ethical framework.
-
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.
-
How to Develop a Culture of Quality in Software Organizations
According to Erika Chestnut, software organizations can develop a culture of quality with a clear commitment from leadership, not only to endorse quality efforts in software teams, but also to actively champion them. This commitment and advocacy should manifest in data-driven decision-making that strikes a balance between innovation and quality, ensuring that we maintain the highest quality.
-
The Value of Repaying Good Technical Debt
Bad technical debt is the stuff that has been lingering around; teams need to work around it or fix the fallout as a consequence of this bad technical debt. Good technical debt is intentional, enables benefits for the organisation, and is controlled. Teams can use a disciplined approach for managing and repaying technical debt, for instance by using the wall of 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.
-
Benefits of Doing Remote Mob Programming in a High Stakes Environment
A new team that needed to work remotely in a high-stakes environment decided to try out mob programming. It helped them to quickly go through forming-storming-norming-performing. With mobbing, the team learned new technologies, found solutions for dealing with others in stressful situations, and discovered how to work effectively together remotely.
-
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.