ai architecture artificial-intelligence blog blogging Book Review business career Compliance Content Corporate Life Customer Support cybersecurity data data-science DevOps education entropy fitness garmin leadership Licensing life marketing microservices Monitoring music Observability Operations Partnership philosophy Product Management Products saas Sales Security software-development technology User Experience wordpress writing

Category: Uncategorized

  • Changing the Company

    Changing the Company

    I’ve written a bit about mishandled change attempts — everyone loves a little schadenfreude, and failure is easier to spot than success. This does not mean I think it’s wrong to change: you can’t keep selling buggy whips or spellcheckers when the market for them disappears. Let’s set aside the…

  • Multi-tenancy in platforms

    Multi-tenancy in platforms

    If you’ve built a monolithic enterprise product, it is not sensible to convert it to multi-tenancy. You can sell a managed service provider (MSP), but you’re not going to get to software as a service (SaaS). Often no one wants to discuss reasoning at all, because the need to convert…

  • Why is open source content rare?

    Why is open source content rare?

    Open source community incentives are biased to prefer developers over content creators. Open source communities are particularly prone to this failure mode. After all, the developers in the community are all doing their work for valid reasons, so why wouldn’t content creators join them? Hot take: the incentives are different. Open source…

  • Supporting Ancient Software

    Supporting Ancient Software

    With another round of fixes to Windows XP, the time is ripe for bloviating about supporting ancient stuff. Every software vendor has to decide what to do about supporting what they used to ship, as well as the broader ecosystem around them. Operating systems, databases, service providers. Maximize use of…

  • Land and Expand Packaging Decisions

    Land and Expand Packaging Decisions

    Subsets of packaged content are needed in different system classes. If you’re pursuing a land-and-expand model, then you need to have a way to expand. One way is to ship a static monolith with features turned off. Another is to ship dynamic add-ons to your base product.  Teams make these…

  • What does your product disallow?

    What does your product disallow?

    Product design sometimes opens an interesting can of worms: things that may be possible to do, but which the designer didn’t intend. Do you hide these paths or not? Will your user ultimately be frustrated, or satisfied? The answer depends on whether your product’s design accurately sets and meets expectations…

  • Entities and Attributes

    Entities and Attributes

    Quadrant models are useful organizing tools. Let’s use one to look at the problem of managing the attributes of entities in systems visibility. I’m not expecting to solve the problem, just usefully describe the playing field. Horizontal axis:* persistent entities with changing attributes* ephemeral entities with static attributes Vertical axis:*…

  • How to manage a Proof of Concept

    How to manage a Proof of Concept

    POCs as a concept are a response to customers getting oversold. As a vendor we’d rather skip the whole thing and trust our sales team to scope properly. As a customer we’d rather not spend time testing instead of doing. Sometimes they have to be done though, and it’s best…

  • Moving the transformation point of data

    Moving the transformation point of data

    There’s a pattern that has become common knowledge, perhaps on its way to received wisdom. Endpoints pass their raw data off to storage as quickly as possible. Analysts then do their work against that storage using map reduced processors, automated and/or ad hoc. This pattern has many benefits and is…

  • Conflicts at Work

    Conflicts at Work

    Work conflicts aren’t fun, but they come with the territory. Here’s a quick field guide for recognizing the type of conflict being observed. conflict level 4: we disagree on a tactical implementation approach. I think we should write this in language foo and you think language bar. I think the…