Test-Driven Development (TDD) for the Non-Developer

When I got hired at the Credit Union as the Principal Software Developer, one of the major elements of the job is to define how software development is to be done at our Credit Union.

One of the things I frequently mention is that ever since I took over the Principal role at the credit union, we became a TDD shop.

What if you’re not a developer, and don’t know what TDD is about? What about if you just learned what the acronym TDD means?

Test-Driven Development (aka TDD) is a model of writing software defined by a particular practice; specifically, writing automated tests before writing the software itself.

This model directly contrasts with the approach of testing the software after it’s written.

It’s a very low-level coding process, sometimes called ‘Red / Green / Refactor’ (as the tools that execute tests typically indicate failed tests in red and passed tests in green.)

An Example workflow:

  • I write a test, and it initially fails. (RED).
  • Then, I write code that causes the test to succeed (GREEN.)
  • I write another test, that initially fails (RED).
  • And once the feature is complete, I refactor the code, while maintaining green passing tests.

This creates two products. The software itself, and the tests that verify its functionality.

Software is a complex piece of machinery that is easily and regularly changed, and those regular changes can cause unexpected flaws. Those tests, when automated to be as a part of the build itself, can help prevent those unintended errors. Updates to dependent systems are made easier, as software typically talks to a database, or services, or libraries, and those updates can be tested quickly, with minimal human intervention.

They also enforce a level of rigor in the system design. Developers build systems that are designed to be ‘tested’.


So why does this affect you if you don’t write code? As written, this seems like mainly a developer function.

The thing is, the technique is entirely a developer technique, but the TDD mindset is the true switch

Start with the tests. Ask yourself: how do you know the software/thing/system will work?

Say you’re a Business Analyst or a Product Owner on the fence about a feature, how will you know your feature will work? How will you know it’s effective?

You know what the feature is. You know WHY the feature should exist, and that’s normally enough to prioritize it (or not) on the backlog.

Take the TDD approach and start with the tests.

  • How will you know that the feature works?
  • What is the test that will prove the feature is valuable, and useful?
  • What would be a test that would NEGATE that assertion?

Or say you’re the analyst working on the requirements for that feature, and you’ve fleshed out all the details of the fancy new automation your team is working on. How will you KNOW that automation is adding the value that you think it should?

If you’re automating a bad process that shouldn’t even exist in the first place, could you tell?

If you’re saving the company money, how much, and how will you tell?

For a more concrete example, say you’re a UX designer. Many UX elements are discretely testable, but what about the UX being “intuitive”, or aligned with our UX strategy?

Is the information you’re presenting easier to understand, or harder?

How do you know?

Say you’re an executive, a director or VP, or even a C whatever O. You have a vision for your organization, and where we are going.

How do you know it’s working? What is the test that drives your decisions?

What is the test that lets you know your vision is communicated well, and that everyone is marching to those orders in the same direction?

Would you know when to turn around if you’re making a mistake? Or would that mistake have to linger a bit for you to know it exists?

Like software, companies and organizations are complex machines that regularly change, and those regular changes can cause unexpected flaws.

These examples have been presented in a series of questions, as this is fundamental to the TDD process I described above. Designing a code snippet, function, feature, automation, UX, or company with the tests-first helps define your knowledge, and the information you’re trying to get.


To sum up: Define your tests first. Define what you want, and how you’ll determine that you’ve gotten what you want. Define how you’ll measure your effectiveness and measure how you’ve achieved it.

Write your tests first.

P.S. For further reading about TDD for the Non-Developer, take a looksee at this post from IExtendable.

Family Visits, Moms, and how AVG software is the worst

My mom had a huge impact on my technical career. My natural inclination to screw around with computers was well-nurtured but with a simple caveat.

“Everything better work by the time I get home.”


This past weekend I spent a few days in Pullman, visiting with my mom before she had to go back to school. My mom is a speech pathologist, and her school year started Monday.

Every time I visit, there’s always something she’s got waiting for my help with. Things too heavy to pick up. Things too tall to do without a ladder.

This time it was a question about her computer.


All tech people hate this, by the way.


“My computer seems to be slowing down pretty bad. Do you think it’s time for a new one?”

Her computer is 10-years old. Athlon II. 4GB of RAM.

Me – “Probably, but let’s take a look.”

Looking around, there were half a dozen programs that she’d stopped using 5 years ago, and a bunch of pictures from 2013. Aside from Zoom meetings and the the occasional Excel (Excel 2007 by the way) she didn’t actually touch much. But it was SLOW. Get up a go get a cup of coffee after you clicked a shortcut slow.

Me – “Show me how you normally start this up.”

She did. Turned off the box and after a few seconds, turned it on again. First thing she did was an AVG ‘scan.’

That ‘scan’ did something? And then her computer took multiple minutes for even starting up a notepad window.

Her – “See that? Seems like the computers giving up the ghost huh.”


Turns out AVG appeared to have a nasty bug that was opening hundreds of threads and leaving them open.

Hundreds of open threads hanging out, while AVG’s “Tune Up” application suggested she close OneDrive.


Funny thing happens when you shutdown down AVG software. It comes back. You can shut off services (they’ll come back on), uninstall the products (services stay on the machine, and start running again after a reboot), and change registry entries. AVG will still come back and try to convince you to let it ‘inspect’ things.

Frankly, for an ‘anti-virus’ software, AVG has a lot of ‘virus-y’ features.


Fortunately, Windows 10 has a pretty nice feature. Resetting to a clean install. Worked like a charm.

I did convince mom to buy the newest version of Office, but once that was done, she had everything working swimmingly. Faster than it had been in years.

Not fast by my standards, but extremely fast by hers.

Her – “Wow, it’s like I have a whole new computer!”


My professional opinion: AVG makes terrible software, and I recommend that you never install anything from them.


The photo is from my drive into town. It’s right on the 270, just as 195 splits off on Davis Way.

The credit union I work for put up the sign. Folks were there taking pictures of their kids being dropped off at school, which will be a great memory they’ll appreciate for a long time.

Things That Require Zero Talent and Other Garbage

Have you ever seen a meme like this?

10 Things That Require Zero Talent
‘It’s YOUR fault you aren’t good enough!’

It’s absolutely a lie.

Every one of those things requires a great deal of talent.

However, it is not that magical ‘talent’ that makes you say “I just will never be as good at <<something>> as <<someone famous>>.”

The truth is: talent is not natural aptitude or skill. Talent is the result of a great deal of work that appears natural to the outside world.

That’s the trick. Talent LOOKS natural, but it isn’t.

Everyone of those listed “no talent required” items relies on a great deal of work with a massive support structure. They require preparation, support, and unseen (and often underappreciated) work.

Example: Being on time

  • Someone had to get your kids out of bed, and logged onto school.
  • Your commute needs to be reliable.
  • Your home needs to be stable.

Did all that happen by itself? Magically?

Example: Making an effort or being high energy and having a positive attitude?

Someone had to give you direction, so you know what you’re trying to do. Someone had to make you feel like your efforts would matter.

Where’s all this work accounted for in the ‘no talent required’ posters?

The being coachable one enrages me because it absolutely requires a great deal of effort. I posted specifically about how to do it. It ain’t easy!


Consider some of the most talented folks you know, whether or not you’re talking about music, athletics, or software development. How many of them sit around and not actively practice their “talent”?

Stephen King is one of the most talented and prolific writers on the planet. He told us how he does it in his book On Writing: A Memoir of the Craft. It’s a wonderful and inspiring book.

Wanna know the secret about how he stayed so prolific? He wrote a lot. He needed a support structure for his writing: a teaching job early in his life, a very patient spouse, and in the end he wrote a lot. That’s all it was.

From a distance though, he’s looks talented.


Talent is the result of a great deal of work, combined with a great support structure. Remember to nurture both.

Goals Check-in, and a Streak broken.

Well, it’s been about a week, and some major items have happened on the goals front. From my one year goals, I have added a new column: Where I’m At. You don’t know how long it takes to get somewhere, unless you know where you’re starting.

1 Year / January 2022

CategoryGoalWhere I’m At
CareerCredit Union.
Principal Software Dev. Knowing what I’m trying to do, and who I’m helping.
XXK a year? *
96%.
Blog, 200 Followers21
HomeCondo: Owe $236K on it. Kitchen remodel completed.Refi complete.
HealthWeight 230-235, 20% body fat? Maybe down to 2 blood pressure pills?
Check if this is possible?
253lbs. (I wear it well? Ugh.)
5x a week Xfit
occasional weightlifting, running for 4-5 miles weekly
biking for 15+ miles biweekly.
5x Xfit.
Weightlifting on Sundays.
Biking for 10 miles
< Redacted > *Dr. Scheduled
TravelWalla Walla for a wine visit
Long Beach a few times.
FinanceRetirement accounts funded to legal maximum401K 85%.
IRA, 75%
Investing $250 per month$75
Full 2 months ahead in YNAB.1.25
FamilyHappy + Healthy.
Zoe should be driving (Sasha, most of the time.)
Generally.
PersonalGuitar LessonsUdemy courses purchased.
StuffNew PC, Downstairs wine fridgeNew PC achieved!
New TraegerSpec’d out!
KayaksSpec’d out!
* I redacted as none-of-ya-bizness.

The big thing so far is the new PC. That had been on my list for quite a while, and I was 90% of the way there when I had made the list up, but I wanted a quick win.

Built it up myself. I’ll wait for the 3070 to come out to upgrade the video card.

Funnily enough, one of the best features of adding this column is finding out the stuff I DON’T know. I don’t know my current percent body fat. Last I had it checked (near the beginning of the year), it was 23.9%. I’ll have to get another test on the books.

The weight will be the biggest test. Trying to drop 20 lbs while maintaining and upgrading the muscle mass is going to be a big challenge. Fortunately, I have about 15 months to do it.


Unfortunately, I did break the streak. On 9/7, I took the dogs to the park first thing in the morning, and completely forgot about my hand release push ups. Streak ended up at 48 days.

Oh well. I’ve got the streak back to 6 days, and I’m doing 3×18 now, so very much passing the 50 push ups a day milestone!

Checking In : Don’t Break the Streak

Well, since the don’t break the streak post, I have continued on my streak of hand release push ups. I’m currently on 40 days.

In order to move the chain up a bit, I’ve been adding one rep every 8 days or so. Today I did 3 x 16, and tomorrow should be a level up day.

It still takes about 5 minutes. The first two sets go fairly quickly.


One thing that keeps this one up is it’s time scale. 5 minutes, maybe a few more if I pad the rest session. Knowing ‘alright, it’s only 5 minutes’ makes it easy to quickly get through.

It’s certainly had some positive benefits as well. Push ups in WODs in CrossFit classes are SO MUCH EASIER right now.

The kids make a bit of a show out of it too. Nothing like being in the middle of a push up, and have a 120lb 12-year-old boy sit on your back and say “Keep going Dad!”

What Life Looks Like

I was listening to the Mapped Out Money podcast, and they mentioned a method for listing out goals, in sort of a road map. Personal goals broken out in 1 year, 3 years, 5 years, and 10 years. That method was about deciding what “life looks like”.

The idea within the podcast was to take what “life looks like”, and work back from there. E.g. Wanting to save $15K for a (I think it was a car down payment?) in 3 years, works to $5K a year, and $1250 every 3 months, etc.

So I thought I’d try it, and put it here to help hold myself accountable. I went ahead and padded my start by 4 months, to make everything start on January. Writing that down makes me realize how it was solely decorative to do that. Oh well, here goes:

1 Year / January 2022

CategoryGoal
CareerCredit Union. Principal Software Dev.
Knowing what I’m trying to do, and
who I’m helping.
XXK a year? *
Blog, 200 Followers
HomeCondo: Owe $236K on it.
Kitchen remodel completed.
HealthWeight 230-235, 20% body fat?
Maybe down to 2 blood pressure pills?
Check if this is possible?
5x a week Xfit
occasional weightlifting
running for 4-5 miles weekly
biking for 15+ miles biweekly.
< Redacted > *
TravelWalla Walla for a wine visit
Long Beach a few times.
FinanceRetirement accounts funded to legal maximum
Investing $250 per month
Full 2 months ahead in YNAB.
FamilyHappy + Healthy.
Zoe should be driving
(Sasha, most of the time.)
PersonalGuitar Lessons
StuffNew PC, Downstairs wine fridge
New Traeger
Kayaks

* I redacted as none-of-ya-bizness.

Career. I’ve only recently started at the Credit Union since February, 2020 and the slogging through COVID times makes me feel like it’ll be a bit before we get a ton moved along. I am hoping the blog picks up to 200 followers, mainly to increase the habit of writing.

Home: This one was easy. I just looked at my mortgage amortization table to see what I’d owe by then, figuring I’d make normal payments. We’ve saved for a remodel of the kitchen as well, and the plan is to have the remodel all the way done by then.

Health was the one I spent the most time specifically looking at defining specifically. I already check a lot of the boxes. I do CrossFit 5x a week. I’m close to 20% body fat (I think, I should get that rechecked.)

Travel: I don’t really have a lot of desire to travel too far right now. By January 2022, Walla Walla for a winery visit seems like a great idea, and I’ll go to Long Beach as often as I can, but big trips seem unwise.

Finance: I’m a personal finance nerd, so the first one is a no-brainer, and I’m absolutely loving YNAB so pushing myself to get to a 2nd full month completely budgeted will be a real stretch, but the investment account has never been the highest priority for me. Time to change that.

If you’ve never heard of YNAB, check it out here. If you want to subscribe to YNAB, use my referral link and they’ll give me a free month. It is really a game changer in terms of the way you think about budgeting though. It’s already paid for itself 4 times over by the way I use my cash-back credit card now.

Family: I didn’t have a lot of goals here. I just want everyone happy and healthy. I kinda think they should set their own goals here. I’ll probably tell them to do so.

Personal: I have never been very serious about my guitars. I think this next year I can get around to setting up some lessons.

Stuff: I’m not really a “stuff” guy. I like having less stuff, but there are a few things I’ve been genuinely thinking about. A new PC because my current desktop is 8+ years old (I build BIG PCs, so they tend to last.) A wine fridge downstairs, because I hate not having one down there (we have 2 upstairs, and keep ~80 bottles, but having table wine available in the dining room would be nice. The Traeger I have is 12 years old, rusting through, and the wife would like to be able to grill more. They have a combo smoker-grill I’ve been looking at. Finally, I think it’d just be too fun to get some inflatable kayaks so I can walk across the road and paddle over into Lake Washington.

3 Years / January 2024

CategoryGoal
CareerCredit Union.
Happy in my job.
Knowing what I’m trying to do,
and who I’m helping.
XXK * a year?
Blog, 2500 followers
1 Book Written (Published?)
HomeCondo. Owe <$200K on it.
HealthWeight 215-220,
17% body fat?
Maybe 1 blood pressure pill
5x a week Xfit
occasional weightlifting
running for 10-15 miles weekly
biking for 25+ miles biweekly.
TravelWine trips to Chelan
Walla Walla
maybe Oregon?
FinanceRetirement accounts funded to legal maximum.
Investing account $600 per month
5 months ahead in YNAB
FamilyHappy + Healthy.
Zoe should be in College.
Lydia driving?

* I redacted as none-of-ya-bizness

Not much changed in 3 years. I’m still planning on working at the Credit Union. I may be in my same Principal role, but maybe I take over a business unit? Or move into Architecture? Or take my bosses’ job… who knows.

I know I want my blog following to get bigger, and ideally, my writing to get to a point where I have put a book together. I don’t know how to do that yet, but I’ve read a lot of crummy books, so it can’t be that hard.

I really only bumped up some of the numbers on Home, Health and Finance figuring that was just a longer trail to the same thing. I’m hoping to have put more cash against my mortgage, so that I chip that down a bit more, and move more money into the investing account. Getting 5 months ahead in YNAB would be pretty darned incredible, but in 3 years, it seems doable.

Stuff seemed needless to think about (it’s just stuff, ya know?) I did want to do some more wine trips though, specifically through Oregon and Lake Chelan.

5 Years / January 2026

CategoryGoal
CareerBECU. Happy in my job.
Knowing what I’m trying to do,
and who I’m helping.
XXK * a year?
Blog, 15000 followers
1 Book Written and Published
Speaking at conferences?
HomeCondo. Owe <$160K on it.
HealthWeight 210 +- 1%, 16% body fat.
Generally quite active.
TravelNew Zealand
FinanceRetirement accounts funded to legal maximum.
Investing $1000 per month
FamilyHappy + Healthy.
Zoe and Lydia in College as students.
Emerson Driving.

* I redacted as none-of-ya-bizness

Big changes in 5 years. I’m hoping to have a book written and finished, and with 15K followers on a blog, maybe have enough folks who may actually buy the thing. Regularly speaking at conferences too. I do so irregularly now, so in 5 years, becoming someone who is requested to talk would be great.

Health goals were simplified a bit. I’m not really thinking about specifics anymore. Just being someone you’d describe as ‘quite active.’ Investing is still moving forward at a solid clip.

I would like to visit New Zealand in 5 years to wine taste through their Sauvignon Blancs. That was about all I could think to add.

10 Years / January 2031

CategoryGoal
CareerXX* K / year. Loving what I do.
2 Books Written and Published
HomeCondo – Paid for and renting out. Living in Seaview?
HealthWeight 190 +- 1%, 14-16% body fat.
Generally quite active.
FinanceInvesting bulk of income.
FamilyHappy + Healthy. Emerson in College.

* I redacted as none-of-ya-bizness

The 10 year goals are pretty high level. 2 books written and published. Probably working at the Credit Union, but regardless, loving what I do. Condo is paid off and maybe being rented out, while Heather and I live somewhere else (I mentioned Seaview, because that seems the most likely destination right now.)

It’s a pretty big jump on the weight side, but 20 pounds in 5 years isn’t THAT big of a drop, and I’ll be over 50 by then, so being smaller will definitely have its benefits. Financially, hopefully I’ll be investing most of my income.

Those are my goals. The nearer ones are more specific, and more easily actionable, and SMART folks will notice each of them generally has a number associated with it so I can figure out whether or not I’ve achieved it. The 10 year goals are pretty non-specific. Even something like ‘investing bulk of income’ could just mean 51%.

I hope this post inspires you to think about your own goals. I know I’m thinking about ’em.

The Power of a Great Demo

I went to school at Western Washington University and got a degree in English, with a concentration in Creative Writing. In damn near every writing class, you’d hear the same 3 words. Show, don’t tell.

Independent of writing style, a scene inspires and communicates more. A quick example:

Version 1:
Bob was hurt and furious after Marie’s “I miss you.” text. “2 months and this shit?” he thought.
vs
Version 2:
The phone buzzed. A text. Marie: “I miss you.” Bob’s eyes watered a bit as he tapped the 3 dots, and hit ‘Block.’


I bring “Show, don’t Tell” up because, although it’s been embedded in my brain for the past ~20 years, a recent beer-night conversation with a friend (Hi Branden!) reminded me of those words. He was talking about the power of a good demo. Having tech to show off is simply more compelling than a simple conversation.

If you want to try something new, or convince someone of your idea, remember Branden and his idea. Show, don’t tell.


A developer I’ve been coaching finally executed a great demo on Angular for our weekly developer meeting. She spent nearly 3 months learning Angular. Her demo contained a soup to nuts implementation of a site, including tests, test coverage, a CI / CD pipeline deploying the site all the way to an azure site. She did this demo over the course of 45 minutes.

I was thinking about what sort of conversation it would be if she didn’t have the full demo. Maybe 5 minutes? Maybe she’d have been overruled, or even redirected to another technology.

But a full demo? She had the whole group listening.

Power Through, Part 2

As I left you in part one, I was in a pretty poor state. I was 34, 320 pounds, and I had been diagnosed with an extreme blood pressure event and congestive heart failure. Since I was still up and mobile, the doctor decided to start with drug treatments to clear out my lungs and get my blood pressure to a reasonable state.

I remember him saying that if the fluid didn’t clear on the drugs, I’d have to go in to the hospital. The fluid cleared.

I don’t remember taking a day off of work.


Early December of 2017. I was picking up Heather from her CrossFit gym. While she finished up the last of her workout, the owner of the gym approached me about a “new years new goal” thing.

For $100 bucks, I’d get daily access to the gym and a meal plan to follow for 3 months.

That gym owner had sponsored my daughters’ softball team for 3 straight years. I knew I wasn’t in the greatest shape, but I figured I owed him. So what the hell.

First thing was a meal plan date. I sat in a room with about a dozen and a half other folks talking about meal planning. Some folks were hardcore athletes, basically looking to bulk up and grow muscles. The rest were normal ‘trying to get fit’ folks. Folks that weren’t out of shape at all, but wouldn’t mind looking for a bit more than your standard “New Years Resolution.”

Then there was me and two others. We were the Bigguns. I was still over 300lbs but the other guy made me look small. He was 6’8″, and probably 360lbs. His wife made up the last of our group. Topping out at 5’4″, she was near 225lbs at least.

We had a long road.


To be continued…

Awesome Sauvignon Blancs

I’m a fan of Sauv Blancs. I drink a lot of wine from Washington, but I’ve been recently opening up my palette to New Zealand Sauv Blancs. I love a bright acidic push. I love the cool mid palette rush of New Zealand, but the dull fruit of Washington has a wonderful place.

Here are the Sauv Blanc’s I’ve been happiest with this past year.

I haven’t found a California one worth the hype yet.

Heather sitting under the Pergola, last year at Tildio.

Fidelitas Tasting Notes – 7/31

I got an email the other day advertising Fidelitas’ Canyons Malbec. I had to head in for a tasting!

2019 Red Mountain Semillon – Honeysuckle and creamy. Just a hint of acidic fruit on the finish.

2019 Optu White Blend – Gourgous and perfect for a hot day. I would have opened the tasting with it if I could have. Light floral nose. Beautifully fruity mid palate, with a hint of strawberry and peaches. Delicate finish. Outstanding stuff.

2017 Red Mountain Merlot – A standard Big Red Merlot from Washington. Lovely, but not what I was looking for that day.

2017 Optu Red Mountain Red Blend – Dark. Minerals and chocolate. A hint of plum on the finish. I felt a bit silly sitting outside on an 85 degree day in Woodinville drinking it. This felt like a good November evening wine.

2017 The Canyons Malbec – This was what I came to try. Nose was all dark fruit and baking spices. Palate was blackberries and honey. Just enough tannins to take notice. Long long long finish.