Steve Fenton

Home

Steve Fenton is a four-time Microsoft MVP for developer technologies. He’s a Software Punk, an author, a programming-architect, a pragmatist/abstractionist, and a generalising-generalist. His day job spans the worlds of Product Management, Data and Analytics, Support, and Software Development. These are brought together in the DITE Cycle. Like many of you, he’s too busy to remember all of this stuff, so he writes it all down here.

Steve studied Psychology at OSC, and Anarchy in the UK: A History of Punk from 1976-1978 at the University of Reading.

A Note From Steve

The primary audience for the writing found herein is me. It’s super-easy to forget stuff if you don’t write it down, as I did the second time I had to fix a really tricky certificate problem in .NET. If only I had written down the answer, I could have saved hours of irritating replays of all the same steps I had used to find the problem in the first instance. My goal in life is to start a punk revolution in software development. I am also secretly S. M. Fenton the author of The Vanishing Room.

Recent Thoughts

You can review my full archive of thoughts, but the most recent entries are listed below.

The Ultimate Productivity Suite Posted in: Process - If we were honest with ourselves about the number of hours we might have left to live and the amount of stuff we would like to get done, we’d have to admit that it isn’t all going to get done. Even based on our more optimistic estimates of longevity, it’s not going to get done; […]
New Teams Insights Features Posted in: Process - This is just a quick note about some new features in Microsoft Teams. The wrapper feature is part of Microsoft Viva and is called “Insights”. Once you add it, you’ll have a new tab in Teams that has a few tools to boost your life. There are tools to track your emotional awareness, which keeps […]
A Perspective on Laws of Software Development Posted in: Programming - There are two basic types of natural laws, or laws of nature. Universal and probabilistic. Universal laws of nature state the when you find one thing, you will always find some other specific thing or things. Probabilistic laws of nature say that things are commonly found together. Some examples may help. If you drop a […]
C# Namespace Declarations Posted in: Programming - Unlike my recent article on Global Using Statement and Code Clues, the new namespace declarations have no trade offs and you should just auto-fix them in your whole project and move on with your life. Here’s how we do namespace before namespace declarations: namespace Fenton.Sample.UI { public class Example { } } …and here is […]
C# Caller Attributes Make Tracing and Logging Easier Posted in: Programming - If you wanted to include information about your source code in a trace message, there would be quite a lot of prep work to do before you could actually write a message out. Let’s use the below WriteTrace example to show what this does to your application. public void WriteTrace(string message, string memberName = "", […]
Stripping Times from Dates in C# Posted in: Programming - This is a surprisingly common problem in C#, where you need to take a DateTime and strip off the “time” bit to leave you with a representation of a day. Currently, you can do it by creating a new DateTime and passing only the parts you want to keep, like year, month, and day. DateTime […]
DotNet Publish, GitHub Actions, and Octopus Deploy Posted in: Automation, Programming - This was the first time I needed to create an end-to-end process with GitHub Actions and Octopus Deploy. Here’s how I did it. The set up is a .NET (Core 3.1 currently) website that has an existing Publishing Profile that I have been using to create the artefacts as I’ve been testing different hosting scenarios. […]
Type Coercion vs Type Conversion Posted in: Programming - The key difference between type coercion and type conversion is that type coercion is always implicit, whereas type conversion can be either implicit or explicit. In other words, “type conversion” refers to the general process of changing a type, whereas type coercion refers more specifically to the implicit conversion of a type. We can further […]
Global Using Statements and Code Clues Posted in: Programming - I wrote back in 2018 about how you can use your using statements as a clue to how you might dismember a big class. This makes it easier to see the important parts as you remove things that you “kinda have to have” to make the important stuff work. The trick is pretty simple… You […]
The Boy Who Cried Wolf – An Alternative Ending Posted in: Opinion - As ancient fables go, The Boy Who Cried Wolf is certainly one of the big ones. For those who haven’t yet heard it, well done! Teachers love to tell this story in an attempt to instruct students on morals, though this is misguided as the story may increase a child’s propensity to lie (NurtureShock: New […]