InfoQ Homepage Delivering Quality Content on InfoQ
-
Developing Quality Software: Differentiating Factors
The level of software quality attainable is a reflection of an organizational business decision. There are many factors that influence this decision, including development, build and testing environments effectiveness, resources and their associated skillset, integrity, motivations and experience levels, commercial agreements, and adopted processes and productivity tools.
-
Continuous Delivery Coding Patterns: Latent-to-Live Code & Forward Compatible Interim Versions
This article describes two novel practices for continuous delivery: Latent-to-live code pattern and Forward compatible interim versions. You can use these practices to simultaneously increase speed and reliability of software development and reduce risks. These practices are built on top of two other essential continuous delivery practices: trunk-based-development and feature toggles.
-
0 Bugs Policy
Gal Zellermayer describes the 0 bugs policy, a process for handling bugs that is based upon 1 rule: whenever you encounter a new bug, you should either fix that bug, or close it as "won't fix" and don't think about it again.
-
Understanding Quality and Reliability
One of the most overlooked but important areas of software development is quality. It often is not considered or even discussed during the early planning stages of all development projects, but it’s almost always the ultimate criteria for when a product is ready to ship or deploy. This article will explore how to measure quality and minimize the factors that negatively impact software reliability.
-
The Way to No-Hotfix Deployment
Hot-fix redeployment is a waste of time and effort at best, and often a source of further regression, Adam discusses some ready-to-use techniques that helped he and his team reduce the frequency of hot-fix deployments to almost zero.
-
Toward Agile Architecture: Insights from 15 Years of ATAM Data
The authors have concluded after analyzing 15 years of Architecture Trade-Off Analysis Method (ATAM) data across 31 projects that modifiability, performance, availability, interoperability, and deployability are key quality attributes for Agile practitioners.
-
The Most Common Reasons Why Software Projects Fail
Knowing the basics of software development can greatly improve the project outcome; however, that alone is not enough to prevent project failures. Projects can be categorized as failures because of cost overruns, late deliveries or poor quality, but the right estimation processes can increase the likelihood of project success.
-
Creating a Culture of Quality
Every company wants to delight customers with a high-quality product, and many organizations naturally focus on process improvements to reach quality goals. But organizational culture eats process for breakfast. So how do you create a culture of quality? New research on 850 employees who impact quality from 80 companies presents new strategies for shifting values, norms, beliefs, and habits.
-
Interview and Book Review: Enterprise Software Delivery
"Enterprise Software Delivery" is the latest book by Alan W. Brown, and is a must-read guide for anybody concerned with the development and delivery of software in a large organisation.
-
Tradeoffs: Giving up Certainty
While organizations operate under an illusion of certainty, tradeoffs are inevitable. Giving up certainty does not mean giving up predictability. This article examines four flow choices for software delivery and presents three choices for IT Delivery: Throughput, Flexibility and all out speed.
-
My Experience as a QA in Scrum
The QA role in Scrum is much more than just writing test cases and reporting bugs. In this article, Priyanka Hasija shares her experiences and the valuable lessons learned over the past 2 years while serving as a QA analyst on a Scrum team. She explains how QAs not only perform agile tests but also fill many other roles and responsibilities, earning them a place of importance on the team.
-
The Developer-Tester Divide
The evolution of the software industry has created two separate roles: The developer and the tester. Traditional software development put these two at odds. Now, agile practices are bringing them together again in order to meet the original business goal: working software.