Monday, May 14, 2012

What I Hate about SSIS

So my friends hear me complain about this all the time, that SSIS is a poor development tool. While it might be great from a more admin's perspective where they don't want to see the code, from a developers perspective it is hell. There is no good way to ensure that I have only made the necessary changes to a package when I check it in to source control.

I recently did a small update to handle nulls in a package I look after. I opened the package, explored around to find the necessary part to correct, and added IsNull around two fields. That's it. So I want to compare it with the prior version to make sure I didn't accidentally bump a setting or other such nonsense that you get to deal with in a designer only development environment, this is what I get:



I appreciate the version change on the package in the first couple lines (omitted from screenshots), and will even ignore that the SQL is in there twice (once for the variable it is stored in due to being complex, once for the task where it is used I think). If you haven't used code diff software much, pay attention to the bar on the left, it shows you where in the files the differences are. Note all of the red in the bottom half of the file. What is all that? Lets go take a look:





Ack! This kind of stuff is the entire second half of the file, it looks like the XML of the package has been HTML encoded and saved in the file, who knows. What did I change to deserve this mess? Is it something important? How do I know that I haven't broken some obscure setting buried in that part of the file?

Now, try code reviewing this with your peers. Not as simple as a typical source file, you pretty much have to go through the package and review what all the pieces do, as I don't know many developers who would OK this mess without being able to determine what it does (well, maybe I know a few, but that's a complaint for another day).

So, please, tell me what I'm doing wrong *with* SSIS. I've used the BIDS Helper Smart Diff, and while it is certainly an improvement, it's still not pretty. I don't ever see being able to merge SSIS packages, which is a real shame.

Jared

1 comment:

  1. Jared, I've been complaining about this for years! I can't believe SSIS packages are not merge-able! (insert sarcasm here)

    ReplyDelete