Stop assuming wrongly and start assuming responsibility (T-SQL Tuesday #56)

T-SQL TuesdayT-SQL Tuesday #56 is hosted by Dev Nambi (@DevNambi) and the topic is assumptions: Your assignment for this month is to write about a big assumption you encounter at work, one that people are uncomfortable talking about. Every team has an elephant in the room. What happens if these big guesses aren’t true?

Stop assuming wrongly
“If you make an assumption, you suppose that something is true, sometimes wrongly.”

We’ve all assumed wrongly at some point. While it’s not always a big deal, sometimes the result can be disastrous. I’ve accidentally deleted all the weekly data in our production data warehouse because I assumed wrongly. (Thank goodness my assumption that we had working backups was correct!)

Most of the time I’m not aware that I make assumptions until something goes wrong, like when I realized I had deleted all that data. That’s when I stop and ask myself why I didn’t ask more questions, why I didn’t do more research, why I didn’t triple-check the logic?

The answer to why I assume wrongly is usually time. In the world of business intelligence there are just not enough hours in a day. When a business user asks for new data or a new report, their answer to “when do you need it?” is usually “yesterday”. We all want to deliver as much as possible in the shortest amount of time, which often leads to everyone making some kind of assumption without actually being aware of it. Business users assume IT knows all the business rules (“that’s supposed to be a negative amount”), IT assumes the business users have specified all requirements in detail (“that’s not in the requirements”), and we don’t take the time to sit down and go through it together.

Which leads me to my next point:

Start assuming responsibility
“If someone assumes responsibility, they begin to have responsibility.”

We need to take our time to collaborate, to ask those questions, to do that research and to triple-check that logic. Don’t assume that everyone else knows what you know, but share your knowledge. Don’t just assume that things work, but see how you can improve them. Work together.

I’ll start with me and make this a goal for me at work :)

SQLHangout #22 – Blabbering about Biml

SQLHangoutWhen Boris (@BorisHristov) invited me to a #SQLHangout I was really honored and couldn’t say no. It’s such a fun idea and I’ve really enjoyed watching the other #SQLHangouts. It’s great to see people’s personalities shine through in videos instead of only reading their blog posts, and I learn something new.

I suggested to chat about Biml, something I’ve only recently begun learning myself that has already saved me many hours of work. I still have so much to learn, but the fact that it took me about 20 hours to learn something new that has saved me and my coworkers hundreds of hours already… That’s worth sharing. If I can do it, you can do it!

Boris named the video “Biml. An introduction.” I thought a more appropriate name was “Blabbering about Biml” :)


(“Oh hi!”)

I forgot to mention their names, but thank you to Julie Smith (@JulieChix) and André Kamman (@AndreKamman) for inspiring me to learn more Biml in their SQLSaturday sessions in Tampa and Copenhagen! :)

Package Configurations and Connection Managers in Biml

Biml (Business Intelligence Markup Language)At work we wanted to start using Biml to speed up development in our existing projects without making too many changes at once. I decided to start by writing Biml files that generates SSIS packages exactly like the ones we already have so we can implement changes faster, and step one was to figure out how to create Package Configurations and Connection Managers in Biml:

– Create an XML configuration file Package Configuration
– Create the Connection Manager specified in the XML configuration file
– Create SQL Server Package Configurations that use the Connection Manager specified in the XML configuration file
– Create Connection Managers specified in the [SSIS Configurations] table in SQL Server
– Create a Parent package variable

I recommend reading Understanding Integration Services Package Configurations by Rafael Salas (b | t) and Getting Started with BimlScript by Paul S. Waters (t) if you’re not already familiar with the basics of SSIS Package Configurations and Biml.

Continue reading →

SQL Server, SSIS and Biml Data Types

SQL Server, SSIS and Biml Data TypesThe table below shows a simplified mapping between SQL Server, SSIS and Biml data types. The table does not include all possible mappings or all data types, but is meant as a quick reference while developing and learning Biml. It was mainly created as a cheat sheet for myself, but I hope other Biml developers will find it useful :)

There are some problems mapping certain data types automatically between SQL Server, SSIS and Biml. Different providers and Biml methods will produce different data mapping results. I have written about the problems and differences I have encountered below.

All columns are sortable:

SQL ServerSSISBiml
bigintDT_I8Int64
binaryDT_BYTESBinary
bitDT_BOOLBoolean
charDT_STRAnsiStringFixedLength
dateDT_DBDATEDate
datetimeDT_DBTIMESTAMPDateTime
datetime2DT_DBTIMESTAMP2DateTime2
datetimeoffsetDT_DBTIMESTAMPOFFSETDateTimeOffset
decimalDT_NUMERICDecimal
floatDT_R8Double
geographyDT_IMAGEObject
geometryDT_IMAGEObject
hierarchyidDT_BYTESObject
image (*)DT_IMAGEBinary
intDT_I4Int32
moneyDT_CYCurrency
ncharDT_WSTRStringFixedLength
ntext (*)DT_NTEXTString
numericDT_NUMERICDecimal
nvarcharDT_WSTRString
nvarchar(max)DT_NTEXTString
realDT_R4Single
rowversionDT_BYTESBinary
smalldatetimeDT_DBTIMESTAMPDateTime
smallintDT_I2Int16
smallmoneyDT_CYCurrency
sql_variantDT_WSTRObject
text (*)DT_TEXTAnsiString
timeDT_DBTIME2Time
timestamp (*)DT_BYTESBinary
tinyintDT_UI1Byte
uniqueidentifierDT_GUIDGuid
varbinaryDT_BYTESBinary
varbinary(max)DT_IMAGEBinary
varcharDT_STRAnsiString
varchar(max)DT_TEXTAnsiString
xmlDT_NTEXTXml

(* These data types will be removed in a future version of SQL Server. Avoid using these data types in new projects, and try to change them in current projects.)

Continue reading →

Interviews as Learning Experiences (T-SQL Tuesday #54)

T-SQL TuesdayT-SQL Tuesday #54 is hosted by Boris Hristov (@BorisHristov) and is all about interviews and hiring.

I have a confession to make: Once in a while I say yes to interviews, not because I’m actually looking for new opportunities, but because they’re both fun and challenging.

For me, it’s a great way to learn and grow. I haven’t walked out of a single interview without having learned something new about myself, a technology or the industry I work in.

Going to interviews forces me out of my comfort zone and makes me feel stressed, nervous and a little scared. Sometimes I get questions that I don’t immediately know the answer to and I get flustered. Sometimes I knock over water glasses or burn my hands on hot coffee and make a complete fool of myself. But every time I go to interviews I get a little better at small talk, calming my nerves, thinking on my feet, handling unexpected situations, structuring my thoughts and formulating answers.

It’s a great opportunity to reflect upon my own situation and where I want to be in a year or two. It gives me a peek into what skills are needed and wanted right now, and if it’s a technical interview I quickly find out which skills I need to improve.

My best interview happened early in my career, it was just supposed to be a first introduction interview for a junior developer position. Halfway through the interview I mentioned that I like to challenge myself to learn from the experience, and the interviewer promptly decided to follow up on that statement: “What would you do if we gave you a challenge right now?” (I couldn’t really say no, could I?)

The challenge was to skip right into the second, technical interview without preparing. I had to look at a screen capture of a website and explain the HTML and CSS I would use to replicate it, I had to draw data models and SQL queries on a whiteboard, and I had to guess my way through some JavaScript – and it was fun. I left the interview feeling proud, not because I did well (I forgot important things and made mistakes), but because I was thrown into a new situation and handled it better than I had feared.

The opposite experience was when I was still a student and had a series of speed interviews in one day. They lasted ten minutes and you had three minutes to introduce yourself, three minutes to listen to the company introduction, and the rest of the time to ask questions. The first speed interviews went really well. I grew more confident and didn’t feel like a complete nervous wreck anymore, but as I approached the next table and saw three very serious men in suits stare at me I could feel my palms getting sweaty again. Thankfully they never noticed that, because none of them even wanted to shake my hand. They told me to sit down, grabbed their pens and stared at me in silence. I took that as my cue to introduce myself and spent the next three minutes telling them about my background and why I had applied. When my three minutes were up they looked at each other, looked at me, looked at each other and finally said: “You know that there are mostly men working in this industry, right? How are you going to handle that?”

My jaw dropped to the floor. Inexperienced and flustered, I answered as best as I could that I was used to working and studying with guys and that it had never even been an issue before. They looked at each other again, sighed, looked at me and said: “Well, we don’t have any more questions, so you can just go.” What? I looked at my watch and saw that we still had more than five minutes left, but it was so uncomfortable to sit there that it was better to leave early. So I got up, utterly embarrassed, and zigzagged my way out of the room trying to ignore the stares from everyone still in the middle of their speed interviews.

It is by far the worst “interview” I have ever been to. I felt small and ashamed, but it was also when I promised myself that I would look at each interview as a learning experience. It also made me bring my “I’ll show them!” attitude to the next interview – and that next interview got me my first job :)

Page 20 of 22 « First...10 ...18 19 20 21 22