2010-06-03

Code Quality Pushed Aside?!

It's probably a good time to move on when your team decides that code quality is the lowest priority task.  I understand that delivering the software is a very high priority as delivery of this software is how the business makes money.

I don't, however, believe that code quality should be pushed aside in "crunch" times.  When you have deadlines looming over head, that is the wrong time to throw peer code reviews and unit tests out the window.   Yes, you may be able to meet your deadlines and deliver the software, but at what cost?

How much will it cost the business when you deliver buggy software?  Not only are there maintenance costs (ie, the cost of having a developer fix the defect and then redeploy the code), but there is also the possibility of losing customers.  Losing customers may not be a big concern for certain software like browsers, email clients, blog software, etc; but it would be a big concern for software for medical equipment, financial, e-commerce, etc.

My team has continually pushed code reviews, unit tests, etc as a very low priority, especially in times of frequent deliveries.  The continual response is, "we'll have more time to do this and fix our processes later."  I have yet to see this mythical "later."

My team also doesn't understand why we get so many defects back from our QA team.  There have been times where management will require weekend work, to work on nothing but defect fixes.  If 80% of our time here is working on defect fixes, why can management not see that something needs to be changed?

If you're a software manager, please take the time to invest in good code quality practices such as unit testing and code reviews.  You'll be thankful you did.

No comments: