How They Ship: Management Practices from Real Companies

    The best way to learn how to ship software effectively is to study companies that do it well. Let’s pull back the curtain on how real engineering organizations get products out the door. Stripe: The API-First Approach Stripe treats every internal system as if it were a public API. This isn’t just about documentation-it’s a fundamental way of thinking about dependencies. %%{init: {'theme':'dark', 'themeVariables': {'primaryTextColor':'#e5e7eb','secondaryTextColor':'#e5e7eb','tertiaryTextColor':'#e5e7eb','textColor':'#e5e7eb','nodeTextColor':'#e5e7eb','edgeLabelText':'#e5e7eb','clusterTextColor':'#e5e7eb','actorTextColor':'#e5e7eb'}}}%% graph TB A[Payment API Team] -->|Treats as External| B[Internal Risk Engine] C[Billing Team] -->|Treats as External| B D[Checkout Team] -->|Treats as External| B B -->|Strict Versioning| E[Breaking Changes = Major Version] B -->|SLA Commitments| F[99.99% Uptime Promise] What This Looks Like in Practice: ...

    May 15, 2025 · 6 min · Rafiul Alam

    Basecamp's Shape Up: The Alternative to Scrum You've Been Looking For

    You’ve been doing Scrum for years. Two-week sprints. Daily standups. Story points. Sprint planning. Retrospectives. And it’s exhausting. The sprints feel arbitrary. The planning meetings drag on. The backlog is a graveyard of ideas no one will ever build. You’re shipping, but it feels like running on a treadmill. What if there’s a better way? In 2019, Basecamp published “Shape Up”-their alternative to Scrum. The core idea: Work in 6-week cycles (not 2-week sprints) Fixed time, variable scope (not fixed scope, variable time) No backlog (ideas don’t pile up forever) Betting, not planning (leadership commits to ideas worth doing) Shaping, not speccing (rough outlines, not detailed specs) It’s radically different from Scrum. ...

    February 20, 2025 · 11 min · Rafiul Alam

    The Ikea Effect: Why We Overvalue Things We Build

    I once spent three weeks building a custom CSS framework. It had exactly the features I wanted. Perfect naming conventions. Elegant utility classes. Beautiful documentation. I showed it to my team. They said, “Why not just use Tailwind?” My response? “Because mine is better.” Was it actually better? No. Objectively, Tailwind had: More features Better documentation Larger community More battle-testing Active maintenance But I couldn’t see that. All I could see was MY framework, MY design decisions, MY time invested. ...

    September 16, 2024 · 13 min · Rafiul Alam