There’s ample debate about whether people learn from mistakes. Don’t believe me? Search and see for yourself. There are compelling arguments for both learning from our mistakes and not learning from them.
In engineering and software, I think we learn from our mistakes. I can hear you thinking, “Why do you think that, Andy?” I’m glad you asked.
I think we learn from our mistakes because most of what we attempt fails. We live and breathe in a profession where failure is normal. As we grow and mature and improve as technologists, many come to divorce negative emotions from failure. That’s one trait I look for in enterprise architects – a question I seek to ascertain: Have they separated failure from negative emotions about failure? Here’s something I’ve learned:
Good architects not only don’t feel bad when they fail, they embrace failure.
“That’s crazy talk, Andy!”
Perhaps. It’s also accurate. Why in the world would anyone embrace failure? If one believes failure is a necessary step on the path to success, one embraces failure.
In a universe that embraces S.M.A.R.T. goals, recording and reporting failure can be tricksy. I’ve written before about a very successful day of software development, but recording it against my performance metric of “lines of code written” backfired when the answer was -1,800.
In software, I believe we simply must learn from our mistakes. Failing fast is virtuous, and failing often is normal. If what we are doing is normal and virtuous, why then should we feel bad about it? The answer is:
We shouldn’t feel bad about failure.
Classification of Failures
What I am advocating is divorcing emotion from technical failures which are a certain class of failures.
I wrote earlier about offending people. We should feel bad about failing by offending people most of the time (I included one exception there at the end of my long, rambling post…).
So I will modify my earlier statement:
We shouldn’t feel bad about technical failures.
See what I did there?
I failed to communicate clearly and effectively. I tried again, adding clarification.
Do I feel bad about that? Nope. Neither should you.
In just a few short weeks I am attending the PASS Summit 2018 in Seattle. Whenever I attend an event like the Summit or SQL Saturday I attempt to attend presentations of interest to me. I love learning new stuff!
Good and Less-Good
Most of the presentations I attend are good. Some are really good. They are delivered by talented technologists who are also gifted orators. This is an important distinction because:
Technology and communication are entirely different skills.
I’ve watched gifted presenters misrepresent the facts about technology. I’ve watched gifted technologists fumble demos and stumble over words.
If I have to choose one over the other, I choose great technologists over great presenters. I do so without reservation or hesitation. Is it good to have both? Goodness yes! But – this is important – we don’t always get what we want.
Some Examples of Less-Good
There are categories of bad presentations and bad presenters. Three leap to mind:
Someone who does not know the topic
Someone who is not a good presenter
Someone who is offensive
Presenters Who Do Not Know What They Are Talking About
I wrote recently about a complaint I see leveled at myself and others from time to time: “You do not know what you are doing.” I confess, sometimes that’s a valid complaint about me. While you might find the previous statement an example of humility (or false humility), I prefer to be in the state of not knowing what I am doing. Why? Because it’s an opportunity to learn and I love to learn.
That said, there’s a time and place for everything – including learning. When presenting a class or at a conference for which attendees or their employers paid good money, I strive to share what I have already learned, not what I am learning. Attendees of a free event, even, are paying with their time. So again, I strive for excellence in presentations at free events.
My lovely bride, Christy, attends on average one of my presentations per year. Early on she shared this advice, “Andy, no one likes to watch you troubleshoot.” As an engineer I didn’t even think about it. If something was broken, it needed to be fixed. Period. Pronto. If that meant dropping everything else – in front of a paying audience, even – so be it. Christy’s advice helped me become a better presenter.
I redesigned my talks to be demo-fault-tolerant. I changed my thinking about my presentations so that I am now more mentally prepared for demos to fail. I had something to say, always; I am aware not only that demos will fail. I am prepared for them to fail.
This preparation served me well when, in March 2018 at SQL Saturday Chicago, a drive on my laptop failed just before delivering a presentation that is 90% demos. What did I do? I talked through the demos. A friend approached me afterwards and said, “You looked ready for that!” I was ready for it. Nonetheless I responded (truthfully), “Thank you. I’m going to go sit down for an hour.” Even though I was prepared, it was exhausting.
I can hear you thinking, “Wait, Andy. Your second item above is ‘Someone who is not a good presenter.’ You titled this corresponding section ‘Good Engineers.’ What gives?” I’m glad you asked.
I am an engineer. If you’ve read my bio you see the word “engineer” there.
I consider this a warning.
Are all good engineers bad communicators? Nope. Many – perhaps most – are, though. Take that last sentence. If English is not your first language I owe you an apology. If English is your first language, I owe you two apologies. It makes perfect sense to me, but any editor who saw that sentence in a manuscript would be compelled to add a comment; correct the sentence; or print the document, take it out back, and physically burn that sentence off the page.
Technology – or engineering – is a skill. Communication is a skill. Technology and communication are different skills.
As I stated earlier, I don’t care if the presenter is a bad communicator. There is at least one exception to this rule that I will cover next. But for the most part, I can learn from good technologists who stink at communication. I can learn from good technologists who are brilliant communicators but are having a bad day. How do I know I can learn from these people? Because I have, and do, almost every week.
And so do you.
You may not like the presenter. You may not enjoy the presentation. But do you learn? Yep. You do.
An Aside: I Hate Abstract-Writing Contests
I’ve organized community events in the past. I don’t do very much work on community events these days, although I serve as a mascot on a couple leadership committees because of my past adventures in similar endeavors. Occasionally – rarely, I would say – I offer some tidbit that helps. My role these days is mostly to encourage leaders who are on the verge of burnout.
Selecting speakers is an engine of loss. It’s bad when there are more submissions than slots. The effects are amplified if the event is popular. Speaker selection is a fantastic mechanism to irritate and isolate people. For years, in some cases. Everyone who submits believes their submission should be accepted. Otherwise, why submit in the first place? No one likes to hear, “No.” Everyone likes to hear, “Yes.”
I am the same as every other speaker in this regard. I may be worse than most, even.
Peeves make lousy pets. Knowing this doesn’t stop me from nurturing a handful of pet peeves. One of my pet peeves is speaker selection based solely on the marketing value of the written abstract. I label this practice an “abstract-writing contest” and I believe it is one bane of a successful technical conference.
If you read that last paragraph and began composing a comment that includes a paraphrase of, “Then what would you have us do, Andy? Pick lousy abstracts?!” I feel for you. But I cannot quite reach you. </RedneckSnark>
My response is, “No. I would have you consider more than merely the abstract. And specifically more than its perceived ‘Marketing value.'” Mix things up a bit. Add some variety. Consider the popularity of the speaker’s blog or previous presentations, maybe. Again, there are exceptions (one of which I will address shortly). But here’s my point in a nutshell:
All good presenters deliver good presentations. Not all good presenters write good abstracts.
Something must take precedence, some attribute must win. If you are organizing an event and / or selecting speakers, you probably don’t have the option of selecting great presenters who will deliver great sessions and who are awesome at writing persuasive marketing abstracts.
Should all presenters strive to write better abstracts? Goodness yes. But unless you’re planning MSIgnite or Build or ReInvent or a TedX, you’re probably not going to be in the position to choose among the great presenters with great abstract-writing skills. Even if this is so, you’re not always going to get it right. They don’t! I’ve been to enough global conferences and seen enough bad presentations to know.
So presenters, strive to write better abstracts. And selectors, select some presenters who submit poorly-written abstracts. For goodness’ sake: If spelling errors bug you, correct the spelling before you publish anything. That’s not even hard.
I am of two minds as I begin this section. Here’s why:
There are things I find offensive that, for me, go beyond the pale, crossing the border between acceptable and unacceptable in a public forum meant to convey knowledge to attendees.
There are things I find offensive that I will tolerate in order to gain the knowledge I seek.
Stepping into a conference session, I sometimes do not know what to expect. I may be unfamiliar with the speaker. Perhaps their speaking style is abrasive, or abrasive in my opinion.
Perhaps the speaker uses excessive profanity. I can hear you thinking, “Who gets to define excessive, Andy?” The attendees get to define excessive. As an attendee, I get to define excessive.
I read about a presentation a few years ago where the speaker created a pornographic demonstration. Many in attendance found the presentation offensive, most found it unprofessional. I hope the speaker – obviously a talented technologist – learned from this mistake.
These are examples of the first type of offense, those I believe are unacceptable.
Perhaps the speaker mentions politics in jest and I disagree with their politics, so I feel belittled when those surrounding me in the room laugh at the joke. I may feel they’re laughing at me. They are certainly laughing at people like me.
Perhaps the speaker jokes about the less-sophisticated in our culture. I’ve heard the term “hick” and “redneck” bandied about, for example – terms with which I personally identify. I have people in Appalachia, from whence my family comes. “Trailer trash” was a term I heard years ago in a presentation. My teenage years were spent living in a mobile home. In a trailer.
Do these references offend me? They do.
Do I tolerate these offenses? I do.
You may read that last section and think something along the lines of, “Well, they must not offend you that much if you tolerate them, Andy.” To which I respond, “That’s not your call.” You do not get to make such an assertion. You lack the ability to see inside my mind and inside my heart, so you cannot accurately render judgment as to what goes on there. Further, you do not dictate how I think or choose to respond, publicly or privately. You do not have that right of imposition; not over me.
These are examples of the second type of offense; those I choose to tolerate.
“How should we then live?” is a question posed by theologian, philosopher, and pastor Francis A. Schaeffer – it’s the title of one of his books. It’s a fair question – especially in an age that considers outrage a virtue. here are, I believe, some truths:
Offense can be intended. Offense can be unintended. Regardless of the motive of the offender, offense must be taken in order for the offended to be, well, offended.
I believe motive counts.
Does motive excuse the offender then? Not completely, in my opinion. That said, unintended offense deserves a more mitigated response than intended offense – again, in my humble opinion.
i write this as someone who has offended others unintentionally. I write this as someone who has been offended intentionally and unintentionally.
When I have offended others, I most often apologized. I’ve learned the earlier the apology is offered, the better. I’ve failed – sometimes for years – to apologize for some offenses I’ve caused. This is partially due to ignorance on my part – me not realizing until later that I owed someone an apology. Sometimes I’ve just been stubborn (a virtue for an engineer… which is one reason I warn people that I am an engineer…).
I will likely offend people in the future. Offending people is not my goal and certainly not my intention.
I will most likely offend when trying to make a joke – as others have offended me while trying to make a joke. This has happened to me in the past. It’s cost me relationships, both professionally and personally.
In these cases, I bear the loss and I am profoundly sorry.
Please read and understand this: There are principles – and a Person – in which (and in Whom) I believe. I value my faith more than I eschew offense. My weak, flawed, and hypocritical following of Christ will offend a handful of people, some of whom also follow Christ. Knowing this does not deter, defer, or lessen my beliefs or my commitment thereto. If this offends you, you will have to decide how you respond. If my faith offends you, I believe you will have to also respond at least once more in the future. So if my faith offends you, I pray (and I never say or write the words “I pray” without actually praying) that you take care in your current response.
Be nice. We all have bad days. I know I do. It seems like I get interrupted about 1,000 times more when I’m busy than when I’m not busy. Why is that? Is it some vast universal conspiracy to rob me of productive work? Is it all in my head?
I am not sure.
One thing I am sure of, though, is that it ultimately comes down to me. I read this years ago and it stuck:
If the Comic Sans font bothers you, please reread the message.
I Am Here to Help™
I get a bunch of messages from recruiters. Many of them via LinkedIn. Most of the communication follows a similar pattern:
I receive a Connection Request from someone with “recruiter” or “personnel” or “people” in their title.
I accept. Why? I like people. I’m just that kind of guy.
I get a message – usually within 24 hours – that reads in part something like the following: “I came across your profile searching for someone to fill a position for a ______. I think you may be a good fit for the position. If you are not interested, please share with any qualified individual in your network.” This is sometimes followed by a promise of referral recompense, though I’ve never – not once, to date – ever been compensated for recommending someone.
Back in my Linchpin People days, I actually did a little recruiting. I’m not entirely sure, but I think I made more money per hour doing recruiting than I have ever made – period. I mean, I didn’t do it for the money (and I don’t recommend people for referral compensation, I was just pointing that out…). I was actually trying to help a friend, or customer, or both out of a jam.
In short, IT recruiting pays well. So I understand why recruiters behave they way they sometimes do.
There was a time when I would have done almost anything to have recruiters reaching out to me almost daily. It wasn’t that long ago, actually – just a couple decades. I remember begging recruiters to just give me a chance! I knew I could do the work. I could learn anything and I have a strong work ethic. I knew I would succeed. But…
I Lacked Experience
Most recruiters who contact me these days do so via LinkedIn following the communications pattern I shared earlier.
I don’t mind. I used to mind, but I no longer do.
“Why Don’t You Mind, Andy?”
I’m glad you asked! That’s an excellent question.
There are actually several reasons. Please allow me to share one of them. Last year Enterprise Data & Analytics was hired to help a team deliver medical-related data integration with SQL Server Integration Services (SSIS). The customer succeeded with our help and all was well with the world. But there was this one twist that bears mentioning:
We were hired by a company for which I worked years ago. And my boss used to report to me.
“It’s a good thing you weren’t a jerk to that person, huh, Andy?”
Almost. That sentence has an extra five words in it. There at the end.
Don’t get me wrong. It is good I wasn’t a jerk to that person. It’s better that I wasn’t a jerk to anyone – well, almost anyone – at that place of business. Why?
Because you never know.
Back to the Recruiters…
So… here we are communicating with people whose specialty and experience currently lies with hiring IT professionals… and you decided it’s a good idea to “teach them a thing or two?”
Really? One question: Have you thought that one through?
Are you never going to need to change jobs again? Ever? Are you going to leave the IT field when you do? If so, is it possible – even remotely – that you might encounter even one of the recruiters with whom you interact on LinkedIn?
One Way to Respond
How do I respond? I have this note saved as a text file. It takes about 15 seconds to find, open, copy, paste, and edit:
I was about to click the Publish button for this post about my new role as a product manager when my friend and brother, Scott, called. I mentioned it and Scott said, “You’re not just a product manager. You’re a problem-solver.”
Scott is correct. Hence the parentheses in the title of this post.
“Is This The Best Use of Your Time?”
A friend used to ask me this question all the time. It’s a fantastic question. The question made me pause and think. Pausing and thinking is mostly good most of the time. When is pausing and thinking not good?
When it delays action you desperately need to take; action you are uniquely positioned to take.
Evolution of a Response
For a couple years my response to this question was to answer, “No,” and then I would feel silly for considering the thing I had wanted to do. But then a funny thing began to happen: I increasingly felt cornered by “the best use of my time.”
Let’s pause right here and consider a different perspective. I was being selfish. I wanted to do what I wanted to do, the consequences be damned.
This is an accurate description right up until the point where I didn’t do what I wanted to do – what I felt desperately needed to be done – to help people attempting DevOps with SSIS. Instead I stuffed the ideas back down inside, put my head down, and went back to doing what was a good use of my time.
Was I in any position to make this determination? Was I qualified to make this call?
Yes. Yes I was.
Coming Out of the Corner
Over time, my response evolved. I stopped feeling silly about wanting to solve DevOps for SSIS and started feeling silly for placing myself into a position which offered more obstacles than opportunities.
The short version of a long story is: I extricated myself from that corner.
Before I did anything else – I am not making this up, I can produce witnesses – I started writing SSIS Catalog Compare. I started coding within minutes of announcing my decision.
I did not know what I was doing. I am still learning. I feel like I only recently worked my way up to being a n00b C# developer. I didn’t know anything about designing a software product. I know more now but (still) not enough. I didn’t know anything about marketing a software product. I didn’t know anything about managing a software product.
I continue to learn. Here’s the latest thing I’ve learned:
I am not afraid.
I am not afraid of not knowing. Frank Herbert got it right (in Dune): Fear is the mind-killer. The only way to learn is by using my mind – the same mind battling fear of not knowing.
Was the question about the bet use of my time well-intentioned? Absolutely. My friend was watching out for me, he had my back. I learned from the experience and walked away more mature and with broader perspective. I learned. I grew. I would not be where I am now had I not.
I am a Problem-Solver
Scott reminded me I am a problem-solver. I always have been a problem-solver. Lord willing, I will continue to be a problem-solver.
Becoming a software product manager was required in order to solve a problem.
Awaken. Weigh in, pray, read the Bible, check the burn barrel. This morning I weigh 200 pounds. Prayer, praise, gratitude, thanking God for another day. This morning I read Romans 8:31-39. I am teaching our adult Sunday School class this morning and we are making our way through Romans. Powerful. Coffee. Breakfast. Boy-wrangling. It’s tough to get those boys up some mornings. This morning isn’t too bad. But it isn’t too good either. Apparently it was another late night online. It might be time to adjust the internet availability schedule. Again…
Riley is out-growing clothes weekly, it seems. He’s almost 11 and that happens. We manage to get them fed, watered, medicated, and dressed.
9:00 AM-2:00 PM
We pile into the vans and head to town. Worship starts with breakfast (we had a keto-friendly breakfast already, so we just bring stuff and don’t eat). Each adult Sunday School class is responsible for breakfast one Sunday per month. Our class has 4th Sundays and we pack some goodies Christy has left after the Farmer’s Market yesterday. Praise band rehearsal starts at 9:30. My hands are not cooperating with the guitar this morning. Note to self: No more 3-hour ax-limbing marathons on Saturdays… It’s Vacation Bible School week and Christy has a coordination meeting immediately after the service. We connect with some brothers and sisters for lunch at Pino’s across from Longwood University where good food and fellowship is enjoyed by all!
I empty the now-cool ash and restart the burn barrel. I’m hoping to get a nice hot fire burning before the threatening storms strike. Once the fire settles into a steady burn deep inside the barrel, Christy, Emma, and I go grocery shopping. We pick up supper from local eateries and head home.
Farmville has two colleges: Longwood University and Hampden-Sydney College. One nice thing about living in a college town is we have plenty of restaurants to choose from – and new restaurants open all the time. Some close, it’s true. But overall, the colleges “recession-proof” our small town.
We get home in time to watch the beginning of Shark Week on The Discovery Channel.
So… that’s a peek into four days in my life. I hope you’ve enjoyed this mini-series that includes this post plus the previous three:
Could I do things differently? Yep. Could I do things better? Goodness yes! This is what was queued for these four days; the decisions I made, some of the stuff I did with the time.
As I mentioned, this week is Vacation Bible School week so we will be at Heritage Baptist Church each evening helping Farmville-area young people learn more about faith in God. It will be a time when lifelong memories are made for the kids attending (I still remember stuff from VBS in Green Bay Virginia when I was a wee lad). It will also be a time of packing Operation Christmas Child shoe boxes, stress, teaching, running around, helping, hard work, learning, hurt-feelings, forgiveness, serving, and of joy in serving.
I didn’t accomplish all my goals for last week. That happens. It’s called “life.” The older I get – and I get even older Tuesday! – the more I’ve learned that life is mostly made up of interruptions. At least, the important stuff is. Things like spilled chocolate milk and scratches and helping and pulled backs and calls and emails.
Work? Work is just stuff I do in between interruptions. Work is a part of life. Work is important. Work is not the most important part of life.
I bumped some work goals into this week and will be back at ’em Monday morning, Lord willing. And life, Lord willing, will go on.
Weigh in, pray, read the Bible, check the burn barrel. This morning I weigh 201 pounds. There’s a bunch to pray about. I start with praise followed by gratitude, thanking God for another day. This morning I read Psalm 150 again (now reading Psalms from last to first), the second half of Romans 14, and Colossians 1:9-14. Coffee.
I help Christy and Emma get the van loaded for the Farmer’s Market today. They sell all sorts of goodies.
The fire in the burn barrel is out and a few coals are smoldering. I decide to let is cool down and empty the ashes, then start over.
I get the boys up – those boys can sleep. Stevie Ray needs to finish up some laundry and homeschool testing and Riley has some cleaning to do. I clean up the kitchen some and then head to the office.
I head outside for some “pine therapy.” It’s Saturday and I want to get the trunk of this large-ish tree on the ground. That means either finishing or all but finishing the limbing of the tree. To turn it into exercise (well, more exercise) I decide to use the ax instead of the chainsaw. I accomplish my goal. Four large piles of pine brush lie drying in the Farmville sun.
I call it for the day. I may have overdone it a little. Exercise is a good idea and getting outside for a stretch was awesome. Perhaps the ax wasn’t such a good idea… My hands and elbows are sore.
I do something I rarely do – plop down on the couch and watch some television.
– awaken after hitting the snooze on my phone alarm once.
5:06 – 9:30 AM
– Weigh in, pray, read the Bible, coffee, check the burn barrel. This morning I weigh 201 pounds. There’s a bunch to pray about. I start with praise followed by gratitude, thanking God for another day. This morning I read Psalm 150 and the first half of Romans 14, which later prompts a couple social media posts about how I should stop despising and judging. Coffee: ’nuff said. The fire in the burn barrel did not do well last night. The bigger pieces I left to smolder overnight are still there. It’ll take a couple tries to get it burning this morning, I imagine. I start Try #1 with some dead twigs. I comment on Brent’s post about #SQLCareer and fill up the Buffer buffer for the day. I open Outlook and see an email from Kent Bradshaw. I meet with Kent via SkypeForBusinessLync to discuss the goings-on at Enterprise Data & Analytics. Consulting is slow now, which is normal for this time of year. In about the month we’ll start getting pings for work. That’s fine, we both have other things going on (vacations, a trip to the Data Platform Summit 2018 in Bangalore, India, etc.). Christy and I have breakfast (keto-friendly). She started baking yesterday for the Farmer’s Market tomorrow. After breakfast, I resist the small tray of brownies on the counter… for now. I had a couple yesterday and they are, as ever, awesome. Stevie Ray finishes camp today and he needs to be picked up at 5:30. It’s about an hour away so I will likely knock off mid-afternoon today. Riley is finishing up his homeschool testing this weekend. Since he’s doing math I’m on for questions. This will likely consume much of the morning. Write. I add to my Notepad document to record my day for the next few days. Startup vDemo – my demonstration virtual machine – in preparation for recording the SSIS Academy Data Flows 2 lab (video only, no audio). Let’s see if we can capture the video before I need to proctor Riley’s exam…
9:30 AM – 12:00 PM
Capture the video for the SSIS Academy Data Flows 2 lab which validates the lab document. Save the lab doc as PDF. Proctor Riley’s exam. Christy is cooking like a mad-woman for the Farmer’s Market and doesn’t want to stop to eat lunch (she somehow managed to make supper in the crockpot already!), so I grab some leftovers and eat in the office.
12:00 – 3:30 PM
Worked on SSIS Academy Data Flows 2 course. Added some files to the Data Flows 1 collateral. I did about an hour’s worth of “Pine Therapy” – keeping the burn barrel going and enjoying some time outside in this lower humidity limbing up a pine I felled a couple days back and piling brush. I decided to call it quits a little early as we prepare to pick up Stevie Ray from camp. It’s about an hour’s drive into the sticks. You have to put “the sticks” in context and realize that I’m writing that from five miles outside of Farmville Virginia…
– Wake up (beating the alarm), weigh in, pray, read the Bible, coffee, check the burn barrel. Christy and I have been on a keto diet since 5 Mar. I started out at 238 pounds. This morning I weigh 199 pounds. I’ve been bouncing in the 196-203 range since early May. Part of the reason for the plateau is cheating on the diet (diet fatigue). Part of the reason is I’ve probably lost what I can with diet alone and need to add more exercise. My exercise lately has been work around the farm. There’s a bunch to pray about. I start with praise followed by gratitude, thanking God for another day. I’ve been reading through the Book of Psalms recently and this morning I read 149 (of 150). I’m also studying the books of Romans and Colossians. Coffee: ‘Nuff said. I’m slowly burning limbs and brush from areas I’m clearing around the farm. There are hot coals from the three larger pieces I put in the barrel last night. I add three more larger pieces.
5:30 – 6:00 AM
– Write. I create a Notepad document to record my day for the next few days. After reading Brent Ozar’s first entry last night – in which he reminded me of Steve Jones’ SQLCareer post earlier this month – I decided to share a few days. Startup vDemo – my demonstration virtual machine – in preparation for today’s Summer O’ ADF webinar titled Use SSIS Catalog Compare to Lift and Shift SSIS to ADF. While vDemo is starting, I log into Azure Data Factory and start my Integration Runtime. The webinar is over 6 hours from now but I don’t want to wait until the last minute – it takes 20-30 minutes for ADFIR to start. I note the free Azure account I set up for the Summer O’ ADF has $181 left and is probably down to about 10 days remaining in the free month with $200 of credit. I note the accounting doesn’t (yet) reflect the 5 hours or so I had Integration Runtime running yesterday. My Azure spend has latency and I am attempting to monitor the latency. At present I see resource usage reflected in billing 36-60 hours after the resource usage. I fire up vSQL2014 to begin testing SSIS Catalog Compare v220.127.116.11 (Preview). I’ve been working on this latest release of Catalog Compare for a year. Or more. Reasons for the delay, in order: 0. I bit off a lot. I made major changes to the graphical (treeview) representation of the SSIS Catalog. If you’ve been playing along at home, you can see these changes in the free DILM Suite utility, Catalog Browser. Catalog Browser and Catalog Compare share a lot of code. 1. Enterprise Data & Analytics landed two large data engineering projects at about the same time one year ago. One client doubled their request at the beginning of 2018 which resulted in doubling our people. Both projects are done but the both clients indicate they will have more work for us in the future. I still deliver consulting work – designing and building SSIS and database solutions – while managing the company. Nick Harris manages the business development cycle; a skill at which he is most gifted and for which I have neither proclivity or the inclination to proclive (…to quote the sage wisdom of Tom Smykowski [Office Space], “Engineers are not good at dealing with customers.”). Consulting and management took time away from software development. 2. I am a C# n00b. A year ago I was working my way up to becoming a C# n00b. (This maybe should have been first…) While walking through the script for today’s webinar, I found a bug in the scripting of SSIS parameter literals. Booleans are… difficult. The string value of a Boolean is “true” or “false.” The corresponding T-SQL values are 1 or 0. Since SSIS Catalog parameter values are stored as sql_variants, getting the value right is vital. True/false not only doesn’t work, it causes the T-SQL script to fail. Hence, SSIS Catalog Compare v18.104.22.168 (Preview) was updated yesterday to SSIS Catalog Compare v22.214.171.124 (Preview). I’ll put it through some paces this morning by running through the webinar script again. If all goes well, I will drop it into the Dropbox folder and let the Early Adopters know there’s a new version available. Software development is hard. Product development is harder. Product management is harder still. I am getting there…
6:00 – 6:30 AM
– Check the Buffer(.com) buffer. Load it up with posts for today from andyleonard.blog and a few other sites. Check the results of yesterday’s newsletter campaign. Look over stats from the business websites: – Enterprise Data & Analytics – DILM Suite – Biml Academy – more sales this month compared to last month, most likely due to new content. – SSIS Academy – launched this week and has decent traffic for a newly-launched site. Poke around on social media for a few minutes. I start with LinkedIn and use it more than Twitter and Facebook these days. I really like the Daily Rundown notification and read at least the headlines each day. The article that catches my attention today is about drug companies retracting price hikes or announcing they will not increase drug prices in response to a tweet by the president. I’m drawn to this on a couple levels: 1. Many of Enterprise Data & Analytics’ customers are medical-related. 2. I am a Type-2 diabetic and one of my medications is expensive (~$500/month). (Related: the keto diet I mentioned earlier has helped. I now take 1/3rd of the medications I used to take and my blood sugar is lower.) I also read about Amazon’s Prime Day and how it improved revenue for other online retailers, specifically Target.
6:30 – 7:45 AM
– I get a low battery warning on the laptop. I don’t always bring the laptop downstairs after work but I did yesterday hoping I’d get a chance to look at the SSIS Catalog Compare bug I’d identified earlier in the day. I did have time and I fixed it (I think) – more testing today… I shut down the laptop for now. I make a keto-friendly breakfast for Christy and me and fry up some bacon for Emma and Riley (Stevie Ray is at camp this week). I put Christy’s omelette (spinach and cheddar) in the preheated-and-then-shut-off oven along with the bacon for the kids. I have an omelette and some fried bologna. The keto diet is weird if you’re used to non-fat diets. Fat is part of the keto diet, as are complex carbs. And it’s time for my second liter of coffee. I catch up on some reading while eating. I am currently reading The Holiness of God by R. C. Sproul during mornings and The Culture Series by Iain M. Banks before sleeping. Reading is important and I enjoy both reading and writing. I check the fire a couple times to make sure the wood I added is catching up. It’s not, so I add some more, smaller pieces this time. The wood I put in before sunrise was damp with the light dew. Sitting on the coals has dried it out and the twigs catch in a few minutes. I load and start the dishwasher. I forgot about the clothes in the washer last night – it was a busy and late night for me with praise band rehearsal – so I re-wash that load. I empty the trash and make a run to the landfill, checking the fire on the way out and when I return. It’s burning nicely.
– I get to the office and settled a little before 8:00 AM. The laptop battery is happy (well, happier, as it charges). I contemplate live-blogging the day and decide I will not be able to provide many updates, but it’s worth starting, and so I do. After some proofreading, it’s ready to publish.
Update 1: 8:20-8:45 AM
– I proofread (again!) this post and correct typos and misspellings and verb tenses and… you get the picture. I promise I proofread it in Preview. But for some reason, it’s not the same as reading it after it’s posted.
I pop open Outlook and check my email. Nick has closed another gig for what we call “SSIS Review.” I need to add a page to the Enterprise Data & Analytics website about this service. We’ve been doing a lot of this lately. We typically set the contract at not-to-exceed 40 hours (minimum) and only invoice for hours as they are consumed (unless the customer requests otherwise… some customers have budgets that they must consume within a fiscal year. If the customer requests it, we invoice up front.).
I also see a Customer Status Update from Penny. Penny has been working with Enterprise Data & Analytics for a couple years now. She’s my daughter, Mom to three of my favorite five grandchildren, and quickly becoming a senior SSIS developer. I’m proud of her.
Time to hit Update and post about this post on social media.
Update 2: 8:45-9:45 AM
I restarted vDemo and starting walking through the script for today’s webinar.
I put the wash in the dryer and started a new load. I propped open the dishwasher so the load that just finished will dry faster.
I checked the fire again and, durnit! Still not going like I want. I added some more small stuff and let it set for a while. It’s started burning well as you can see here.
Webinar script rehearsal is complete and was successful.
Update 4: 10:45-11:45 AM
Took a break away from the laptop. Why? I like to do something else before presenting – something… different. Plus it’s a gorgeous day in Farmville Virginia with surprisingly low humidity for this time of year. Emma and I took advantage of the remaining coolness of the morning and piled some brush near the burn barrel.
It’s now time to start the webinar.
Update 5: 11:45 AM-1:15 PM
The webinar is done and, by all indications, was a success. It’s lunch time!
Update 6: 1:15-2:30 PM
Lunch was keto-friendly, of course. A salad and a meat-stuffed squash.
Christy and I dropped off her van across town. It needs new tires. The shop tells us they can get it done today which is great because we have a couple other errands to run this afternoon – we’re meeting friends from church and I am getting a haircut (or several hairs cut…).
I edited the PowerPoint and lab document for the upcoming SSIS Academy Data Flows 2 course. Online courses take probably more time to build than you think – especially if you do it right. I spent a lot of time documenting the Data Flow 1 course. I’m spending just as much time going through the documentation for the Data Flow 2 course, editing and clarifying. Why? I don’t want to have to try to remember (or figure out) the mechanics of publishing a course each time. I want to spend my brain cycles on developing awesome courses!
At this point, I’ve been at it for over 12 hours. Do you know what entrepreneurs call a 12-hour shift? A half day.
Update 8: 4:30-6:00 PM
I updated pages at Biml Academy, SSIS Academy, and Enterprise Data & Analytics.
The shop finished with Christy’s van so I took her across town to pay for the work and pick it up.
I folded the last of the clothes.
I captured the video and began editing the audio script for SSIS Academy Data Flow 2 lecture. I hope to record the lecture audio tomorrow but it may have to wait until Saturday – tomorrow we pick Stevie Ray up from camp.
It’s time to take another look at the burn barrel, grab supper with the sexiest redhead on the planet, watch some Food Network, read some Culture Series, and then get a good night’s rest.
Knowing this doesn’t help; I still keep a few pet peeves. One of my pet peeves is this statement, “You don’t know what you are doing.” Why is this a pet peeve? It denies the obvious fact that everyone one of us, everywhere, is still learning.
“My Name is Andy and I Own and Operate a Consulting Company.”
“But Andy, you don’t know how to own or operate a consulting company.” That may or may not be a true statement. What is a truer statement? I may not know everything there is to know about owning and operating a consulting company, but I can learn.
“My Name is Andy and I Built a Software Product.”
“But Andy, you don’t know how to build a software product.” That may or may not be a true statement. What is a truer statement? I may not know everything there is to know about building a software product, but I can learn.
Interesting sidebar: SSIS Catalog Compare is not only the first product I’ve ever written, it’s the first complete application I’ve written in C#.
“My Name is Andy and I Co-Host a Successful Podcast”
“But Andy, you don’t know how to co-host a successful podcast.” That may or may not be a true statement. What is a truer statement? I may not know everything there is to know about co-hosting a successful podcast, but I can learn.
What is someone truly saying – what do they truly mean – when they say or write someone doesn’t know what they’re doing?
They’re making this statement about themselves: “I couldn’t so you shouldn’t.”
No one brings this point home better than Grant Cardone in his book (get the audio book – you are welcome), Be Obsessed or Be Average, or #BOBA. The followup to his (awesome) book, The 10X Rule, Be Obsessed or Be Average complements and completes Cardone’s thoughts on the hard work and time required to achieve success.
“What is the Point, Andy?”
When people make statements like “You don’t know what you are doing,” they are saying, “I gave up so you should give up, too,” or, “I didn’t get what I wanted so you don’t deserve what you want, either.”
This is very fair thinking.
When I write the word “fair” I shudder at what “fair” has come to mean and how it’s been used to justify junk and the crap it’s been used to rationalize.
I am not going to quit learning. I will continue to try to make old things work better. I will continue to try new things. I will fail more often than I succeed (this is how I learn). I will not stop until I go home.
My advice, encouragement, exhortation:
Make the problems give up before you do.
Listen to people who have succeeded (or are succeeding).
Why do I love personal best? It’s the best kind of competing, competition with past-Andy.
I want present-Andy to do more and be better every day. A mentor once described this as, “Strive to suck less each day.” I can identify with that sentiment! I prefer the positive motivation I get from measuring things like weight, steps, diet, exercise, and other health parameters (blood sugar, for me) with SMART goals applied.
I measure things like days-in-a-row I didn’t cheat on my diet. While this is particularly depressing when the number drops to 0, building that number back up to the previous personal best is powerful motivation to not cheat. This kind of goal provides both negative and positive reinforcement.
I can measure the results of remaining on my diet in other ways, too:
My blood sugar returns to normal.
I lose weight.
I feel better.
And – surprise benefit from the keto diet – I’m less tired.
There are things beyond my control and SMART goals help me recognize this fact of life. For example, I cannot change the fact that I am aging at a rate of 1 s/s (1 second per second). But I can change what I do with each second. I don’t always get it right. But that’s a key part of a philosophy of personal best: It’s no longer about a Boolean outcome, right (achieving a single metric) or wrong (missing that metric in any of a thousand different ways), it’s simply about improving over the past personal best. Does a single metric goal exist? Heck yeah! But that goal is now seen as a milestone on a trek of never-ending personal bests.
Each personal best is a win. Each personal best is cause for celebration. You can achieve a personal best today, I know you can!
The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.