Professional Development – 2023 – Week 45

Image Credit: https://www.flickr.com/photos/54585499@N04/

.NET

The Missing Piece of Your .NET Logs (via Nick Chapsas)

  • The built-in structured logging (e.g., LogInformation) allows for interpolated strings that come from arguments — for example “Weather in {City} for {Days} days.” Those tags in the string make it easy to do log analytics, for example the most popular city. However, those tags don’t have to be unique, and if {Days} in some other log entry is a string instead of an integer, the queries become less useful.
  • The NuGet package Meziantou.LogAnalyzer. With this tool you can create a text file with logger parameter types, for example City;System.String.
  • You can integrate the package into the build so you’ll get warnings when the logger is being used incorrectly. (You can also configure it to be an error instead of a warning.)

The Coolest Way to Await Multiple Tasks in .NET (via Nick Chapsas)

  • There’s the standard way with Task.WhenAll().
  • The advanced way is to create an extension method that returns the awaiter. (This seems like a fair amount of work for slightly less main code to look at — i.e., syntactic sugar.)

Every New Feature Added in C# 12 (via Nick Chapsas)

  • Primary constructors, where you specify params at the class definition level (these become private fields)
  • Collection expressions, where you don’t have to instantiate the colleciton (e.g., int[] a = [1, 2, 3])
  • Ref readonly parameters, where you can pass something by reference and not be allowed to modify it
  • Default lambda parameters, allowing you to define a lambda with a default parameter (e.g., var lambda = (int age = 30) => “I am {age} years old.”;)
  • Alias any type, (his demo wasn’t clear how this would be used).
  • Inline arrays, (seems super niche and is used by the .NET team for memory buffers).
  • Experimental attribute, which is an attribute you can put on certain classes that yield compiler errors if you try to use it.
  • Interceptors (have to opt in to use it), where you specify the filename and line you want to intercept.

Game Theory

The deadly trap that could create an AI catastrophe (via TED)

Although I disagree with her defense of capitalism, this talk discusses how companies, groups, and individuals get stuck in a trap where it’s a race to the bottom — which she called “the Moloch trap.” This happens because we end up competing with each other for the wrong reasons (poor incentives). We would be better served by working collectively to compete on good ideas where it’s not considered a loss if even if our individual outcome wasn’t the best, because ultimately it furthered the greater good.

Project Management

What the Next Generation of Project Management Will Look Like (via HBR)

  • Organizational awareness
  • Data acumen
  • Cross-functional collaboration
  • Decision making
  • Willingness to explore and adopt new technology
  • Financial acumen
  • Process and framework expertise (i.e., business process improvement, agile, organizational change management, risk)
  • Customer centricity
  • Growth mindset
  • The ability to coach and motivate their teams

4 Factors That Will Help Project Managers Fulfill AI’s Potential (via HBR)

  • High quality data, employees thinking of AI as a copilot, reskilling of humans, and prioritizing the human experience.
  • Leaders will need human qualities (e.g., emotional intelligence, curiosity, empathy).
  • “Furthermore, the willingness and ability to learn and change, the ability to lead others through change, and the ability to explain AI to others will become increasingly important.”

Teams

To Put Your Company Values into Action, Create Working Agreements (via HBR)

This article provides tips on how to create working agreements that turn vague concepts such as “integrity” into meaningful actions at the team level.

Technology

How Generative AI Will Transform Knowledge Work (via HBR)

  • 68% of workers in a Microsoft survey said they don’t have enough uninterrupted time for knowledge work. AI can help “reducing your cognitive load by automating some structured tasks, boosting your cognitive capacity for unstructured tasks, and improving the learning process for your job.”
  • Reducing cognitive load is about finding ways that AI can handle the drudgery of structured tasks.
  • Boosting cognitive capacity means using AI to ask better questions, put concepts together in a novel way, tell stories, and aid with divergent thinking.
  • Learning can be improved by having the AI play different roles (e.g., coach) to provide more help where it’s needed and to explain answers.
  • Managers need to define policies around usage, encourage experimentation, and celebrate wins.