InfoQ Homepage Software Craftsmanship Content on InfoQ
-
How Twitter Automated Data Quality Check Process
Twitter engineering has recently shared a blog post on how they architected and developed a quality automation platform. Twitter digests and creates thousands of data sets for different data products and applications. The next natural step is to make sure of the quality of the data by adding automation on top of it. In this news post, we explore this architecture in more detail.
-
How We Can Use Data to Improve System Quality
To understand how systems are being used, we can collect metrics and identify trends over time. The data and insights gained can be used to improve system quality by improving software design or testing patterns.
-
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.
-
Google Production Excellence Program "ProdEx": Christof Leng at DOES 2022
Christof Leng, SRE lead at Google, presented ProdEx, their production excellence review program that helps manage operational risks and promote best practices. ProdEx is a community that builds platforms together, establishes standards and promotes best practices, so people learn from each others and grow. Today they have more than 100 SRE teams signed up and have performed more than 1000 reviews.
-
Technical Debt is Quantifiable as Financial Debt: an Impossible Thing for Developers
Technical debt can be quantified in various ways, but you cannot precisely quantify the associated financial debt. According to Kevlin Henney, we can quantify things like how many debt items we have, the estimated time to fix each debt item, a variety of metrics associated with our code, such as cyclomatic complexity, degree of duplication, number of lines of code, but not the financial debt.
-
Getting Feedback When Your Colleagues Are Also Your Customers
Getting and using feedback from colleagues who are also customers using your product can improve the quality of the product and help to improve the way of working. In this situation, it’s easier to receive feedback, but you can get overloaded by it.
-
Applying Observability to Increase Delivery Speed and Flow in Teams
When we design team and departmental processes, we want to know what’s happening in the software teams. Asking team members to provide information or fill in fields in tools adds a burden and distorts reality. Setting up observability in the software can provide alternative insights in a less intrusive way. Observability in the software can be an asset to organizing teams.
-
How Norway's Largest Bureaucracy Optimises for Fast Flow
To optimise for fast flow, the Norwegian Labour and Welfare Administration has adopted a teams-first approach. High-performing teams need autonomy, and they also require direction and alignment. Solutions should be adopted by the teams within their context, abilities, and cognitive capacity.
-
Every Question Has an Answer: an Impossible Thing for Developers
We tend to assume that every question has an answer, which for instance isn’t true when we want to find out what the current time is. Developers should increase awareness of unexpected failure modes, advertise the possibility of failure, and use time-outs to recover from waiting for an answer that will never come.
-
Improving Software Quality with Gamification
Bingo Bongo sessions for bug hunting and playing risk storming games can improve quality. Gamification supports learning, can make everyday work interesting, and strengthen team spirit. Playing games should be part of the daily work at the office and seen as an effective work time. In gamification, a real value is created by the creative process.
-
How Measuring Defect Mass Helps to Test Critical Product Areas
Introducing a measurement called “defect mass” helped a project to find the most impacted areas by developments and decide how many tests should be run for each impacted area. Using this measurement together with other KPIs helped them focus their testing. They managed to decrease the number of customer incidents.
-
Moldable Development: How Custom Tools Make Systems Explainable
Moldable Development is a way of programming through which we construct custom tools for every software development problem. Glamorous Toolkit is a moldable development environment that can be used to mold custom tools.
-
Implementing Remote Software Verification and Validation Using a Real Vehicle
Bosch is doing automated regression testing and user testing using a real car instead of a simulated one. Their aim is to test the software as quickly as possible, both from the test engineer's and user's perspectives. The car can be accessed remotely, and team members can work without being in the car.
-
Building Quality in for Blockchain Systems
Blockchain technology can be used to build solutions that can naturally deliver better software quality. Using blockchain we can shift to smaller systems that store everything in a contract. We have to understand our data needs and decide what is stored in the chain and what off-chain, and think about how requirements, defects and testing history can be built into the contract models.
-
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.