refactoring | TechWell


Looking at code through eyeglasses Fearless Refactoring, Not Reckless Refactoring

Fearless refactoring is the agile concept that a developer should be able to incrementally change code without worrying about breaking it. But it's not believing that you don't need a safety net to detect and correct defects quickly when changes are made—that's just reckless. Here's how to avoid reckless refactoring.

Jeffery Payne's picture
Jeffery Payne
Broken ceramic plate Overcoming Test-Driven Damage

Some say test-driven development may work well initially, but as soon as we start to refactor our code, it breaks old tests and requires us to write new ones. This is not the fault of TDD; it’s the way we’re using it. TDD remains a valuable way to verify code as we write it, so we need to repair our test-driven damage.

David Bernstein's picture
David Bernstein
Red-green-refactor cycle Keep Your Code Base Clean with Regular Refactoring

The Boy Scouts have a rule: “Leave the campground cleaner than you found it.” You should apply the same principle to your code. Regular refactoring prevents code rot by keeping the code base clean and easy to maintain. Refactoring activities can be added to the product backlog as user stories to make it a discipline.

Dheerendra Mutharaju's picture
Dheerendra Mutharaju
How Agile Prevents Software Decay

All of us have been in the situation where fixing a single issue can produce several other defects. Agile embraces continuous design changes and code refactoring to meet challenges from emerging requirements. This inherently promotes practices that prevent software decay.

Mukesh Chaudhary's picture
Mukesh Chaudhary
Variant Management Starts with Design

Joe Farah describes how to not overload your branching with variants so as to permit your customers to dynamically modify the behavior of a software product. Variant management is a CM issue, but it has to be dealt with in the product design first.

Joe Farah's picture
Joe Farah
How Automation Benefits Agile Technical Practices

Automation is an important aspect of agile technical practices. Automated builds, testing, and deployment enable developers to implement features and refactor to improve code quality with confidence. So, is there any reason to be skeptical about the benefits of automation?

Steve Berczuk's picture
Steve Berczuk