I’ve spoken a lot about the potential that Team Foundation Server provides as a framework for creating very powerful software development process tools. I’ve also spoken a lot about supporting your software development department with a dedicated development team. These two ideas go hand in hand. Let me expand on that here.
When a company wants to support their business processes with software, they have two choices: buy a product off the shelf; or build a custom software solution. Actually, there are three choices, but the third is a hybrid of the first two: customize an off the shelf product.
The software your company creates for the sprocket order fulfillment system is an electronic manifestation of your company’s business processes. You have significant amounts of money set aside every year to improve that software so that it better captures your business processes. You know that COTS software won’t be an exact fit for what you are doing, your processes are what give you an edge over the sprocket factory down the road.
Why is it that companies are so quick to segregate software development from the rest of their business? "IT supports the business, it’s not a core business process." "We’re not in the software business, we’re in the sprocket business."
Stop it! It’s time to come to terms with reality that if you are spending money to develop your own software or to customize off the shelf software, YOU ARE IN THE SOFTWARE BUSINESS. Even if the only consumer of your software is you. Once you’ve accepted that fact, you’ll realize that software development is a core business process. Do you see where I’m going here? We take it for granted that an off the shelf product is good enough for developers. You don’t know how many times I’ve heard people complain "if only visual studio did this" or "I wish TFS was easier to work with." Sound familiar to the same complaints you hear about the CRM tool your company just bought? The big difference is that code gets written to address the shortcomings of the CRM solution. Whereas Visual Studio and TFS get to stay as they are and development teams are trained to "work with the system." When was the last time you’ve heard of a company (other than a software vendor) having a project dedicated to creating tools that improve the software development lifecycle?
Why spend so much money creating software that captures all of your business processes except the one that makes the rest possible? And if you don’t think that improving your software development process isn’t as important as your "core business", you’ll quickly be left behind when that sprocket factory down the road figures it out.