Here I share contemplations on data-oriented design, team leadership, agile methodologies, and assorted subjects occupying my thoughts.

Disclaimer: The views and opinions expressed are solely my own and do not reflect or represent the positions of any companies I work for, collaborate with, invest in, advise, or any other associated entities.

Orthodox Privilege

Paul Graham] recently posted an article on Orthodox Privilege which I think is absolutely worth a read. It reminded me of a Ted Talk by Kathryn Schulz on Being Wrong that I referenced in Mistakes, Failures and Progress. Specifically that “Do you know what being wrong feels like? Being right.” Pointing out the obvious that until you realize you are wrong, you work under the assumption you are right, while being completely aware that at any given time you are wrong about a great many things. [Read More]

Just Don't Do It

Just Don't Do It
Want to let you in on a little secret to getting more done - try less! I know, it sounds counterintuitive. But hear me out. When you take on less, you complete a higher percentage of what’s on your plate. Got two things to do and finish both? 100% success rate, my friends. Nothing gets stuff done like not doing it in the first place. This isn’t about being lazy. It’s about being intentional. [Read More]

Embracing a Flexible Future: Rethinking the Drive to Return to Office

In a recent move, Amazon mandated that its corporate employees spend a minimum of three days a week working from the office. For those of us who cherish the freedom of remote work, this directive might appear narrow-minded. However, delving deeper into the motivations behind the push for office returns can provide valuable insights. Exploring the Motivations: Unleashing Innovation through In-Person Collaboration: The belief that innovation and spontaneous creativity flourish during in-person collaborations is a driving force. [Read More]

Dr. StrangeCode, or How I Learned To Stop Worrying and Love the Makefile

Reflecting upon the past, I recall a period when the mere utterance of ‘Makefile’ would inspire a chill, a sense of unease. I cleverly avoided it, favoring the modernism of other build tools, the simplicity of their abstractions, the comfort of not having to grapple with a seemingly ancient entity. However, the echo of ‘make’, persistent and enduring, refused to fade into obscurity. As the echoes grew louder, I found myself at a crossroads. [Read More]

The Quick and The Dead: AI Pressures Reshaping Teams and Architectures

It was once hyperbolically suggested that cities would be built around Segways, a claim that was absurd given the lack of an overarching, essential need for such a shift. When we pivot to the realm of software development, we encounter a compelling counter-narrative. Teams and system architectures are presently being overhauled to incorporate AI as a significant player in the developmental landscape. This transformation is not capricious, but rather a direct response to a dire need: a massive drive to cut development costs and create software that is more attuned to user needs. [Read More]

Modern Agile Now What?

So what is the answer? What is the silver bullet to fix Agile? The truth is there is no one perfect solution. But we can make progress through a few core principles: Use something like a Kanban board to visually track work and impose work-in-progress limits. This creates focus and flow. Use WIP (Work In Progress) limitations to keep clear understanding of exactly what people are working on. Don’t default to daily standups. [Read More]

Modern Agile Lie #3: Responsive

The Agile Manifesto values “responding to change over following a plan.” But modern Agile practices like fixed-length sprints end up locking teams into mini-waterfalls, hurting responsiveness. Sprints were meant to create cadence and focus for teams. But over time they have morphed into rigid commitments that cannot be changed, even if circumstances or information changes. Teams stick to their sprint plan even when it no longer makes sense. This false consistency hurts responsiveness in several ways: [Read More]

Modern Agile Lie #2: Tools

The Agile Manifesto clearly valued “individuals and interactions over processes and tools.” But modern Agile practice has completely inverted this value, becoming obsessed with tools like JIRA over actual human interactions and outcomes. Requirements are filed as tickets, productivity is measured in tickets closed, and worth as an employee is judged by your JIRA velocity. Instead of gauging real output and teamwork, managers simply look at metrics from tools. This tool obsession flies against the original spirit of Agile and harms organizations in multiple ways: [Read More]

Modern Agile Lie #1: Points

A core tenet of many modern Agile approaches is estimating work effort using story points or abstract units instead of time estimates. Proponents argue points are more accurate because they supposedly account for variability in developer productivity. But this concept is deeply flawed. Points are always eventually deconstructed into dates on a calendar for planning purposes. No business can operate solely in an abstract point system detached from real-world time constraints. [Read More]

The Parody of Modern Agile: Why Bad Ideas Persist

Agile software development burst onto the scene in 2001 as an antidote to heavily process-driven and documentation-heavy approaches like waterfall. Early Agile proponents promoted values like individuals over process, working software over comprehensive documentation, customer collaboration over contract negotiation, and responding to change over following a plan. 20 years later, Agile has become a parody of its original goals. Rigid frameworks like SAFe and dogmatic adherence to practices like daily standup meetings and sprint planning have replaced Agile’s initial flexibility and focus on individuals. [Read More]