BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Refactoring Content on InfoQ

  • Architectural Refactoring: A Task-Centric View on Software Evolution

    In this article, author discusses Architectural Refactoring (AR) techniques to improve the quality attributes without changing the system's scope and functionality. He also provides a TaskCentric Template and Architectural Refactoring Catalog.

  • Q&A on Test Driven Development and Code Smells with James Grenning

    InfoQ interviewed James Grenning about why people are not doing technical practices sufficiently or well enough, why he thinks that TDD can be fun, the importance of unit tests, why programmers need to have a good nose for code smells and how they can become better in discovering "bad code”.

  • Natural Course of Refactoring – a Refactoring Workflow

    This article provides ideas about how to approach refactoring based on the complexity and stability of the codebase (Feather's Quadrant) and proposes a refactoring workflow based on a four step process and some practical suggestions on how to apply it.

  • The Life and Times of TDD

    Scott Ambler discusses a recent mini-survey designed to find out how TDD is being used in practice. He examines the state of practice and what techniques and tools are being used with TDD.

  • Refactoring Legacy Applications: A Case Study

    To refactor legacy code, the ideal is to have a suite of unit tests to prevent regressions. However it's not always that easy. This article describes a methodology to safely refactor legacy code.

  • JetBrains Developer Tools

    JetBrains is one of the few companies that thrives selling developer tools. In this interview you get some insight in their strategies, current and new products and future plans.

  • Technical Debt a Perspective for Managers

    Developers often talk about Technical Debt saying its slowing your projects down. What are they really saying? What measures can you take to reduce it before it cripples your projects?

  • Skills for Scrum Agile Teams

    The skills required to be hyper-productive in agile projects are different from those required by a traditional one. This article identifies behavioral and technical skills required for a team to have that edge. Anyone who acquires these "delta" traits should be equipped with the right set of behavioral and technical skills, which enable them to work effectively in an agile project.

  • Debunking Common Refactoring Misconceptions

    In comparison to Java, an emphasis on continuous refactoring is still relatively new in .NET. Besides having few ardent proponents, many myths linger around what refactoring really is and how it applies to the development process in general. Danijel Arsenovski, author of Professional Refactoring in Visual Basic, attempts to dispel some of these myths.

  • Talking .NET Code Analysis with Patrick Smacchia

    Patrick Smacchia is a Visual C# MVP with over 15 years of software development experience. He is the author of Practical .NET 2 and C# 2, books about the .NET platform. He has worked on software in a variety of fields including the stock exchange at Société Générale and a satellite base station at Alcatel. He's currently the lead developer of the tool NDepend.

  • Agile, Architecture and the 5am Production Problem

    Can refactoring and unit testing really create robust “working software” that survives the real world? In this story adapted from his book Release It! Michael Nygard contends that "abstractions leak": we need to attend to architecture, even in Agile projects, to guard ourselves against the 5AM failures that occur when foundational abstractions misbehave.

  • Case Study: Targeted Practice Adoption using Patterns

    It's easy to forget what originally motivated us, once we're implementing Agile. Teams spin, trying to figure out which practices to start with, unsure which will have the biggest impact, or how they fit together. Amr Elssamadisy and John Mufarrige propose a customized adoption approach to help teams decide where to focus first - an alternative to adoption of pre-packaged methodologies.

BT