Archive for the ‘Career’ Category

Career Decision Time

Posted: June 28, 2016 in Career

They say that you cannot have the best of both worlds.  They say that you cannot have your cake and eat it too.  They say that the grass isn’t really greener on the other side.

For all of you who say things like that, you are wrong.

A number of years ago I was faced with a career path decision.  Do I remain a full time employee as a DBA for a company or do I focus on becoming a consultant.  There are benefits to both being a SQL Server Consultant and being a full time employee (FTE) with an organization.  As an FTE most of the time when you go into work each morning you have a good idea of what you are going to be working on.  You know the servers and the little quirks that need to be managed to keep your systems running at full speed.  There is a lot to be said for building a long term relationship with a company that you can work with for years to come, maybe even retire from.

The downside as an FTE is that new projects don’t always come around every day, and companies are not always adopting all the new technology with SQL Server, so as a FTE DBA, your experience with SQL Server becomes hampered by how the organization you work for uses SQL Server.  In like fashion as a FTE if the database technology isn’t progressing and is stable the need for a DBA to work on the same systems for an extended period of time may just not be there.

I have found that I can have my cake and eat it too.  I have found that yeah, its greener and in short, I’ve arrived.

I have accepted a position at Fortified Data.  This position is going to allow me to build a relationship with an established professional services organization that specializes in complex SQL Server environments while offering them managed services at the same time.

Does this sound familiar?

8:00 PM and you are watching your favorite TV show Survivor when out of nowhere you are interrupted with an on call page. You log on to check the servers, and for some unknown reason “it” has hit the fan and the server is spiraling out of control (By the way, if you don’t know what sound is makes when “it” hits the fan just say MARINEEE out loud). You grab your DBA hat, some Mountain Dew and you settle in to take care of the problem and walk away the hero. But, it’s not going just as plan… It’s now 3:30 AM and for one reason or another you are still working. It appears that all the planets have aligned and you are facing one issue after another. Just as you think you have a handle on the cursed issue that is keeping you awake at this time of night some new issue shows up and you realize that you will be enjoying your next breakfast at your desk.

If you have been a production DBA for some time I assume that you have a few stories that you could tell me, I know I have more than a few that I often share when I am speaking at events. I think these are the moments that define production support staff. It is difficult to fight off the frustration, the lack of sleep and the stress of having a production environment down. Seasoned administrators become the way they are based on these experiences and use them, to better their skill sets. As the “Crisis” is occurring different decisions are being made…

  • Do you apply a hotfix?
  • Do you reboot the system?
  • Is it time to look at restoring the whole thing?
  • How much do you worry about collecting evidence to find the root cause compared to spending that time correcting the problem?
  • And many, many more.

However, I believe there is one question that is more important than any other, and you need to ask yourself this question over and over again. Are you in the state of mind to make good decisions?

The self-pride that most of us have would default the answer to the question as yes. We don’t want to think there is a point that we can act and react logically. However, we have to remember we are human, and no matter the experience we can fall victim to the stress. When we do, we may be less likely to apply best practices such as documenting each step we take or double checking each action before we move to the next task. The end result is when a crisis occurs the stress is the natural fall-out. As the problem increases and progresses you may find yourself needing a backup, or trying to find a backup and what if that backup us bad… the stress kicks up a notch. Life gets real, when you start to operate without a safety net.

Example: A few years ago I was in one of those book studies a company required. The coach was going on about how people don’t make me mad, only I make me mad and we can control when we are mad. I tried to explain my point to the coach, that human nature comes in and sometimes there are just situations where some issues are just going to raise emotions that are going to make people mad. I provided the example of my father. I lost my father 21 years ago just a few days after my 21st birthday, and well this is a very sensitive subject for me to this day. At one point many years ago, someone insulted my father. Was I mad? Oh you bet I was, and I don’t care what anyone says, the person who insulted my father made me mad. I can control my reaction to my emotion but not the actual emotion itself.

Granted the example is not a technical one but with all the emotion that is going on during that discussion was that the right time for me to make critical decisions? When stress reaches a new level you have to stop and ask yourself if you are in the state of mind to make the critical decisions that need to be made in the time of a crisis.

If you answer yes to the question and you can do so without any doubt, then proceed with applying good practices for troubleshooting and correction issues that are in production.

If you answered no or even a not sure, then it is time to re-evaluate the situation. The easy answer is that it is time to step away from the situation and get someone to take over for you, but what if you can’t? What if you are the only resource and if stepping away means that you are just going to prolong the problem then what do you do?

  • First you need to start triple checking every move you make. You may think that code you are executing is in the right database, but check again. I have dropped a database in production on accident, and I can tell you that the second I hit execute, was the same moment I realized I was connected to the wrong server. I will go one step more and say I will start disconnecting all my sessions, and will not re-connect until I am ready to execute.
  • After you have checked for the third time, now write it down. For years people have been preaching document what you do, yet I very rarely find this to be the actual case. But if you are of the mindset where you should really be in bed… Well document everything before you do it. Why, well the mere action of writing it down may trigger that thought in your head that says wait, is this the correct thing to do.
  • Nothing helps me more then when I explain what I am doing to someone else. It doesn’t even have to be a DBA, or someone who has any understanding of what I am doing. The process of explaining verbally helps me double check that I am thinking about all the downs stream impacts.

I am curious, is there something that you do? How to you protect yourself and just as important how do you protect what you are working on from mistakes?

 

Team Work

Posted: May 9, 2014 in Career

When people talk to me about my time in the Marine Corps I am often asked about boot camp, they want to know if it is as rough has Hollywood makes it out to be. Do the drill instructors yell at you and do they continually insult you and try to break you down. Well the truth is… yes they do, but if you think about why I am sure you will understand and it comes back to team work. Consider this, in the movie A Few Good Men,

I eat breakfast 300 yards from 4000 Cubans who are trained to kill me“. –Col. Jessep

If you think about the full concept of this statement; you might ask; why doesn’t Col. Jessep fear the 4000 Cubans that are trained to kill him, why does he casually get up each morning and enjoy his breakfast.

Later the Col. refers to how people can rest easy sleeping at night. The mission of a drill instructor is to train young men and women to become Marines, and being a Marine means you are part of a team, a team that works together so well that when a Marine looks to his left and sees another Marine, that he or she knows they can sleep sound, their team mate will take care of them just as they would themselves. Granted working in the civilian world this may sound a little drastic, at least I hope it does. I hope you don’t low crawl to your desk to avoid the Customer Service department so the snipers don’t have a clear shot. However, I do think there are things that can be learned from how Marines are a team.

I could tell many stories about Marines not getting along with each other. Sometimes to the point of fist fighting, however when there is a mutual goal in sight, the accomplishment of that goal overrides any ill feelings towards fellow Marines. Having a Clear Goal and defined tasks to complete the goal help manage the relations that impact the team. When a team member is falling short, then his or her fellow Marines are responsible to bring them back up to where they need to be. It doesn’t matter if one team member is failing; the goal is still the most important thing. When we look at how we approach IT work, when we focus on what needs to be done, hopefully the team performs as a team and meets those expectations.

What happens when a lagging Marine cannot keep up in the hike, or can’t shoot as well as they should? How do they approach a team member who falls short? Marines are part of a family, a brotherhood and if a family member is in need of assistance then the family is responsible to help them. Maybe a brother needs help to move, or a grandparent has health issues, hopefully the surrounding family is there to help accomplish the goal. How do you handle this in the business world? The same way, team members will need help from time to time, it may be the need to cover an on-call shift, and it might be learning a new skill. As a member of the team it is your responsibility to help, remove obstacles that get in the way of completing a goal.

Most work as a Marine is accomplished in Squads. Each individual in the squad may have different areas where they consider the responsible party; there might be a Medic, a Communication expert, someone who is a mechanic for example. In business I can see how teams are created with the same methodology; a database team might have a replication expert, a tuning expert or someone who works well with Active Directory. Teams that work well together have shared goals/responsibilities as well as the individual ones. If we look at the example of a Marine squad the whole squad may have the mission to patrol an area, and each team member contributes with their skills and individual responsibilities. As a DBA Team we are no different, our goal is to support the company database, if the database slows down it is the responsibility of the team to get the performance issue corrected.

Have you taken a look at the team you work with? Do you know where the individual skills that each team member has contributes to the overall goal of the team? It may just be a good time to reflect on how your team works together and how you can help others on the team. Some tasks that individuals consider a waste of time, such as documentation are critical if someone else on the team needs to jump in and help accomplish the goal. If one aspect of the goal is forgotten or neglected, then the overall goal is at risk. Imagine if the Medic in the Marine Squad is unable to help with a medical issue because he is not in physical shape enough to keep up with the team, not only did the Squad lose the medic and is down a person, but if another team member gets hurt and requires medical attention, the squad is now short 2 members. The goal is now at risk.

Actions of team members and team leaders need to be focused on either helping individuals to do their part in reaching the overall goals or the overall goal itself, if team member cannot contribute to reaching the overall goal then quickly they become a liability.

How is your team work?


 

How is a Salary is Determined?

Posted: February 18, 2014 in Career

Years ago I found myself in a very sticky situation. The worst part; I understood why, but I still didn’t think it was right.

I was managing a small DBA group that had a total of 6 headcount. I was fortunate that I didn’t have a lot of turnover and honestly I was surprised because the company provided a less then optimal working environment. I had a position come open and I started the process of hiring a new DBA. After a number of interviews it was obvious there were a large number of candidates looking for work at that time. The person that I ended up extending an offer to, and employed was someone who in my mind is an ideal candidate, we will call him Bob. He didn’t disappoint at all.

A year later I was in the same situation, however when I started the interview process this time I determined there were very few candidates that I could draw from. I ended up finding someone who at the time I thought would be a good fit for the team we will call him John. I made the offer and John accepted. In the long run I don’t think the position was a good match for John but that is a different story for a different time. Now this is where things get a little crazy. Bob was hired at one rate let’s say $20.00 an hour, and John was hired at $25.00 an hour. Both of them were going for the same job description and received the same benefits yet the Salary was quite different.

The company I was working for didn’t let me determine the salary of an employee. The way it was determined was that I given a range of what I could afford in my department budget and I was often instructed to try to stay in the middle of that range. When I hired Bob the range was $15.00 to $22.00, yet when I hired John the range was $25.00 to $30.00 an hour. Here is where the questions started, and today many years later I have had the opportunity to discuss this in an interview format with different HR directors, the information posted here comes from 3 different interviews. None of the individuals wanted to be identified however I can tell you that:

  • One is from the government agency with near 200 employees
  • One is from a non-profit with near 500 employees
  • One is from a for profit company with well over 5000 employees

What surprised me the most is that no matter how different the hiring organizations are the answers are really not different in how they determine what salaries are offered to potential employees. I wanted to focus on three questions in particular; I have listed them here with a summary on how they were answered:

  1. How do companies determine a salary range when they are trying to fill open head count?

    The general answer here is a company makes a determination if they are going to pay at market rates often a decision is made to pay slightly higher or slightly lower than market. Once that decision is made they research the market and then determine the spread, the average is determined and then adjustments are made. When researching for the market variables such as cost of living allowances are taken into consideration (It costs more to live in Southern California then it does in Colorado). For example in Feb of 2014 a salary range for Colorado Springs, Colorado is shown below.


    The Median or average is $95k a year (National average was $107k) for a Data Architect 3 or a senior level data architect as explained in the description. Companies then make adjustments based on if they want to pay slightly above or below this average, as you can see 50% of the salaries fall between $83k and $107k. This chart was supplied by Salary.com. Other sources used to determine Salaries include:

  • Indeed.com
  • PayScale
  • Career Journal.com
  • JobStart.com

End result, I was not too surprised at what the decision makers were telling me. Granted I did find the 50% range from $83k to $107k a lot wider than I had anticipated.

  1. How does a non-profit organization such as a government organization or a religious organization determine a salary range?

    Now here is where I was surprised. To be honest I am not sure that my research had enough input points to be considered a set of valuable statistics. The answers I received pointed to using the same methodology as for-profit organizations. My experience when looking at these non-profits does not reflect that. My own opinion derived from discussions with people who are employed at non-profits or interviews with non-profits is they generally pay about 70% to 80% of average. Reflecting back to one specific discussion on salary while I was being interviewed for a position, a local religious non-profit explained the away the delta by discussing the benefits in the nature of the work itself (much could be debated on this).

  2. How much does a job title impact the salary range?

    One note about the question with titles, and this one may just be me and my experience. I have always argued that a title should reflect your job description accurately. At one point in my career I was told titles mean nothing, and my title would not be adjusted. I have found this is often a problem for a number of reasons. Many companies have a max salary for a job title, for example if you had a title of a Jr. DBA your ceiling or salary cap would be lower if you were a mid-level DBA. From a general view that makes a bit of since, if you were a Jr DBA before you can move to the next salary bracket you should display the skills of a more seasoned professional. This argument doesn’t hold much water in many situations. When I asked the questions to the panel the answer I received was very clear and uniformed. Title does matter, not only does that title matter but the tasks associated with it matter.

Remember Bob and John? In my situation Bob the employee that was making less money than the new hire found out that John was making more money than he was. I have to admit that was one of the hardest days at that role in the company. I had to have a discussion with Bob and explain the market had changed and that the amount of money other people were making was no reflection on him. As much as I understand why the fact remained that if I was Bob, and found out that someone who was just hired was making more than what I was all depending on the market when I was hired I would be a little sore as well.

I tried to do the right thing and bring Bob up to the level that John was making, even a little more. The end result was the damage was done.

 

 

 

Experience Comes from Mistakes

Posted: January 27, 2014 in Career

In my opinion the big difference between a Database Administrator (DBA) and a Senior Database Administrator (Sr. DBA), comes down to experience, sounds simple enough right? If we explore that a little deeper, wouldn’t it be easy enough to base the differences on knowledge? A Sr. DBA would have a wider knowledge base to draw from as they face every day challenges, otherwise said as someone who has an extensive amount of time spent studying and learning quite a bit about SQL Server combined with opportunities to work with the product. Knowledge comes from many sources, in my experience I gain the most knowledge from making mistakes. As an example, I learned quite a bit about relationships when I purchased race day tickets for my wife’s birthday I had even purchased tickets to sit and eat lunch with my favorite driver. This was lesson was reinforced when the year after I bought her the vacuum cleaner she had mentioned she wanted.

All men make mistakes, but only wise men learn from their mistakes. – Winston Churchill

When I reflect to my first full time IT position, I often think about the lesson I learned about troubleshooting issues. I had just completed a week long class on how to install the Windows OS (NT 4.0) and how to create a new domain where I could then add the entire collection of PC’s. The class was great and I was confidant in my skills, because I had eventually completed all the lab work in the class. My confidence quickly faded over the next week (including the weekend) with each reinstall of the Domain Controller simply because each attempt resulted with errors stating the workstations could not find the domain. The biggest blow to my self-confidence came when I realized all my issues were resolved when I determined I should start with the basics and power on the network switch.

At first I consider the mistake a lesson in how that network switch worked, but today I realize the true lesson learned was all about troubleshooting and more importantly the importance of learning from the mistakes I have made. Everyone has different learning experiences, I often wonder about the mistakes other database professionals have made and what they have learned from them. There are many people I respect in the SQL Server Community, and I can see a true value in learning from them. If they have the time available, I would love to hear about the lessons they have learned:

Paul Randal

Andy Leonard

John Morehouse

If you have had an experience that you are willing to share I would love to read about it, and share it with others. Please post on it and let me know so I can share it with my network.

 

 

Extra info for the next Colorado Springs SQL Server Users Group.

We are thrilled to announce Andy Leonard, will be presenting at the January 22 meeting!

 

Main Session:
“Using BIML as a Design Patterns Engine” by Andy Leonard

Business Intelligence Markup Language provides a powerful solution for creating and managing SSIS Design Patterns. Andy Leonard, one of the authors of SSIS Design Patterns, demonstrates the flexibility of BIML in this session.
 

Meeting Location:

Hyatt Place – Garden of the Gods

503 West Garden of the Gods Road

Colorado Springs, CO 80909

 
 

Andy was asked to tell us a little more about his session here is the information he passed along. We were excited to hear Andy was coming; now we are even more excited.

   Generally speaking, it takes 1-2 hours to code an SSIS package that
moves data from a source to a destination. If you use a simple pattern for
the integration, it can take less time. But the work is mostly manual and
repetitive. It really stinks when you want to create one SSIS package per
table and you have several (or several hundred) tables.
   Business Intelligence Markup Language (Biml) helps in these scenarios,
as my presentation demonstrates. We’ll start with some simple Biml used to
create empty and basic packages, but then we will leverage BimlScript –
.Net inside the Biml file – to build a single Biml file that can create
hundreds of SSIS packages.
   Because the packages are dynamically created from the same pattern, they
are functionally equivalent. This translates to higher quality. And because
of the automation provided by Biml, SSIS package creation time drops
drastically. My best use-case is an incremental load project I worked on to
transfer data from approximately 900 tables into a SQL Server database.
Incremental load patterns are somewhat involved, and usually take a couple
hours per package. I like to build one package per table for separation of
concerns, testing, and support reasons. Building this by hand would have
taken 2 hours per package, or just under one person-year. Using Biml, I was
able to generate these packages in a morning.

   I will be covering this in the presentation.

Hope this helps.
Andy

About Andy Leonard
Andy Leonard is CSO of Linchpin People, an SSIS Trainer and Consultant, SQL Server database and Integration Services developer, SQL Server data warehouse developer, community mentor, blogger, and engineer. He is a co-author of SSIS Design Patterns. His background includes VB and web application architecture and development; and SQL Server 2000-2012.

 

 

I am sure you have heard the old bit about…. This is the story I think about every time I hear about a shop that doesn’t have an on-call rotation or some sort of coverage for afterhours work.

There was an important job to be done and Everyone was sure that Someone would do it. Anyone could have done it, but No-one did it. Someone got angry about that because he thought that it was Everyone’s job. Everyone thought that Anyone could do it, but No-one realized that Everyone wouldn’t do it. It ended up that Everyone was angry with Someone because No-one did what Anyone could have done!

I have seen shops do everything they can to avoid official on-call routines. I am not sure why, I can only assume it means the organization officially recognizes after hours work is required. Is it because when a company posts a position and being on-call is listed in the requirements, the job posting does not look as attractive? Or is the requirement itself lead to increased salary requirements. I am sure to be honest there are a number of potential other reasons why organizations don’t have an official on-call. Rather than identify all the potential reasons why an organization avoids an on-call call rotation, we might achomplish more if we identifying the benefits of having an on-call rotation.

  • On-Call rotations allow for problem ownership. Even if the on-call doesn’t fix the problem, then can notify the people needed to correct the problem.
  • Ensures that someone is available during times when no-one is around. For example, many people have plans around Holidays. Without an on-call schedule where there is a defined responsibility for that time frame everyone may be away and assuming someone else will take care of it.
  • Share the workload. Even if you are on a team now where everyone contributes equally I am sure you have been in a situation where you see a small number of people doing the majority of the work. If you haven’t seen that, consider yourself lucky.
  • On-call schedules will get things back to normal faster.

One of my past employers didn’t have an on call schedule, so when there were times I was traveling or spending critical time with the family I could be called at any time, and I was. Rather than look at an on-call schedule as time you may be required to do even more hours, look at an on-call schedule as an opportunity to ensure your off time is being spent focused on something you want. Or in other words, don’t consider a one week a month on-call a week of extra work. Consider it as 3 weeks a month of extra you time.