Should You Fix Working Software? Part 2: An Answer
In part 1 I posed the question, which undoubtedly seems like an odd one. How would you fix working software, because by nature it isn’t broken?
The fix I’m talking about is rewriting the software with updated syntax or techniques. Why would you do this? A few of my fellow LLF grads were snagged up by Google while we were all going through the LLF program. We were talking about the culture and one of the things they told me is that Google coders regularly go through the code base and update code with new syntax, remove dead code, or refactor code to be more efficient or understandable. I loved this concept, not because I think redoing work is fun, but because it pushes developers to keep learning and to make code better as they improve their selves.
Often as developers mature they understand the business better and that helps them understand the code better, which gives them an opportunity to leverage refactoring to make the code easier to maintain. But this type of growth only happens in a culture that supports it and there are far too many cultures where it is taught to leave code alone because it "works". I would argue that working code does not mean maintainable code, and when code is hard to maintain it is even harder to change. Change is the number one requirement of IT.
An answer is what I proposed, so I will provide an answer that should be both practical and achievable. Create a culture of growth and learning among your developers. Grow yourself and encourage them to. Raise the bar for them and set high standards. There will be failures; learn from them and grow together. Once you have a culture of self-improvement, perspectives will change and it will improve your teams skills and your software.
This answer is not a technical one because the problem isn’t a technical one. The problem is a people one because, software development is about the people. The people who use it and the people who write and the depths we push our minds to when writing it.
I once served under an executive director who, after a major IT success, told me to enjoy it but not to stop. She said "ride this wave, but be sure to find another one".
—–
Resources to help you and your team grow:
MSDN – http://msdn.microsoft.com/en-us/default.aspx
Code Complete 2nd Edition – http://cc2e.com/
Refactoring Resources – http://en.wikipedia.org/wiki/Refactoring
Object-Oriented Resources – http://en.wikipedia.org/wiki/Object-oriented_programming
Find a local .NET User Group – http://ineta.org/
Find your local Microsoft Evangelists – http://msdn.microsoft.com/en-us/events/bb905078.aspx
Comments are closed.

