Tag: Software Development

  • The Future of Programming Looks a Lot Like an Everything Bagel

    What does the future of programming look like?

    So, which is it? I say it’s an everything bagel:

    Jobu Tupaki:  I got bored one day – and I put everything on a bagel. Everything. All my hopes and dreams, my old report cards, every breed of dog, every last personal ad on craigslist. Sesame. Poppy seed. Salt. And it collapsed in on itself. ‘Cause, you see, when you really put everything on a bagel, it becomes this.

    Here’s a quick compare and contrast.

    What Each Role Optimizes For

    • Agentic Engineering optimizes for throughput with correctness. The goal is to produce high‑quality software quickly by orchestrating AI agents, not by typing faster.
    • SRE optimizes for reliability over time. The mission is to keep systems predictable under load, failure, and change.
    • Product Engineering optimizes for user and business value. The focus is on shipping features that matter and iterating toward impact.

    How they work day to day

    Agentic Engineers

    They treat AI like a fast but unreliable junior developer. Their craft is decomposition, prompting, reviewing, and testing. They build scaffolds, guardrails, and workflows that turn raw model output into maintainable software.

    SREs

    They live in the world of SLIs, SLOs, error budgets, and incident response. Their work is automation-heavy and relentlessly focused on reducing toil, improving observability, and ensuring systems behave as expected.

    Product Engineers

    They sit closest to users. They translate product requirements into working features, iterate quickly, and balance speed with long‑term maintainability. They’re the connective tissue between design, backend, and business goals.

    How each role uses AI

    AI is reshaping all three roles, but in different ways:

    • Agentic Engineers build around AI. It’s the core tool, not an add‑on.
    • SREs use AI as an accelerator—log summarization, anomaly detection, config generation—but remain deeply skeptical. Reliability requires verification, not vibes.
    • Product Engineers use AI to multiply iteration speed: scaffolding features, generating UI variants, writing tests, and exploring alternatives faster than ever.

    The common thread: AI shifts the work upward, toward orchestration and decision‑making.

    Skills that define each discipline

    • Agentic Engineering: system design, decomposition, prompt engineering, test‑driven development, code review, architectural thinking.
    • SRE: distributed systems, observability, automation, incident response, performance engineering.
    • Product Engineering: UX intuition, full‑stack development, rapid prototyping, experimentation, cross‑functional communication.

    These skill sets overlap, but each role has a distinct emphasis.

    The downsides of each discipline

    • Agentic Engineering risks over‑trusting AI output, weak test coverage, and architectural drift from agent‑generated code.
    • SRE risks over‑engineering reliability, becoming a ticket‑ops team, or burning out under incident load.
    • Product Engineering risks shipping fast but accruing tech debt, or building features that don’t move metrics.

    Understanding these failure modes is part of understanding the craft.

    Where the roles converge

    AI is pushing all three disciplines toward a shared future:

    • Less manual coding, more orchestration
    • Less toil, more automation
    • Less focus on implementation, more on system‑level thinking
    • Less “just ship it,” more continuous verification

    But their centers of gravity remain distinct:

    • Agentic Engineering asks: How do we build software with AI?
    • SRE asks: How do we keep software reliable as it changes?
    • Product Engineering asks: How do we build the right software for users?

    Together, they form a triangle of modern engineering practice.

    The everything bagel

    If AI continues absorbing more of the implementation work, the future engineer – regardless of title – starts to look like an everything bagel:

    • the orchestration mindset of an Agentic Engineer
    • the reliability instincts of an SRE
    • the user‑centric judgment of a Product Engineer
    • Sesame. Poppy seed. Salt.

    In other words:

    The future of engineering is a system designer, reliability steward, and product thinker who directs AI to do the work.

    Classic software engineer answer.

  • How Software Will Survive with AI

    In Software Survival 3.0 Steve Yegge lays out a model for software survivability that states, roughly: AI is advancing exponentially, and in a world where agents can synthesize almost any software on demand, only certain kinds of software will survive. It basically assumes that AI is cheap and lazy and will reach for tools (aka your tools) that have the following characteristics:

    1. Knowledge dense. They embody decades of knowledge and would be too expensive for an AI to build from scratch.
    2. Efficient. They run more efficiently on CPUs than on GPU inference.
    3. Broadly useful. They are general-purpose tools with wide applicability.
    4. Familiar. Agents have to know your tool exists in terms (via popularity, documentation, etc.) or at least how to find it.
    5. Low Friction. Interestingly, their hallucinations should work, docs reinforce intuitive behavior.
    6. Appeal to humans. Whether it is human curated, human created, or human experiences.

    There’s a fun story about Beads, which has evolved over 100 sub-commands, intended for use by AI.

  • Anil Dash on Codeless

    The next meaningful breakthrough that has emerged in AI‑assisted software development is orchestrating fleets of coding bots that can build entire features or apps from a plain‑English strategic plan, not line‑by‑line prompts. This isn’t “AI helps me code”; it’s “AI builds the code while I direct the strategy.” Anil Dash calls this “codeless,” and I think that’s a great name for it.

  • Raphael Amorim on Monozukuri and Software Development

    [AI prioritizes] time over quality. To achieve quality, a programmer needs to have experienced what is being built. Software development follows the path of craftsmanship, where an artisan—through years of experience, repeated attempts, occasional luck, or natural talent—can produce remarkable results. This idea aligns closely with a Japanese concept known as monozukuri.

    The Art of Craftsmanship (Monozukuri) in the Age of AI