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”.
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.
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. 7
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. 5
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? 3
The skills needed to be hyper-productive in an agile project differ from those required by a traditional one. This article identifies behavioral and technical skills required to give a team that edge. 16
Danijel Arsenovski attempts to dispel some of the myths around refactoring and how it applies to .NET developers. 10
Patrick Smacchia is a Visual C# MVP with over 15 years of software development experience. He is the lead developer of NDepend.
Can refactoring and TDD create “working software” that survives real life? Michael Nygard suggests that "leaky abstractions" ambush us at 5AM when we've paid too little attention to architecture. 25
Teams new to Agile wonder which practices to start with, and which will most benefit their own context. This article proposes a customized adoption approach to help teams decide where to focus first.
Tess Ferrnandez, an escalation engineer in PSS (product support services) at Microsoft, outlines the procedure for tracking down where in your code an exception occurred by using a stack dump.