I am Lorena and I am here

Today is International Women’s Day and I wanted to write this post in honor of this day.

Last Saturday, I attended Google’s WomenTechmakers’ International Day of Women Summit. It was a refreshing, exhilaritating, and inspiring day. It was full of panels, lightning talks, fire side chats, and powerhouse women who have paved the way for many and are doing amazing accomplishments in their fields.

It was hard for me to sit there through the morning sessions and not criticize myself for not doing enough, for not making more of a change, for not doing more. But, then we got to the workshops. I chose to attend the “Communicate with Confidence: An Interactive Workshop”. Now, I took a communications course in college and was part of debate in high school, but this class was unlike any other. I’m not going to tell you everything that was done, because you need to experience that yourself. But, I want to share one activity that we did. It was called “I am here”. You had to say “I am <your name> and I am here” with a calm tone. Now, you may think that is silly or question how it helps. But, let me tell you this: those words changed my attitude and restored my confidence.

We were divided into groups of 4 and we took turns saying the phrase. When it came to my turn, I took a deep breath and said “I am Lorena and I am here”. There was power behind those words and confidence I had never felt. I have been doubting myself for the past couple months. Doubting my skills, my ability to lead, and my purpose. But, that Saturday at that moment, it was like a switch turned on. That workshop and the talks after, generated in me the will to say that I am capable, that I can and I will.

I am Lorena and I am here.

To all of you reading, man or woman, you will have doubts and you will struggle. Take a deep breath and repeat to yourself “I am <your name> and I am here”. Your voice is needed, your opinions matter and your skill set matters.

2017, you were good

Seeing everyone’s year end review inspired me to write this post. 2017 didn’t start out so great. It was extremely hectic at work with tight deadlines, projects, and demands from every direction. That kind of daily chaos usually drains me out by the end of the day.
I didn’t have any resolutions made for 2017 but looking back I’ve made so much progress in technical skills and small work wins that I truly believe 2017 was a good year.

So what did I accomplish, learn, and need to improve on?

I got assigned to a major project at work as the project leader. As a result, I set out to improve my Python skills. I needed to immerse myself in the language and understand it at a more advanced level. I entered a Twitter contest and won a multi-week training
session with RMOTR (check them out – the classes were great and the work is applicable).
I realized how much I didn’t know about the language and honestly humbled by how much I needed to learn. I finished that training with a better understanding of Python and I was able to immediately apply it at work while taking the classes. I think that the classes helped me complete the project faster and also share what I learned with my peers.
Later in the year, I was able to attend my 2nd Tableau conference. This time, I didn’t come alone. Four others from my company came as well. It was amazing to see how much they were liking the product and  just how amazing the Tableau community is. We had numerous conversations and came back with new perspectives and goals we wanted to achieve for the firm. That fire from TC is still going strong at work and has fueled our BI Workgroup 2018 goals.
About a month after TC17, I started this blog. One night I told my husband that I wanted to share what I’ve learned in my career. I told him how at TC17, I sat at a Data+Women lunch table and heard all these stories of struggles with data and culture. I felt like their IT teams had failed them. They had failed to come together and build partnerships with business and building what is best for the company. My husband said that I should start a blog and share my experience. I had so much fear in creating this blog. Fear that I would get critiqued, fear of failure, and fear of not being heard. But, here I am – facing my fears because I know that I don’t want to feel like I had an opportunity to share what I’ve learned. So many people in the Tableau and Python community have given me so much and I want to do the same for others.
I don’t know what 2018 may have in store for me. But, I do know one thing – I will face my fears and accept things that scare me, that make me feel uncomfortable, and that will challenge me. I hope you join me as well in this goal for 2018.

Happy New Year 2018!

Dear Senior Developers

Dear Senior Developers,

And all senior analysts, engineers, team leads and managers. If you have been working for over 5 years or 35 years, or anywhere in between, this is for you.

I read a tweet yesterday that made me pause. It’s this tweet below.

twitter screenshot

It made me pause because I have been there. I’m sure you have been there. I remember being a junior developer at JP Morgan and feeling overwhelmed with all the corporate bureaucracy where titles meant more than having a productive meeting. Where you felt like a number instead of a contributing member of a team. But, as my response to Sonia states, one advice I got from my manager as I was leaving the company ( due to team relocation and I wasn’t moving) has stood with me until this day.

“Speak up, you are smart, share your input”

He had only been my manager for a short period of time and he was able to provide such a life changing advice. When I moved on to my next job, I used that advice. I started participating in meetings more vocally and really felt part of the team. I was also surrounded by people who really valued my input even though I was a junior developer.
Why am I telling you this? Because we, as Senior Developers, should be reaching out to others that are starting in their careers. “Why?” you may ask. Why care for the progress of others? Well, why shouldn’t we? Don’t you want to go to work each day and enjoy it? I do. So, how do we get there? How do we make better teams? For one, by building each other up. By treating everyone with respect. By being open to different ideas even if they didn’t come from the highest ranked, Software developer III  or team lead. Now this may sound too idealistic to many – but shouldn’t we strive to make our teams better? After all, we want to work with people that push us forward, that make us better engineers, that in turn makes the company we work for a better place to be. This doesn’t apply just to engineers, this is for anyone in any industry with experience.

So tomorrow, when you go back to work, reach out to someone. Pay more attention to how others are in meetings. Maybe they want to talk but are too timid – don’t call them out in the meeting. Approach them after. Let the ego go – it helps no one and you just look like a jerk.

Reach out and be a leader – that’s why you are a Senior developer.

Sincerely,

Lorena Vazquez

P.S. I’m always here to be a lending hand – DM or send me a tweet @MeraryVazquez

Let’s Get Organized

Have you ever had this issue?

“I know you told me that Tableau has this <insert popular workbook or data source>. But, I cannot find it. I want to use Tableau but it’s just a mess. There’s too many workbooks and I don’t know where to start.”

I had this exact issue over a year ago when our Tableau adoption was growing at a rapid rate. To put things into perspective, we started with a user based Server and within 3 months we purchased the core license. Our Tableau site only had 2 projects : Beta and Default. It became content chaos due to the rate of content being created and having no plan in place.

That quote I wrote at the beginning, that was from an executive. Embarrassing to say the least! My hope is that this post will prevent you from being in a similar situation. Shout out to Brian Delehanty (Twitter: @briandelehanty)  who asked about content and scaling as Tableau adoption grows.

Full on disclaimer here: What I am going to mention here is what has worked for us to keep costs down and reduce the development cycle of content. If you need to have a process in place with Dev, UAT, Prod, and a DR environment and you have the resources (money, people, and hardware) then go with that. It is currently not something we are looking for, at least for now.

Sites

Let’s start with sites. If you have multiple functional areas within your company that will never share data or users, or that need to be completely separated due to regulatory concerns you may want to look into creating separate sites. Workbooks and datasources cannot be shared and if you need that separation, this is your best bet.

Projects

Now within each site, you can create projects. If you are in a growing Tableau environment, starting with one project is good enough. You will soon realize the need to scale very quickly as people are exposed to data. I have never run into someone that doesn’t get Tableau and then says “This is too much data. I don’t want it.”  Quite the opposite. They get data and want more of it and want to visualize it. So how do you get around “Content Chaos”? You get organized!

Projects
Sample Site Organization with Project descriptions

Sandbox Projects

What is a sandbox? Remember as a kid playing in the sandbox? Well now you get a Tableau themed sandbox where you can play. Sandbox projects are the development projects for your teams. We have Sandbox Projects for each business group. This allows the Desktop users and power users to still publish and share their dashboards before promoting them to “production” projects. By the way, there is no actual project type called Sandbox, we just named the Projects “Sandbox”. Access to Sandbox Projects are restricted using  Tableau Groups. Business groups cannot see or edit each other’s sandbox unless they’ve made that agreement. This allows for users to log in and see only the projects that they have access to: Production projects and their team’s sandbox.

Sandbox Projects are also used to save ad-hoc workbooks. Once a month we declutter the sandboxes and move unused workbooks or datasources to a quarantined folder. If no one complains we permanently delete it in the next cycle.

Production Projects

This is exactly what you think it is. These hold certified and curated workbooks and datasources. Prior to 10.4, there was no visual “certified” datasource icon that would tell a user that you can trust this data. Certified data sources answers the data source issue but not workbooks. Production Projects was our answer to the problem. I encourage you to add a description to all your projects including the sandbox projects to inform
the end user on the content in that project, the project owner or SMEs to contact with questions.

So how do we promote development workbooks and datasources to production projects? Well, we just use the move option from the workbook and datasource menu. The ability to modify Production Projects is only available to members of the BI Workgroup. If you let everyone have access to promote content then you get back into content chaos. This puts in restrictions without discouraging content creation.

Permissions

Tableau offers flexibility to permission projects, datasources, and workbooks. You can allow content owners to control who sees each view, data source, workbook, etc. In my opinion, that only works well in a small team or when it isolated to a handful of views. It is too much responsibility on the user specially at large scale. We lock the permissions to the project so that permissions for views and datasources are inherited from the project.

What’s Next?

Did someone say Sub-Projects at TC17? Well, yes, they are coming and my team is excited for it. Tableau 10.5 Beta already has them. Here’s a peak from Beta:

Sub-Projects

If you have any questions, reach out to me on Twitter @meraryvazquez. If you have any suggestions or other ways to organize, please share. After all this community is about learning.

Resources

What is a Site? – https://onlinehelp.tableau.com/current/server/en-us/sites.htm
Permissions Reference – https://onlinehelp.tableau.com/current/server/en-us/license_permissions.htm

The Whoa’s and Woes of Being a Tableau Server Admin

About two years ago we bought our first Tableau Server license. It was my first time working with Tableau and since I was the engineer that brought the product in, I became the Tableau Server Admin.

In this post I’m going to talk about the good and the bad of being a Tableau Server Admin. I am no Tableau Jedi or Sith, but these are my experiences with working with the product for 2 years in a 100+ user base and with 1 TB of data extracts.

Let’s start with the good:

Whoa! Tableau Server can do that?

That is usually my expression when I find something pretty cool that Server can do. Let’s start with why you use Server: collaboration and sharing. More specifically, we’ve used it for Data Server. If you haven’t published your data sources – you should! Why? It helps in data governance, ad-hoc queries, and you limit duplication of data. Everyone nowadays says space is cheap so why should it matter that we have copies of data? But if you have ‘copies’ of data, how do you know which one is right? Which is your source of truth? If there are changes that need to be made, where do you make it? Don’t guess and start using Data Server. Start with one data source and go from there. It will change how you use Tableau Server.

In being a good Tableau Server Admin, you need to keep track of the health of your server. Here’s another Whoa! moment: Tableau Server Admin Views . I have this up on one of my monitors all day. These dashboards give you insights in space usage, user activity, and response times. What better way to understand what is going on Server than with vizzes! What is even better is that Server can also notify you if there are system issues like low disk space or a down Tableau process. You can make those configurations on Tableau Server Configuration Utility.  There is also the ability to create your own custom dashboards. I used Tableau Zen Master Mark Jackson’s blog post as a reference point and made modifications to his dashboards.

Start checking out the links in the resources section below and incorporate them into your workflow to get more out of Tableau Server. Believe me, it will make your life easier and you will sleep better at night.

Well, maybe this next part won’t let you sleep at all.

Woes – Tableau Server, why you no worky?

Has this ever happened to you?

You are a Tableau evangelist/advocate/champion at work and tell everyone how great it is, but then one thing happens and everyone hates you (a little dramatic but we all know one person) because Tableau Server is “slow/has crashed/long running queries/blah blah blah”. You’re only response is, ‘I’ll look into it’ but deep down inside you know you can’t do anything about it (not all of the times).

For me, Tableau Server does the job and it does it very well until something out of the ordinary occurs. For example, killing an extract refresh. Doesn’t matter if it’s a full or incremental extract refresh, the process is painful IMO. You have to figure out which background process id is running your extract by going to the admin views, then log into the server and kill it – but wait, you have to remove that refresh schedule on the data source before killing the process on the server or it will come back after you kill it. Don’t forget to put the schedule back after the issue has been resolved. You don’t want to realize a few days later that your data source is now stale (THE HORROR!).  That is by far my biggest issue with Server. Just let me cancel the refresh without it coming back. Sometimes you don’t want it to restart because there is a database back-end issue that needs to be resolved first. Maybe the extract was delayed and is now running during a time it competes with other resources. Either way, I don’t want a zombie extract.

Outside of this refresh issue, a couple of things that are a bit of a headache are already being addressed in the upcoming releases that were mentioned at Tableau Conference 2017. The major one is maintaining server on the website versus logging into the server. The other one is having to restart server for almost any config change you wish to make. That becomes a pain if you are  restricted by operating hours or need to coordinate with another team. If you work at a company that only allows systems admins to access servers, you may have to rely on someone else to do the killing of processes, restarting server, and Server configuration. It takes longer to address an issue that could be resolved by just the Tableau Server Admin.

What’s next?

Definitely excited to see when these new Server Admin features will be released. But, until then I have additional work to do to improve our resiliency in our scheduling i.e. linking tabcmd to our internal scheduling system, taking snapshot backups of larger extracts, and enforcing best practices across our sites.

If you have any questions on any of these topics or if you want to share your experiences, write down in the comments or reach out to me on Twitter.

Resources:

Best Practices for Publishing Data Sources: https://onlinehelp.tableau.com/current/pro/desktop/en-us/publish_datasources_about.html

Tableau Server Admin Views https://onlinehelp.tableau.com/current/server/en-us/adminview.htm

Tableau Server Email Alerts: https://onlinehelp.tableau.com/current/server/en-us/email.htm

Tableau Zen Master Mark Jackson: http://ugamarkj.blogspot.com/2014/08/custom-tableau-server-admin-views.html