Each month I’ll talk about:
- What quality trends I’m observing or discovering
- New libraries for testing or otherwise improving quality
- What I’ve been up to this month
- What articles I’m planning for the near future
New Libraries & Tools
There are a few new or updated libraries out to keep an eye on:
Copycat – Initial Release
Copycat is a new browser extension for recording and replaying web UI tests without relying on scripts or external applications. I’ve yet to look into it in depth, but plan on drilling in more and let you know what I think.
TypeScript – 3.7 Release Candidate
TypeScript 3.7 offers a ton of new improvements to the language and just hit release candidate. I’m really excited about this one and will do an in-depth article on it in the near future.
Snapper – 2.2.0 Release
I’ve written before on Snapper, a .NET library that gives you the same snapshot testing capabilities as Jest unit tests. Recently version 2.2.0 came out which adds support for those using MSTest to power their unit tests.
I know this list is very limited. If you notice something in November that you’d like me to include in my next article, let me know!
I’ve had the opportunity recently to look over some thesis papers on the topic of defect prediction. This is a really interesting topic.
The basic idea is that metadata about commits or files that include defects are used to predict what files are likely to contain other defects. This algorithm is called bugspots.
Maximillian Scholz took this a step further with his bachelors and masters theses in the concept of linespots. Linespots looks at individual lines which may or may not contain defects.
If you’d like to learn more, a good stepping off point is Maximilian’s talk at the EuroPython conference in 2017.
I don’t have any concrete next steps or detailed thoughts on applying this topic, but it’s something that I’m still thinking over. I’d be curious to hear your own thoughts.
October saw the launch of www.KillAllDefects.com. While I love dev.to and enjoy Medium, I wanted an easy-to-remember central place to refer people to who wanted to find more thoughts on software quality. Now my articles are posted there, then shared to other sites.
In complete honesty, I do dream of writing a technical book at some point down the road, and having an established audience could help in that endeavor.
In October I published the following articles:
- Communicating Tech Debt
- Strategies for Paying Off Technical Debt
- Addressing Tech Debt without Killing Quality
- F# Squirrel Brains: Adding Actors and Getting Functional
- How C# 8 Helps Software Quality
- The Worst Bug I Ever Caused
- Caller Member Info, C#, and You
- Functional Debt: The Price of “Yes”
- Less Code == More Quality
- F# Unit Testing – Refining the Squirrel Simulation
- WPF Core with F# Libraries
- Cyclomatic Complexity is the Mind Killer
- Migrating to TypeScript
- Safer C# with the nameof operator
So, I’ve been busy!
When I look at this list, I see a few big articles as well as some smaller one-off articles and as well as an unusual series in F#.
The F# series isn’t as centered on quality, but more of a structured introduction to a variety of .NET programming topics. The series should come to an end in November.
Going forward, my goal is going to be one larger tutorial or in-depth article each week and two smaller ones. I also want to publish one thing on .NET, one thing on web technologies, and one general article each week
In November, expect me to explore the following topics:
- .NET Code Analysis with NDepend
- What’s New in TypeScript 3.7
- TypeScript linting with ESLint
- Code Formatting with Prettier
- Exception Tracking Services and their role in application quality
- Thoughts on Code Coverage
- Implementing Genetic Algorithms in .NET with GeneticSharp
I also am aiming to get my slides finished for my talk in January at CodeMash 2020.
That’s it for this time!
I love to adapt my writing to fit the needs of the community. If there’s anything of particular interest to you, please let me know in the comments or contact me on twitter.