Coming from a "Old fashioned" development environment (that is: C/C++, CSV, Unix and the likes) I have always wondered why BI-projects don’t seem to get the idea of a structured software development.
There are some technological cornerstones of a good, well structured software development process:
- Source control systems – Never loose code again, unlimited undo. Tag your releases
- Automated, daily builds – Make sure you project is ready to deploy and release. Never again spend hours on manually building your project
- Bug tracking and issue logs – Speaks for itself. A necessary tool for proper project management
- Multiple environments – At the very least: Development, Test and Production.
- Change management – Well documented and scripted procedures for moving your code into production
I don’t know about you – but I have yet to see a Business Intelligence projects use all of the above. Some, actually a lot, of the examples I have worked on did not even use ANY of the above. My theory is that BI-development community is in a sense "immature" to the ways of structured software development.
With Team Foundation Services and the new Visual Studio integration of the Microsoft BI-suite this is about to change. On my current development project I have decided to try a fully structured approach to BI-development with my team.
Team Foundation gives us the following for free (or rather – for a very cheap license):
- Source control – Microsoft finally got it right. Source Safes successor is brilliant and has the multiple checkout features and proper merge functionality I missed from CVS (another, very good, source control system). Ohh, and did I mention that the source control database does not seem to spontaneously break anymore?
- Bug tracking and issue logs – Working as intended – and working well. Integrates seamlessly with both Visual Studio and the source control. This means that my developer team can actually be bothered to use it.
We have set up multiple environments and I have borrowed a few change management procedures from my past.
Now, Team Foundations promises to automate our daily build too. It turns out that this is not really working with BI-projects. Team foundation uses a tool called msbuild – which it will execute automatically on solution files. However, msbuild doesn’t have any plug-ins for BI-projects 🙁
Guess it was a bit too much to ask for anyway – back to basics: scripted builds. We are experimenting with daily build using command line script. Once we have the "building blocks" to build a BI-solution we plan to integrate it with the Team Foundation Build.