.NET
3 .NET “Best Practices” I Changed My Mind About (via Nick Chapsas)
- Having “installer” classes that add services to the IServiceCollection for dependency inversion. Doing this abstracts away what’s being registered (visibility issue); you also can’t guarantee the order of registration.
- Using mappers. As things change, they can get out of sync which leads to runtime failures rather than compile-time failures. Mapperly is a solution — it generates code, so you can catch things at compile time; or you can write your own.
- Guard clauses using the “Guard” class that throw exceptions. Use a result object (or discriminated union) to let the caller infer what went wrong. You may not know when the exception will be caught.
The New Way of Parsing ANY Type in .NET (via Nick Chapsas)
- Pre .NET 7, to parse numbers you’d use something like int.Parse().
- .NET 7 introduces an IParsable<T> interface which allows you to write your own extension methods (e.g., numberAsText.Parse<int>()).
- You can also make your types implement IParsable, so you can provide a string to type conversion yourself.
- For even more performance use the ISpanParsable<T> interface combined with ReadOnlySpan and Span<Range>.
AI
Who Is Going to Regulate AI? (via HBR)
This post shared some current conversations and possible ways forward with various US regulating bodies, such as the FTC. Europe seems to be ahead in terms of defining boundaries for what’s allowed and levying hefty fines on violators. It’s likely that the US government agencies will not reach a conclusion quickly, of course meaning the companies will continue to innovate and/or monopolize before regulation hits. “This is no criticism of lawmakers and regulators, but a side effect of the basic fact that law advances incrementally while technology evolves exponentially.”
Burnout
More Than 50% of Managers Feel Burned Out (via HBR)
- “The reasons these symptoms emerge fall into six buckets: having an unsustainable workload, a perceived lack of control, insufficient rewards for effort, a lack of a supportive community, a lack of fairness, and mismatched values and skills.”
- To mitigate, the org needs to connect the work with meaning, invest in learning and career development, allow flexible work, provide psychological safety and support, and to let managers practice self-care.
Cybersecurity
The Digital World Is Changing Rapidly. Your Cybersecurity Needs to Keep Up. (via HBR)
- Cybersecurity programs must no longer have the avoidance of failures as their overarching aim.
- Companies must also expand their definition of “failure” for software systems and data to encompass more than just security risks.
- Monitoring for failures must be one of the highest-priority efforts for all cybersecurity teams.
Engineering Teams
From good to great: A capability framework for building exceptional product engineering teams (via SWLW)
- Navigate ambiguity
- Set goals
- Ask for help
- Broadcast state
- Negotiate dependencies
- Escalate appropriately
- Manage team capacity
- Onboard team members
- Understand its users
- Understand its levers
- Tell the team’s story
- Define operating agreements
- Adopt an operational cadence
- Anticipate problems
- Respond to incidents
- Improve its processes
- Tackle increasing complexity
Meetings
4 Distractions that Derail Meetings — and How to Handle Them (via HBR)
- 1) Gravity problems — too big to solve at the team level; 2) assumption overload — relying too much on assumptions; 3) cognitive distortions — all-or-nothing thinking, overgeneralization, catastrophizing, emotional reasoning; 4) squirrel chasing — tangents.
- Determine the objective of the meeting, reframe goals as inquiry-driven statements, invite only people that have a direct role in achieving objectives.
- Be sure to communicate clearly.
- Handle meeting derailers by naming the problems as mentioned above.
Time Off
Set These 5 Boundaries Before You Go on Vacation (via HBR)
- Provide a plan about who will cover your work
- Book it on your calendar
- Send notices to attendees of meetings you run
- Maximize your out-of-office notification
- Send a final reminder