BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Software Craftsmanship Content on InfoQ

  • What Does Technical Debt Tell You?

    Technical debt is a popular metaphor for communicating the long-term implications of architectural decisions and trade-offs to stakeholders, but there are limitations to its usefulness. Incorporating quality attribute requirements, or using a different metaphor such as deferred maintenance, can help improve decision making.

  • From Async Code Reviews to Co-Creation Patterns

    This article dives into the throughput and quality of the async code review process, which are very important dimensions to optimize for in product development teams. It also explains why co-creation patterns – Pair and Mob programming – as an alternative way of working are able to optimize for both of those dimensions, instead of needing to trade off between them.

  • Evolving DevOps to Enable Quality at Speed Software

    DevOps must evolve to include Quality at Speed to address issues with delivering timely business value and innovation, siloed teams lacking alignment, a fragmented toolchain, and quality sacrifices. Infrastructure, Developer and Experimentation platforms are the three fundamental platforms enabling Quality at Speed software delivery

  • Code Red: the Business Impact of Code Quality

    Everyone in the software industry “knows” that code quality is important, yet we never had any data or numbers to prove it. In this article, we explore the impact by diving into recent research on code quality. With twice the development speed, 15 times fewer bugs, and a significant reduction of uncertainty in completion times, the business advantage of code quality is unmistakably clear.

  • Why is Everything So Slow? Measuring and Optimising How Engineering Teams Deliver

    As teams grow, they will slow down, but it should not mean that teams stop delivering value that can power future business growth. Avoiding excessive technical debt and ensuring systems are secure and performant becomes increasingly important. As an engineering leader, you can do things to be confident that your team is moving at the fastest and most sustainable pace.

  • POCs, Scrum, and the Poor Quality of Software Solutions

    POCs and Scrum can play a critical role in implementing Quality software solutions. Poor quality often starts with a POC that was prematurely turned into the development pipeline. Scrum short sprints often create an environment most conductive to working reactively to constantly-changing requirements making it hard for developers to prioritize and achieve Quality over the course of the project.

  • Sustaining Fast Flow with Socio-Technical Thinking

    To sustain a fast flow of changes over long periods of time, organizations address both the social and technical, socio-technical, aspects of reducing complexity. Examples are incentivising good technical practices to keep code maintainable, architecting systems to minimize dependencies and maximize team motivation, and leveraging platforms to preclude whole categories of infrastructure blockers.

  • Talking Like a Suit - Communicating the Importance of Engineering Work in Business Terms

    This article explores how to construct engineering work as a story, including clearly presenting a problem, offering a solution, and showing the business a path to success that solves their problem and avoids failure. By presenting your case in this way, you significantly increase your chances of getting these engineering problems addressed, while also becoming a better partner for the business.

  • Managing Technical Debt in a Microservice Architecture

    At QCon Plus, Glenn Engstrand described how Optum Digital engineering devised a method for reliably and predictably paying down tech debt for hundreds of microservices, forming relevant communities and identifying high-risk areas. The communities' collective decisions can be compiled into an actionable roadmap and presented to product managers in a systemic and non-confrontational way.

  • Avoiding Technical Bankruptcy: a Whole-Organization Perspective on Technical Debt

    Technical debt is not primarily caused by clumsy programming, and hence we cannot hope to fix it by more skilled programming alone. Rather, technical debt is a third-order effect of poor communication. What we observe and label “technical debt” is the by-product of a dysfunctional process. To fix the problem of accumulating technical debt, we need to fix this broken process.

  • Growing an Experiment-Driven Quality Culture in Software Development

    Have you ever faced a challenge at work that you weren’t sure how to tackle? Experiments to the rescue! In a complex environment like software development, no one can tell what might work, so we have to try things out. Read this article to learn about key challenges, insights and lessons, and get inspired for your own path to experimentation.

  • Solutions for Testing Blockchain: Private Blockchains, Permutations, and Shifting Left

    Blockchain is an emerging software architecture that has the potential to be a big disruptor in the industry. With change however, comes the added risk of quality issues. As developers and test engineers, we need to be prepared for those changes to better adapt to the new technology and allow for the continued development of software and products through it, without compromising on quality.

BT