This week in San Francisco was the Mind the Product conference. Product folks from across North America and beyond converged to share their successes, struggles, and ah-ha moments. It is an opportunity step away from the daily grind for a dose of inspiration and to meet others. With imposter syndrome getting more attention these days we are acknowledging that success is not a simple formula. Creating space to talk about the journey we are on, especially the tough bits, is therapeutic.
I'm passionate about product, delivery, and engineering of modern apps and services.
Every week I scan a curated list of feeds and watch Twitter for pieces that ask interesting questions, frame problems in new ways, and help me learn how others tackle the tough stuff of everyday life. This week I came across interesting reads about customer discovery, look through the lens of outcomes, OKRs in action, thoughts on tools and culture, and a new book on application security. Check out the interesting reads below along with my takeaway:
We are about to check point on an experiment to create more mindfulness around meetings. Originally billed as an exercise of going on a “meeting diet” through a defined blackout period, it morphed into a company wide introspection on the use of people’s time. It had a profound effect on the meetings I facilitated and attended. The immediate value was explicit permission to question agendas and decline meetings where I did not add value or find them helpful.
In the beginning there was one creator who started it all: Over time the creation becomes too large for one person to manage, and so the team of one starts a journey to scale up to a cast of tens, maybe even hundreds, and in some cases thousands. The first step is dividing responsibility and/or expanding capacity in key skill sets. Knowing what you need to do to advance the product mission will drive the direction you take in expanding the team.
Just about every organization I have worked with complains of email fatigue. Email queues up in the inbox beyond what is reasonable to maintain, delayed decisions, information stuck in people’s head, meetings, meetings and more meetings as a symptom of information flow issues. Implementation of new tools in an attempt to fix this. In this era of cloud apps it is easy to spin up Slack, Yammer, SharePoint, Confluence and others.
PowerShell to the rescue to fill in the gaps left behind by the older Active Directory tools. On an older domain recently that did not have the benefit of the latest Active Directory Domain Services PowerShell support I needed to do a bulk import of user attribute modifications. Exporting out the starting list using CSVDE is easy, but the tool is unable to re-import changes to those objects. Here is a quick and simple PowerShell script to help you modify existing objects.
While working in an environment that does not have Kerberos delegation configured I hit the classic double hop authentication problem. This time it reared its ugly head while trying to use the Windows PowerShell Extensions for Microsoft SQL Server 2012 (not to be confused with the community driven SQL Server PowerShell Extensions). When executing Backup-SqlDatabase on a management console via PowerShell Remoting as part of a build process managed by TeamCity I hit the following error:
Enterprise licensing programs can be a challenge at the best of times. For companies like Microsoft it’s a balance between trying to meet the needs of a spectrum of audiences with making enough money to fund future development. If your team is in the middle of figuring out how to get the best deal for Visual Studio licensing hopefully the notes below will help put some of the choices in perspective.
One of the things I enjoy about using FluentNHibernate is the PersistenceSpecification class VerifyMapping method which allows me to verify that my database schema, mapping and domain are in sync. When using other ORMs I tend to recreate this feature. Working with one client recently who uses Linq-to-SQL I did it again and decided it is time to share it: If you have an base class or interface for entities that defines a common identifier then you can cut out the identity expression.
I enjoy sharing practices amongst various teams. The discussion about what works well, what could be done better and actions that others have taken help us all reduce friction. One piece I wanted to share, with hopes of inspiring others to do the same, is what we are doing with our continuous integration pipeline for one of the projects I’m working on. We use JetBrains TeamCity to manage the delivery pipeline, but more important than what tool you use is how you view its responsiblility.