

Class Registration
Just the other day I was listening to, i.e. eavesdropping, a conversation between peers where they were trying to decide on what version of Visual Studio.NET their team should migrate to. This team was still using Visual Studio 6 (!!) and wanted to know if they should go to 2005 or 2008. During the conversation the motivation for the upgrade was discussed:
“We want to refactor some of the old [C++] code in C#.”
[OK, now imagine the sound of metal scraping on your fillings. It is that bad.]
Refactoring has been in print since 1999 and has a really clear definition. I also tend to think it is one of the fundamental skills every software developer should be proficient in. Frankly, I feel if you are not refactoring your code, you are not doing your job. So, why do people in this day and age of our profession still consider a rewrite of old code in a new language refactoring? Just another example of sloppy language and, unfortunately, sloppy thinking. So, to be precise, here are the definitions of refactoring.
refactoring (n.): a change to made to the internal structure of software to make it easier to understand and cheaper to modify without changing its observable behavior.
refactoring (v.): to restructure software by applying a series of refactorings without changing its observable behavior.
For those of you who have stumbled upon my rant, here is a short list of things I do NOT consider refactoring:
Agile Agile Design Agile SD Book Reviews Burndown Charts Certified Product Owner Certified ScrumMaster Class Design Coaching Collaboration Communication Conferences CSP Fast Pass Daily Scrum Definition of Done Design Excellence Design for Six Sigma Distributed Teams Documentation Español Estimating & Planning Extreme Programming Games Innovation Games Interviews Intro to Scrum Lean Legacy Code Links of the Week Measures Meetings Metrics Migration Movies Open Workspace Pair Programming Personal Planning PMI Powerful Questions Practices Presentations Press Release Product Backlog Product Owner Quality Refactoring Retrospectives Rugby Scrum ScrumMaster ScrumMaster Plus Servant Leadership Simple Design SIMSOC Spain Sprint Backlog Sprint Goal Sprint Planning Sprint Review Stakeholders Task Board Team Test-Driven Development Testing The Core Tools Training Training From the Back of the Room Transitions Travel Uncategorized User Stories Vision Voice of the Customer