InfoQ Homepage Refactoring Content on InfoQ
-
Is Your Test Suite Brittle? Maybe It’s Too DRY
One important design principle in software development is DRY – Don’t Repeat Yourself. However, when DRY is applied to test code, it can cause the test suite to become brittle — difficult to understand, maintain, and change. In this article, I will present some indications that a test suite is brittle, guidelines to follow when reducing duplication in tests, and better ways to DRY up tests.
-
Craftleadership: Craft Your Leadership as Developers Craft Code
Learning software craftership made me reconsider how I wrote code. Being an experienced software team manager, I try to reevaluate my management practices in the same way: what could test-driven management or pair-management be? Here I propose different insights on how software craftership tools and mindset are transposable to the management domain.
-
Embracing Agile Values as a Tech and People Lead
Having worked as a software developer, the agile community has been a great source of inspiration to me to find better ways of working. In my first leadership role, I incorporated the agile mindset which helped me to get everyone working towards a joint goal: refactoring an inherited codebase for scalability, while enabling cross functional teams to work as autonomously as possible.
-
Q&A on the Book Refactoring - Second Edition
The book Refactoring - Second Edition by Martin Fowler explores how you can improve the design and quality of your code in small steps, without changing external behavior. It consists of around seventy detailed descriptions of refactorings, including a motivation for doing them, the mechanics, and an example.
-
The DDD Do-Over
Jimmy Bogard had a rare opportunity to do what many developers want after finishing a tough project -- a do-over. His team worked on two very similar projects, both using DDD. He discusses the lessons learned from the first project and how the team avoided common pitfalls and was more successful on their later project.
-
Refactoring to a Deeper Model
Paul Rayner uses a case study to demonstrate how refactoring your code can lead to a deeper understanding of your domain model. Through common code refactorings, combined with the implementation of patterns, the codebase became more cohesive and easier to reason about, reducing the time to perform some common tasks from weeks or months to just hours.
-
Coaching Technical Practices
In the past 4-5 years I have been working as a software development coach, helping organizations around London improve their technical practices. I focus on XP practices, specifically TDD, Pair Programming, Refactoring and Simple Design. In this article I share my experiences organizing coaching sessions, including subject selection and sequencing, exercises for each subject and session formats.
-
Managing Data in Microservices
This article provides practical examples of how to manage data in microservices, with an emphasis on migrating from a monolithic database. It is recommended to build a monolith first, and only migrate to microservices after you actually require the scaling and other benefits they provide.
-
How to Sell Refactoring? The Case of Nordea Bank AB
Refactoring is often not a technical challenge. Teams can accurately diagnose inefficient code design. If they have sufficient time and budget at their disposal, they would probably get things done. In this article, we focus on the strategic code refactoring. This distinction was introduced by the BNS IT consultants as part of the method called Natural Course of Refactoring.
-
Refactoring to Reactive - Anatomy of a JDBC migration
Reactive programming offers built-in solutions for some of the most difficult challenges in programming, including concurrency management and flow control. So you might ask - how do I get there; can I introduce it in phases? In this article we transform a legacy application to a reactive model using RxJava.
-
Q&A with Johanna Rothman and Jutta Eckstein on Cost of Delay
The book Diving For Hidden Treasures - Uncovering the Cost of Delay in Your Project Portfolio by Johanna Rothman and Jutta Eckstein explores how projects become delayed and provides tools and methods to analyze and limit the costs of delay in projects.
-
Refactoring for Software Design Smells Review and Q&A with the Authors
Refactoring for Software Design Smells by Girish Suryanarayana, Ganesh Samarthyam, and Tushar Sharma presents a catalogue of typical software design smells and how they can be fixed.