T-SQL Tuesday #112 – The Cookie Jar

This month, Shane O’Neill hosts T-SQL Tuesday. His topic is titled Dipping into the Cookie Jar and is inspired by David Goggins‘ book titled Can’t Hurt Me.

Coincidence: I am currently listening to the Can’t Hurt Me audio book.

I made several recent mini-road-trips to Richmond to visit my Dad (more later) – a 75-mile trip (one-way) – and I listened to most of the first four chapters while making those recent trips.

I’ve been following Goggins for a while on Instagram, where he posts about against motivation and about overcoming one’s perceived limitations. He is a practitioner of what I’ve described as “transmuting life’s poison,” the act of using bad things that have happened to you as fuel for achieving good (great, even) things in life. Transmuting the poison is a reference to Dune.

Goggins had a hard life. He was dealt a crappy hand. He did stuff to his own detriment. He pulls no punches about his situation or the source of his woes. What he did with those things, though – how he transmuted the poison – is nothing short of inspiring.

My Stuff

I’m not prepared to share everything now (and may never be), but here’s some stuff that I’ve endured that was self- and / or other-inflicted:

  • Been on welfare
  • Caused a crisis pregnancy
  • Been fired (multiple times)
  • Failed at business
  • Been financially broke (more than once)
  • Been divorced

The latest happened Saturday morning when my Dad passed away after a couple months of declining health. I am not so naive as to think this is as difficult as what others have faced; some for years, even. But it was not nothing and it has challenged me on many levels – some of which are absent from the list above.

He was in Richmond when he died.
He’s the reason I made so many trips to Richmond recently.

Cookies

Like Goggins, I used the darkness of those (and other) experiences to power through some tough experiences in life. What have I achieved by transmuting this poison?

  • Family – beyond what I thought possible or even dreamed; cool and intelligent children; an awesome, beautiful, cute, sexy, cute, smokin’-hot wife.
  • Friends – real friends who lay down their lives for you.
  • Serving our Community – I am honored and humbled to be a member of our Community. I’m a redneck with an Associate’s Degree. I don’t deserve the honor our community bestows.
  • Being published – a kid who made almost straight D-minus’s in high school English.
  • Weaponized ADHD – using the compulsive part of obsessive/compulsive to work multiple days with little or no sleep to get the job done, using the obsessive part to make the obstacles quit before I do. I owe my brother from another mother, Frank LaVigne (franksworld | @Tableteer | DataDriven), credit for the term weaponized.
  • Military service – like Goggins I served in the military, although I did not complete training anywhere near as difficult as he did and I never experienced combat. Basic Training is not nothing, though, and many lessons from boot camp remain with me still. One thing Goggins says with which I wholeheartedly agree: “It’s all a mind thing.” Once you get your mind right, you are unstoppable and unbreakable.

When the going gets tough I remember these things, but this is not all and they are not even the…

Most Important

God is good, all the time. He doesn’t allow things to happen to me that I cannot bear. I confess, however, there have been times – some recently – when I have glanced toward Heaven and asked, “Are You sure You have the right Andy?”

At this time, with the normal stresses of life intermingling with some not-as-frequent stresses of life, I am thankful for Jesus carrying me and surrounding me with sisters and brothers who express their love and caring, and who sacrifice their time and talents to demonstrate their love.

For you see, God is the true “transmuter of poison.”

In Isaiah 61:2b-3, God speaks through the prophet:

“To comfort all who mourn,
To console those who mourn in Zion,
To give them beauty for ashes,
The oil of joy for mourning,
The garment of praise for the spirit of heaviness;
That they may be called trees of righteousness,
The planting of the Lord, that He may be glorified.”

Beauty for ashes.
Joy for mourning.
Praise for heaviness.

Dad is a Christian (present tense intended). This life is part of Christianity.
Though we had our differences, I miss Dad.
But I will see him again.

Peace.

T-SQL Tuesday #111 Roundup

Thank You!

First, we owe a debt of gratitude to my friend Adam Machanic (blog | @adammachanic | Data Education) for starting T-SQL Tuesday in the first place. Thank you, Adam! Next, we owe a huge shout-out to Steve Jones (blog | @way0utwest | SQL Server Central) for carrying the torch by maintaining tsqltuesday.com. Finally, thank you to everyone who takes the time to author a post on their blog the second Tuesday of each month.

T-SQL Tuesday #111

The T-SQL Tuesday question this month: Why do you do what you do? I was honored to be asked by Steve Jones to serve as host. Thanks, Steve!

Although I should not be, I am surprised by the response. We are part of an awesome and enduring Community. There were 35 responses to this month’s T-SQL Tuesday! 

Some Stats

35 responses.
3 first-timers (welcome!).
3 female, 32 male.
The first reply was from Greg Dodd.
The last reply was from Chris LaGreca.

Every. Single. Post. deserves a read. Our community is filled with passionate writers. Enjoy!

To The Posts!

Hugo Kornelis built and maintains the Execution Plan Reference because it’s not there. (You are welcome for the ear worm, good sir…). Doug Purnell enjoys helping and sharing with others, and he is also looking to cook more and spend more time on photography.  Chris Voss is candid about being on the autism spectrum and volunteering with Autism Society of North Carolina. He enjoys working in healthcare because “it’s an industry where the concern is the betterment of other humans’ lives.” Steve Jones enjoys having the time to give back by speaking, writing, and teaching; helping others in both paying it forward and paying it back. Eugene Meidinger leaves me hanging regarding ex-girlfriends in the section titled “Brothers and ex-girlfriends,” and waxes philosophical with “why not becomes much more of a why.”

Three individuals indicated this was their first time participating in T-SQL Tuesday – welcome! They were Greg Dodd, a fellow former VB coder whose “why” is that he enjoys solving problems; Jason Howie, a friend of Allen White who shares Allens’ interests in music whose “why” is seeking an ensemble into which he can fit; and Michał Poręba, whom no one is paying to be a cave diver. Welcome to T-SQL Tuesday! We have cake (not really).

Lisa Bohn likes making a positive difference while working for someone she respects. Cathrine Wilhelmsen just so happened to become a Business Intelligence consultant. She loves using all her skills, helping people, and giving back to our community. Because I continue to learn from Cathrine, I am grateful. Glenda Gable likes helping others while settling into a career she really loves.

Andy Yun is a giver who enjoys helping others. Jason Brimhall‘s “why’s” are challenges posed by SQL Server performance issues and his passions for solving technical challenges, learning, speaking, and writing. Wayne Sheffield says he likes efficiency and is lazy, which drives him to automate as much as possible. James McGillivray garners a sense of purpose from a job that allows him to be creative, logical, extroverted, and inquisitive, all at the same time. Jess Pomfret started her blog with a T-SQL Tuesday post. She loves a good challenge and desires to keep learning and growing.

Chris LeGreca loves technology, challenges, the creative process, and data – but deep down he’s a nerd who does this for fun. Rob Farley believes better data facilitates better decisions and strives to make his customer’s best a little better. Kevin Chant enjoys learning, SQL Server Community volunteering, answering #sqlhelp questions, and serving charities.

For Allen White, it’s really all about you and helping you get more out of SQL Server. Bert Wagner was bored a couple years ago but now enjoys helping subscribers learn more about SQL Server each TuesdayTodd Kleinhans‘ “why” is his love for others inspired by Christian faith. Arthur Daniels enjoys working with a great team, making the database better, and the challenge of solving new problems. 

Rich Brenner loves SQL Server and the community that surrounds it. Drew Skwiers-Koballa‘s “why” is “the positive impact I can have on the company I work for, the careers of my teammates, and others in the technology communities.” Matthew McGiffen is motivated by his belief that there’s always a better way. Kenneth Fisher provides for his family but, in the end, loves what he does and enjoys several aspects of his career.

T-SQL Tuesday #111 – What is Your “Why?”

I enjoy math. I noticed a pattern learning math, perhaps you experienced something similar. I found arithmetic an exercise in memory. I have a good memory (well, I had a good memory…) so memorizing a bunch of rules was no big deal. 

When I learned algebra, arithmetic made more sense. In addition to the memorized rules, I saw why the rules existed. I understood the rules better as a result.

This pattern held all through my math education. I understood algebra better once I learned geometry. I understood geometry better once I learned trigonometry. I understood trigonometry better once I learned single-variable calculus.

An Axiom (for me)

I notice a similar pattern applies to my career (or careers, as the case may be). I’ve served in many roles: 

  • Farm laborer
  • Musician
  • Stockyard laborer
  • Truck driver
  • Service technician
  • Soldier (part-time in the Virginia Army National Guard)
  • Electrician
  • Electrical engineer
  • Electronics technician
  • Manufacturing automation integrator
  • Software developer
  • Author
  • Data professional
  • Entrepreneur

The similar pattern manifests itself in this manner: I’ve enjoyed the position – and more success in the position – when I had a reason to do the work; some reason other than a paycheck. In some cases, I had multiple “why’s” beyond remuneration. For example, I join the Virginia Army National Guard to learn electronics and serve my country – to especially protect everyone’s right to free speech guaranteed by the First Amendment. I may not agree with what people say, but I was (and still am) willing to fight and die to preserve the right of US citizens to say whatever they want. 

As a result, I enjoyed serving in the National Guard (for the most part). I learned more. I learned better, I think, because I enjoyed serving.

Entrepreneurship

Entrepreneurship can be challenging. I believe one needs a “why” – or perhaps several “why’s” to remain an entrepreneur. The “why” cannot simply be money. Money isn’t inconsequential, mind you, but I believe the best “why’s” are less tangible.

Passion plays a major role for me. When business isn’t going well or when business is going too well, a couple intangible “why’s” – passions for both entrepreneurship and the kind of work I am blessed to do – inspire me to keep a steady hand on the tiller.

Also, entrepreneurship affords more and different ways to serve people. Am I saying one must be an entrepreneur to serve others? Nope. Flexibility with time, though, facilitates opportunities that may not otherwise be possible, or as possible.

What is Your “Why?”

That’s the question this month: Why do you do what you do?

I look forward to your replies.

The Rules

T-SQL Tuesday has the following rules:

  1. Publish your contribution on Tuesday, 12 Feb 2019 between 00:00 UTC to 23:59 UTC.
  2. Include the T-SQL Tuesday Logo and have it link to this post.
  3. Please comment below with a link to your post.
  4. Tweet about your post using #tsql2sday.
  5. If you’d like to host in the future, Steve Jones.

Roundup

On or about 19 Feb 2019, I will publish a roundup post. (Until then, that’s a broken link…)

Enjoy!

:{>

T-SQL Tuesday: When Good Projects Go Bad

Thanks to Jeff Mlakar for hosting this month’s T-SQL Tuesday, a monthly collection of blog posts by data bloggers who work and live in the Microsoft SQL Server space.

This month’s topic is about projects that have gone wrong.

“Why Do Good Projects Go Bad, Andy?”

Deltas.

That’s all. Deltas. Allow me to explain.

In life, engineering, and projects, we experience deltas in a variety of forms.

IRL…

As a manager I learned there’s a difference between how we are perceived and how we think we are perceived. I label this the “self-awareness delta.”

In Engineering…

In engineering terms, delta is the letter of the Greek alphabet used to represent a difference or change or gap.

In Projects…

Projects that will eventually fail go astray early on in ways that are either invisible or ignored. Projects disappoint or fail. I’ve seen (and believe) statistics that 85% of business intelligence projects fail or disappoint. Disappointment or failure begins as some delta – some difference – between what is real and what is perceived as real.

Detecting Deltas

Think about how we discover there’s a delta in our self-awareness… it requires, well, self-awareness! It turns out that detecting deltas requires meta thinking. The risk of being too meta? We can succumb to circular logic. Thinking meta involves some circular – or, at least, circumspect – reasoning.

Our perspective is also limited by our perspective. A wise man once said it’s difficult to remove the speck from our brother’s eye while we have a plank in our own eye. (Note: Andy’s Plank Removal Service Offering currently has but a single customer…)

So how can we achieve delta detection?

I regularly reference Kathryn Schulz’s TED talk on Being Wrong. Kathryn begins her (excellent) TED talk by stating that we do not know what it feels like be wrong. But she concludes her introduction by contradicting herself (which is totally appropriate… think about it…) and states that we do know what it feels like to be wrong; it feels like we’re right.

Ownership

I’ve seen projects fail. Heck, I’ve seen companies fail. I’ve made mistakes and when I’ve caught them, things have sometimes improved. Sometimes I catch them too late to effect a complete or partial remedy. It’s rare, but it happens.

The first step on the path to (project) health is to admit we have a problem:

“We have a problem.”

Another step is communication. I prefer over-communication.

Over-Communication

I’ve never once had a client say to me, “Andy, you are communicating too much about this project.”

Not. Once.

I’ve had projects go sideways because I failed to communicate effectively or enough. Here’s one thing I’ve learned about communication in projects:

If I communicate enough, I will communicate effectively.

Failure, By Degrees

Projects that fail first go sideways. Were we to graph the trajectory of a project failing, we would not see a 90° turn at the point where the project goes sideways. Instead we would see a gradual departure – a curving away – from the path to success. The departure would reach 90° and then – if not corrected – continue to 180°. At this point the project is irrecoverable. A project may become irrecoverable at 90°, even. It depends on the project.

Fix It!

I can hear you thinking, “How does one fix it, Andy?” I’m glad you asked.

If you catch the departures at 1° – or even 9° – it takes much less effort and time to address and correct the departure.

This sounds simple and it is, but it’s also difficult. Remember that meta thinking is required, and meta thinking is hard. Simple, yes; difficult to implement and accomplish.

DfG

I address “Deviation from Good” (DfG) by over-communication. It’s the drum I beat throughout any project I lead. How do I implement DfG?

TPS Status Reports

I loathe bureaucracy. Especially bureaucracy for bureaucracy’s sake. I learned the reason I loathe status reports is I am not naturally good at tracking status. I struggle to remember details of what I did all week at the end of a week. Being an engineer, I engineered a solution:

A few years ago, my friend (and hero) Donald Farmer (Treehive Strategy | @DonaldTreeHive | LinkedIn) shared this Notepad hack with me. If you start a Notepad file with the text “.LOG” followed by a carriage-return / line feed (hit the Enter key), Notepad can provide a log template. Save the file with “.LOG” on the first line. Each time you open the file in Notepad a new line will be added containing the current date and time. Try it. It’s cool.

I use the following format to log project time:

Date time (automated by Notepad)
Customer
Project Name
Start
Customer
Stop

I use this to track my time. I’ve even built an SSIS package that reads this file and stores the data in a database. I’m able to generate status reports from this data very efficiently.

My former boss and mentor, Bennett McEwan (LinkedIn), challenged me when I reported to him at Unisys 10+ years ago. When I complained that my status report was taking an hour or more each week Ben said, “Your status report should only take you five minutes.” My kneejerk reaction was not positive. But then I engaged to solve the problem, remembered Donald’s Notepad hack, and the rest is history.

Come To Jesus Meetings

I’ve been wanting to use “Come to Jesus Meetings” in a heading for a long time. It’s not a perfect fit here but I must confess I’ve become tired of waiting. So I shoe-horned it in right here.

I visit (if possible) or call the sponsor for each project on which Enterprise Data & Analytics is actively engaged and ask questions similar to:

  • What questions do you have for me?
  • How can I better serve you?

These conversations identify expectation deltas at 1° – or 9° – deviation… a place where almost any issue can be efficiently addressed within the confines of the current work effort.

These conversations keep a project on track.

Are these conversations pleasant?
Not always.
But they are extremely valuable.

Failure is normal.
Failing fast is almost always a good thing.

I’ve learned over-communicating is vital to mitigating project disappointment or failures.

T-SQL Tuesday #106: Regarding Triggers

In my experience, people either love or hate triggers in Transact-SQL. As a consultant, I get to see some interesting solutions involving triggers. In one case, I saw several thousand lines of T-SQL in a single trigger. My first thought was, “I bet there’s a different way to do that.” I was right. The people who’d written that trigger was unaware there was another way to solve the problem.

I see that a lot.

Software and database developers do their level best to deliver the assigned task using the tools available plus their experience with the tools. I don’t see malice in bad code; I see an opportunity to mature.

Granted, when I’m called in as a consultant I get paid by the hour. That’s not the case for many folks.

One ETL-Related Use For Triggers

Change detection is a sub-science of data engineering / data integration / ETL (Extract, Transform, and Load). One way to detect changes in a source is to track the last-updated datetime for the rows loaded by an ETL load process.

The next time the load process executes, your code grabs that value from the previous execution and executes a query that returns all rows inserted into or updated in the source since that time.

Simple, right? Not so fast.

Where to Manage Last-Updated

How the value of the last-updated datetime is managed is crucial.  I’ve had arguments discussions with many data professionals about the best way to manage these values. My answer? Triggers.

“Why Triggers, Andy?”

I’m glad you asked. That is an excellent question!

Imagine the following scenario: Something unforeseen occurs with the data in the database. In our example, assume it’s something small – maybe impacting a single row of data. The most cost-effective manner to manage the update?

Manual update.

How is the last-updated value managed? It could be managed in a stored procedure. It could be managed in dynamic T-SQL hard-coded inside a class library for the application. If so – and given a data professional is now manually writing an UPDATE T-SQL statement to correct the issue, there is an opportunity to forget to update the last-updated column.

But if the last-updated column is managed by a trigger, it no longer matters if the data professional performing the update remembers or forgets, the trigger will fire and set the last-updated column to the desired value.

Change detection works and all is right with the world.

Troubleshooting Triggers

Troubleshooting triggers is… tough. There are some neat ways to troubleshoot built right into tools like SQL Server Management Studio (which is free). For example, in SSMS you can Debug T-SQL:

Conclusion

I like triggers for the things triggers do best, but triggers can definitely be misused. Choose wisely.

:{>

T-SQL Tuesday 102: Giving Back

I enjoy the privilege and honor of participating in the SQL Server Community alongside many who read this blog. And I know from past experience that some reading this post will make the switch from consumers-only in our community to sharers and consumers one day.

For my part, I consume more than I contribute. I am thankful to the many folks who contribute with their blog posts, tweets, social media posts, YouTube videos, podcasts, and other media. I enjoy personal interaction most of all and have thoroughly enjoyed conversations with folks in the community at SQL Saturdays!

I learn way more than I teach.

Beyond the SQL Server Community

Many in the SQL Server Community serve their local communities in civil capacities. Some volunteer as first-responders and fire-fighters, for example. I know one person who serves on the local school board. Several are active in churches, charities, and religious organizations; and many dedicate time to local schools and/or alternative educational activities such as homeschool organizations.

I’m honored to be part of this community and to serve alongside all of you every day. We in the SQL Server Community participate in an awesome community!

:{>

Learning Goals for 2018 – T-SQL Tuesday #97

My friend and #SqlFamily sister Mala hosts this month’s T-SQL Tuesday topic: Setting learning goals for 2018. It’s a timely topic for me as I’ve recently engaged in more formalized training. Mala’s questions:

  1. What do you want to learn? (specific skills and talents)
  2. How and when do you want to learn? (methods of learning and timeline on learning)
  3. How do you plan to improve on what you learned? (Putting it to use at work/blogging/speaking)

What Do I Want to Learn?

Earlier this year (2017) I picked up a certification in Processing Big Data in Hadoop with Azure HDInsight. I have experience building SSIS packages that load Azure and Amazon’s cloud products, including Aurora. I want to expand that and gain experience using Google’s Cloud offering.

I’m focusing on cloud technology, specifically data integration in the cloud. Scott Currie (Varigence | @scottcurrie) demonstrated Biml and Azure Data Factory v2 at the PASS Summit 2017 in the Day 1 keynote.

How and When Do I Want to Learn?

I like online training these days – a lot. I can wear my sweat pants while learning! I deliver and consume live and recorded online training. Christy and I home-school our three children and use online curricula. I used to believe online learning was the future of education. I now believe online education is the present.

Operating a business is almost a full time job all by itself. Operating more than one business is… challenging, especially when you want to maintain any kind of schedule. Separating the things that appear urgent from the truly urgent is more art than science. It’s no longer merely a matter of discipline, I have to actively make time to remain engaged in learning. I do this by setting my alarm for 5:00 AM currently. I may have to set it for earlier to increase my learning time.

How Do I Plan to Improve on What I’ve Learned?

I will put what I learn to use. I’ll build demos for presentations, and then deliver those presentations when given the honor and opportunity to do so. I will blog about what I am learning and what I have learned, especially when I encounter an error and then overcome that error through sheer stubborn will persistence.

Conclusion

If you want to get into technology – or want to remain current in technology – you simply must engage in lifelong learning. It’s not optional; it never has been. Now, more than ever, it’s important to continue your education.

:{>