I am a podcaster now!

Over the past two weeks, I have been a guest on two podcasts The Mob Mentality Show and the Dev Ed Podcast. These two recordings have been my first ever experiences on a podcast and I have to say they were both lots of fun! As of right now, the two recordings are not live but expect posts in the upcoming weeks highlighting the recordings.

On The Mob Mentality Show, I got to talk about my recent presentation at the Pacific Northwest Software Quality Conference on Creating Quality with Mob Programming. I also got to talk about my other experiences as a mob programmer for the past 4 years.

For the Dev Ed Podcast, the topic was ASP.Net. I have a course coming out very soon on Thinkster.io teaching how to create a C# ASP.Net Core API so that is why the topic was ASP.Net. I got to speak to ASP.Net but also my experience as a university instructor.

When the two podcasts are live and out in the wild I will be sure to update the post with links! Also, I hope to be a part of many more podcasts in the future.

What are Structural Directives in Angular?

Structural Directives in Angular modify what is displayed in a view. They live directly in the HTML. They modify our HTML by adding, removing, or manipulating elements.

Why are they called structural directives? It is because they modify the structure of the Document Object Model (DOM).

Structural directives are easy to spot. They will begin with an asterisk (*). And the two most common structural directives are *ngIf and *ngFor.

Above is how we use a *ngIf. The if statement will evaluate on TheTomBomb and only if that is true will it include “Thomas is the best” into our DOM and viewable to the user.

If TheTomBomb evaluates to false “Thomas is the best” will not display. And not only that, but it will also not be present in the DOM.

The above *ngFor will print out a list of website url’s. The websites variable is a list of websites and we will loop of that and generate a new <li> for each one in our collection. So a new <li> element will be created in the DOM for each item in websites.

Structural directives are popular and give us added capabilities inside of our HTML. *ngIf is perfect for showing and hiding data. *ngFor is great when we need to generate repeated HTML.

To learn more check out the Angular documentation on Structural Directives.

What is Test-Driven Development (TDD)?

At my organization, we utilize test-driven development (TDD) to develop our software. To get a better understanding of TDD myself, I want to put together a post about what is test-driven development.

What Is a Test?

Before jumping straight into TDD let’s define what a test is. A test is something that verifies that our code works as we expect it to. Typically, this is a procedure or method that executes and asserts that a given valid response is received.

With a test, we verify that our code solves the problem it was intended to solve. That given a particular set of inputs and setup we get back the responses or see the changes that we would expect.

What is Test-Driven Development?

Test Driven Development

TDD can be defined as a programming practice that instructs developers to write new code only if an automated test has failed. Guru99

The above definition is from Guru99. Let’s break it down and I will put TDD into my own words.

The code we develop is driven forward by our test hence, Test-driven development. We write our test first before the implementation has been written. Making sure the test fails and for the right reason. Our test asserts proper functionality. Our test should satisfy the requirements of the software.

We then write the code that makes the test pass. This means our production code is already under test because we wrote the test first.

Red Green Refactor

Red Green Refactor is an important concept in TDD. Above I described how we wrote a failing test this is the red. Then we wrote the actual implementation code to make the test pass this is the green.

We have made it to the refactor step. Now that we have code written that is tested we can feel comfortable to refactor it. Maybe we see code duplication or any number of code smells.

With the tests backing us up, we can feel comfortable modifying the code running our tests and ensuring we are still green.

The simple definition of Test-Driven Development is that we write our tests first. The code is tested from the very beginning. We gain the confidence to refactor and improve our code.

Expect more posts on TDD as I expand my own knowledge of test-driven development!

PNSQC 2019 Talk Complete! Creating Quality with Mob Programming

PNSQC Culture Of Quality 2019 Logo

This week I had the pleasure of attending and speaking at the Pacific Northwest Software Quality Conference (PNSQC). This is my second time attending the conference and my first time presenting at this conference or any conference for that matter.

I wrote a technical paper and gave a presentation on Creating Quality with Mob Programming. Writing the paper was the most difficult part. I had not written a research paper in years. But it all came together and after writing the paper the presentation was easy. In addition, the presentation has boosted my confidence and makes me want to submit talks to more conferences.

Unfortunately, the archived links of the paper and presentation slides are not available yet, but I will update this as soon as they are.

The presentation was well-received. It sparked great conversations with people interested in learning more about Mob Programming. It helped to inspire a renewed passion for Mob Programming and reinforced that we must be doing something right.

Michael Larsen attended my presentation. He was generous enough to write a live blog post on his thoughts on Mob Programming. Check it out here! (https://www.mkltesthead.com/2019/10/creating-quality-with-mob-programming.html)

Without a doubt I want to attend and potentially speak at another PNSQC conference. The people, content, and downtown Portland location are great.

Thanks again PNSQC 2019!