<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Vishnu Viswambharan</title>
    <description>The latest articles on DEV Community by Vishnu Viswambharan (@mvvishnu).</description>
    <link>https://dev.to/mvvishnu</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3592554%2F8acbdfc0-c67f-4c3e-bd4e-f8890c28f600.jpg</url>
      <title>DEV Community: Vishnu Viswambharan</title>
      <link>https://dev.to/mvvishnu</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mvvishnu"/>
    <language>en</language>
    <item>
      <title>RAG Doesn’t Fail Loudly — It Fails Quietly</title>
      <dc:creator>Vishnu Viswambharan</dc:creator>
      <pubDate>Thu, 09 Apr 2026 22:12:14 +0000</pubDate>
      <link>https://dev.to/mvvishnu/rag-doesnt-fail-loudly-it-fails-quietly-3bbl</link>
      <guid>https://dev.to/mvvishnu/rag-doesnt-fail-loudly-it-fails-quietly-3bbl</guid>
      <description>&lt;p&gt;RAG doesn’t fail loudly. It fails quietly.&lt;/p&gt;

&lt;p&gt;That, to me, is one of the more interesting things you notice after using it beyond demos.&lt;/p&gt;

&lt;p&gt;Most of the time, the answer looks correct. But it is slightly outdated, slightly mixed, or slightly off. And that is much harder to detect than a clear hallucination.&lt;/p&gt;

&lt;p&gt;In early experiments, RAG feels impressive for good reason. You connect a knowledge source, ask a question, and the model responds with something that appears grounded and relevant. It feels like a practical way to make AI useful with real information.&lt;/p&gt;

&lt;p&gt;But with more use, the cracks start to show.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where It Starts to Feel Off
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzurnv0aozkru2t8at941.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzurnv0aozkru2t8at941.png" alt=" " width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You ask the same question twice with slightly different wording and get two different answers. Both sound reasonable.&lt;/p&gt;

&lt;p&gt;Or you get an answer that feels almost right, but not enough to trust fully. Not wrong enough to reject. Not right enough to rely on.&lt;/p&gt;

&lt;p&gt;That is a different kind of failure. Not obvious failure, but erosion of trust.&lt;/p&gt;

&lt;p&gt;The interesting part is that retrieval is often not the thing failing.&lt;/p&gt;

&lt;p&gt;The system &lt;em&gt;does&lt;/em&gt; retrieve relevant information. The problem is what happens next.&lt;/p&gt;

&lt;p&gt;In real-world knowledge systems, information is rarely clean and consistent. It evolves. Newer versions replace older ones. Different sources describe the same thing in slightly different ways. Some sources contradict others. Retrieval brings back what is relevant, but relevance alone is not enough.&lt;/p&gt;

&lt;p&gt;Given multiple similar or conflicting sources, the model does not determine which one is current, authoritative, or outdated. It produces a coherent answer. It blends the inputs into something that sounds right.&lt;/p&gt;

&lt;p&gt;It does not resolve conflicts. It smooths them.&lt;/p&gt;

&lt;p&gt;That is not really a bug. It is a consequence of how the system works. LLMs do not choose the right answer in a strict sense. They generate the most plausible one from the context they are given.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Happens
&lt;/h2&gt;

&lt;p&gt;At a system level, the pattern makes sense.&lt;/p&gt;

&lt;p&gt;Retrieval gives you relevance. The model gives you probabilistic synthesis. Neither one is designed to track knowledge evolution, enforce authority, or resolve contradictions.&lt;/p&gt;

&lt;p&gt;Put together, you get relevant inputs and a plausible answer, but not necessarily a reliable one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;RAG retrieves relevance, not truth.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is also why the retrieval method itself is not really the point. RAG is often associated with vector databases, but the limitation is broader than that. Whether the system uses semantic search, keyword search, or a hybrid approach, retrieval still surfaces relevant information. It does not decide which information is correct.&lt;/p&gt;

&lt;p&gt;There are a few other patterns that show up once you start noticing them.&lt;/p&gt;

&lt;p&gt;Chunking helps retrieval, but often removes relationships between ideas. Important qualifiers get separated from the main statement.&lt;/p&gt;

&lt;p&gt;Small changes in phrasing can lead to different retrieved context and therefore different answers.&lt;/p&gt;

&lt;p&gt;And even when information is incomplete or inconsistent, the system still tends to produce an answer instead of clearly acknowledging uncertainty.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Common Fixes Only Go So Far
&lt;/h2&gt;

&lt;p&gt;When answers feel off, the instinct is to tune the system: improve chunking, add recency filters, tweak prompts, adjust temperature, rerank results.&lt;/p&gt;

&lt;p&gt;Some of that absolutely improves behavior. But none of it fully solves the underlying issue.&lt;/p&gt;

&lt;p&gt;Because this is not just a retrieval problem. It is a knowledge problem.&lt;/p&gt;

&lt;p&gt;The system has no built-in concept of which knowledge should be trusted.&lt;/p&gt;

&lt;p&gt;Reranking can improve which pieces get shown, but it still does not introduce understanding of authority. Prompts can make the model more disciplined by telling it to cite sources or prefer recent content, but prompts are still a soft control layer. They do not solve missing versioning, unclear ownership, or weak conflict resolution in the knowledge itself.&lt;/p&gt;

&lt;p&gt;Teams also add timestamps, ownership metadata, curated sources, and filters. These are all useful. But they are still ways of guiding the system around a deeper limitation rather than removing it.&lt;/p&gt;

&lt;p&gt;They improve selection. They do not introduce understanding.&lt;/p&gt;

&lt;h2&gt;
  
  
  What This Suggests
&lt;/h2&gt;

&lt;p&gt;To me, this suggests that the next step is not just better retrieval.&lt;/p&gt;

&lt;p&gt;It is better knowledge modeling.&lt;/p&gt;

&lt;p&gt;RAG in its current form tends to assume that knowledge is consistent, independent, and equally valid. Real-world knowledge is none of those things. It changes. It gets replaced. It contradicts itself. It has ownership, lifecycle, and varying levels of authority.&lt;/p&gt;

&lt;p&gt;If RAG-based systems are going to become more reliable, they need to move beyond similarity-based retrieval and probabilistic synthesis alone. They need stronger ways to represent authority, versioning, trust, and knowledge lifecycle.&lt;/p&gt;

&lt;p&gt;In other words, not just retrieving context, but curating it.&lt;/p&gt;

&lt;p&gt;RAG is still a meaningful step forward. It makes knowledge more accessible and usable than before. But using it in practice highlights an important gap.&lt;/p&gt;

&lt;p&gt;Retrieving information and understanding it are not the same problem.&lt;/p&gt;

&lt;p&gt;Right now, RAG bridges only the first.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>machinelearning</category>
      <category>rag</category>
    </item>
    <item>
      <title>AI Can Write Code. It Still Doesn’t Know Your Company.</title>
      <dc:creator>Vishnu Viswambharan</dc:creator>
      <pubDate>Sun, 05 Apr 2026 16:59:43 +0000</pubDate>
      <link>https://dev.to/mvvishnu/ai-can-write-code-it-still-doesnt-know-your-company-3k74</link>
      <guid>https://dev.to/mvvishnu/ai-can-write-code-it-still-doesnt-know-your-company-3k74</guid>
      <description>&lt;h2&gt;
  
  
  The gap that shows up only in real systems
&lt;/h2&gt;

&lt;p&gt;You can now ask an AI to build a feature and get a reasonably clean implementation within seconds. The structure looks right, it follows familiar patterns, and in many cases it is good enough as a starting point.&lt;/p&gt;

&lt;p&gt;What becomes visible only when you try to use that code in a real system is something else. It doesn’t fully fit.&lt;/p&gt;

&lt;h2&gt;
  
  
  A familiar problem in a new form
&lt;/h2&gt;

&lt;p&gt;This is not very different from hiring a strong developer and asking them to start contributing without proper onboarding. They understand the language and the frameworks, and they can solve problems. But they don’t yet understand how things are done in your system.&lt;/p&gt;

&lt;p&gt;They don’t know which internal libraries are expected, which patterns are actually followed in practice, or which earlier decisions still shape the system. So their code is technically correct, but it needs adjustment. Not because it is wrong, but because it does not align.&lt;/p&gt;

&lt;p&gt;AI is currently in a very similar position. It has strong general knowledge of software development, but it does not have access to the context that defines how software is actually built inside a company.&lt;/p&gt;

&lt;h2&gt;
  
  
  The instinct to provide more data
&lt;/h2&gt;

&lt;p&gt;The natural reaction to this gap is to provide more context. Teams start connecting documentation, repositories, tickets, and internal tools, assuming that better access will lead to better alignment.&lt;/p&gt;

&lt;p&gt;In practice, this often introduces a different problem. Internal knowledge is rarely clean or consistent. Some documents describe systems that have evolved. Some decisions were never documented. Some patterns exist in reality but not in writing. In many cases, there are multiple valid ways to do the same thing, without a clearly preferred one.&lt;/p&gt;

&lt;p&gt;When all of this is exposed to AI, it does not automatically become clearer. It simply becomes available.&lt;/p&gt;

&lt;h2&gt;
  
  
  When more information reduces clarity
&lt;/h2&gt;

&lt;p&gt;This is similar to what happens when a new developer is given access to all onboarding material without guidance. They now have more information, but it becomes harder to understand what actually matters.&lt;/p&gt;

&lt;p&gt;It is not obvious what is current, what is deprecated, or what is actually followed in practice. Without that clarity, they rely on judgment and guesswork.&lt;/p&gt;

&lt;p&gt;AI behaves in the same way. It produces answers that are informed and structured, but still slightly misaligned with the system.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the output still feels “off”
&lt;/h2&gt;

&lt;p&gt;This is why AI-generated code often looks correct while still requiring adjustment. It follows general best practices, but may bypass internal abstractions, duplicate existing platform capabilities, or introduce patterns that are inconsistent with the rest of the codebase.&lt;/p&gt;

&lt;p&gt;A common example is service-to-service communication. AI might suggest a standard HTTP client setup, while many companies already provide an internal client that handles retries, authentication, and observability. The generated solution works, but it bypasses important parts of the platform.&lt;/p&gt;

&lt;p&gt;Another example shows up in event-driven systems. AI may generate a clean producer or consumer using a generic library, while the company expects a specific abstraction that enforces schema validation, tracing, or error handling. Again, nothing is technically wrong, but it does not align with how the system is designed to operate.&lt;/p&gt;

&lt;p&gt;These are not obvious errors. They appear as small inconsistencies that accumulate over time and show up during reviews and integration.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why tooling alone does not solve it
&lt;/h2&gt;

&lt;p&gt;Most companies are currently trying to address this through tooling. Wrapper CLIs, predefined workflows, skills, and integrations with internal systems are becoming common. These approaches improve usability and reduce friction when interacting with AI.&lt;/p&gt;

&lt;p&gt;They are useful, but they do not fully address the underlying issue.&lt;/p&gt;

&lt;p&gt;Because the problem is not just access to internal knowledge. It is the usability and clarity of that knowledge.&lt;/p&gt;

&lt;p&gt;If a system has multiple competing patterns, AI will reflect that. If documentation is outdated, AI will use it. If conventions are implicit, AI will not infer them reliably.&lt;/p&gt;

&lt;p&gt;Providing more data does not resolve these issues. It often amplifies them.&lt;/p&gt;

&lt;h2&gt;
  
  
  The shift from data to clarity
&lt;/h2&gt;

&lt;p&gt;The shift that seems necessary is not about making AI better at coding. It is about making internal systems easier to understand.&lt;/p&gt;

&lt;p&gt;In practice, AI-generated code often needs adjustment before it can be merged, not because it is incorrect, but because it does not align with internal expectations. That gap becomes smaller in systems where defaults are clear and patterns are consistent.&lt;/p&gt;

&lt;p&gt;Organizations that are seeing better outcomes with AI tend to have clearer defaults, more consistent patterns, and a smaller gap between what is documented and what is actually practiced.&lt;/p&gt;

&lt;p&gt;In those environments, AI outputs require less correction. Not because the model behaves differently, but because the system itself is easier to reason about.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this means for platform and DevEx teams
&lt;/h2&gt;

&lt;p&gt;This has implications for platform and DevEx teams. The focus is no longer only on enabling developers through tools and automation. It also includes reducing ambiguity, defining clear defaults, and ensuring that internal knowledge remains usable and current.&lt;/p&gt;

&lt;p&gt;It is less about documenting everything, and more about making the important things clear.&lt;/p&gt;

&lt;h2&gt;
  
  
  A second consumer of internal systems
&lt;/h2&gt;

&lt;p&gt;One way to think about this is that companies now have two consumers of their internal systems.&lt;/p&gt;

&lt;p&gt;Humans, who can ask questions, resolve ambiguity, and build context over time.&lt;/p&gt;

&lt;p&gt;And AI, which depends on the structure and clarity of the information it is given.&lt;/p&gt;

&lt;p&gt;Most systems today are designed for the first. Very few are ready for the second.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where this is heading
&lt;/h2&gt;

&lt;p&gt;The companies that will get more value from AI are not necessarily the ones adopting more tools or building more integrations. They are the ones that make their internal knowledge easier to consume, more consistent, and closer to how things are actually done.&lt;/p&gt;

&lt;p&gt;At that point, AI stops behaving like a capable but untrained developer and starts producing output that fits more naturally into the system.&lt;/p&gt;

&lt;p&gt;That difference is subtle, but it changes how useful AI becomes in day-to-day engineering work.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Disclaimer: The views and ideas expressed in this article are my own and do not represent those of my current or previous employers.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>devops</category>
      <category>softwareengineering</category>
      <category>productivity</category>
    </item>
    <item>
      <title>How the Scope of Software Development Work Has Changed Over Time</title>
      <dc:creator>Vishnu Viswambharan</dc:creator>
      <pubDate>Sat, 28 Mar 2026 19:19:28 +0000</pubDate>
      <link>https://dev.to/mvvishnu/how-the-scope-of-software-engineering-work-has-changed-over-time-5f5m</link>
      <guid>https://dev.to/mvvishnu/how-the-scope-of-software-engineering-work-has-changed-over-time-5f5m</guid>
      <description>&lt;p&gt;&lt;em&gt;How agile, DevOps, cloud platforms, and AI have gradually changed the day-to-day expectations around software development work.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Over the last fifteen years, the day-to-day scope of software development work has changed quite a bit.&lt;/p&gt;

&lt;p&gt;In many teams, the role used to be narrower and more clearly separated from adjacent functions. Developers primarily wrote code. Testers focused on testing. DBAs handled database changes and performance concerns. Sysadmins or operations teams managed servers and deployments. Product managers shaped requirements. Designers handled UX. Work moved through a chain of specialists.&lt;/p&gt;

&lt;p&gt;That model had its own strengths and weaknesses, but the boundaries were easier to see.&lt;/p&gt;

&lt;p&gt;This will not describe every company or team equally, but it is a pattern that has become increasingly visible across the broader software industry.&lt;/p&gt;

&lt;p&gt;To be clear, strong developers have always cared about users, quality, and business outcomes. What seems to have changed is not the existence of that mindset, but how much day-to-day lifecycle responsibility is now often expected within development teams by default.&lt;/p&gt;

&lt;p&gt;Across the 2010s and into the 2020s, developers in many organizations were pulled closer to testing, then closer to operations and production concerns, and more recently closer to product context and faster decision-making. The role is no longer changing only across the stack. In many cases, it is changing across the lifecycle of delivery.&lt;/p&gt;

&lt;p&gt;That is the pattern that stands out to me.&lt;/p&gt;

&lt;p&gt;From one side, more of the surrounding execution work has become part of day-to-day developer work through automation, cloud, CI/CD, and self-service platforms.&lt;/p&gt;

&lt;p&gt;From the other side, developers are increasingly expected to understand user problems, work with less complete requirements, and help move ideas toward usable results, not just implementation.&lt;/p&gt;

&lt;p&gt;So this is not only a story about full-stack development. It is also a story about the changing scope of software development work.&lt;/p&gt;

&lt;h2&gt;
  
  
  The earlier model: software delivery through specialist handoffs
&lt;/h2&gt;

&lt;p&gt;In many teams in the early 2010s, software delivery depended heavily on handoffs between specialist roles.&lt;/p&gt;

&lt;p&gt;A requirement moved from product to design. Design handed off to development. Development handed off to QA. Infrastructure teams handled deployment. Production support often sat elsewhere.&lt;/p&gt;

&lt;p&gt;That did not mean good developers were indifferent to users or outcomes. It meant those concerns were spread across more roles and more steps in the delivery process than they often are today.&lt;/p&gt;

&lt;p&gt;There were valid reasons for this setup. It allowed deep specialization and made responsibilities easier to separate. In some environments, it also reduced risk by putting more checks into the process.&lt;/p&gt;

&lt;p&gt;At the same time, every handoff added waiting, translation loss, and coordination overhead. Even when each team did its part well, the system as a whole could still move slowly.&lt;/p&gt;

&lt;p&gt;A lot of the role changes in software development can be understood as responses to that problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  The first shift: testing moved closer to development
&lt;/h2&gt;

&lt;p&gt;One of the clearest shifts in the mid-2010s was how testing moved earlier and closer to day-to-day development.&lt;/p&gt;

&lt;p&gt;As agile ways of working became more common, the model of “developers finish, then QA begins” became harder to sustain. Bugs found late were expensive. Feedback loops were slower than teams wanted. Quality needed to show up earlier in the cycle.&lt;/p&gt;

&lt;p&gt;So more quality-related work moved into development teams.&lt;/p&gt;

&lt;p&gt;Unit tests, integration tests, test automation, and earlier acceptance discussions became a normal part of development work in many organizations. Quality was no longer treated only as a downstream activity.&lt;/p&gt;

&lt;p&gt;That did not mean testing disappeared as a discipline. In many places, QA evolved into quality engineering, automation enablement, exploratory testing, or test strategy. In others, specialist quality roles remained important. But developers were more often expected to take on a larger share of quality responsibility as part of their daily work.&lt;/p&gt;

&lt;p&gt;That was one clear way in which the scope of the developer role widened.&lt;/p&gt;

&lt;h2&gt;
  
  
  The second shift: operations moved closer to development teams
&lt;/h2&gt;

&lt;p&gt;In the late 2010s and early 2020s, cloud, DevOps, CI/CD, containers, and infrastructure automation accelerated another change.&lt;/p&gt;

&lt;p&gt;Older delivery models often relied on infrastructure teams as gatekeepers. If a team needed environments, deployment help, or configuration changes, they typically depended on another team’s queue and process.&lt;/p&gt;

&lt;p&gt;Modern software organizations increasingly tried to reduce that waiting.&lt;/p&gt;

&lt;p&gt;As a result, development teams in many companies moved closer to operational concerns. Not necessarily to become full operations specialists, but to understand enough to build, ship, monitor, and support software more directly. Teams were more often expected to know how their systems were deployed, how they behaved in production, and what to do when something failed.&lt;/p&gt;

&lt;p&gt;This is where ideas like “you build it, you run it” became more common. The meaning was not that every developer had to become an SRE. It was more that software delivery and software operation were becoming more tightly connected.&lt;/p&gt;

&lt;p&gt;A feature was less likely to be treated as finished just because code had been merged. There was more attention on whether it ran safely and reliably in production.&lt;/p&gt;

&lt;h2&gt;
  
  
  What actually changed: not role replacement, but thinner boundaries
&lt;/h2&gt;

&lt;p&gt;There is an easy but misleading version of this story that says developers simply absorbed every other role. That is not really accurate.&lt;/p&gt;

&lt;p&gt;DBAs did not disappear. SREs did not disappear. Product managers and designers did not disappear. In many companies, specialist depth remains essential.&lt;/p&gt;

&lt;p&gt;What seems to have changed is something more practical: the amount of specialist intervention needed for ordinary delivery work often went down.&lt;/p&gt;

&lt;p&gt;Platform teams created paved roads. Managed cloud services reduced raw infrastructure effort. CI/CD standardized release workflows. Design systems made UI implementation more reusable. Observability tooling became easier to adopt. Security controls moved earlier into delivery paths.&lt;/p&gt;

&lt;p&gt;So developers did not necessarily become experts in every adjacent domain. They gained the ability to move further without as many handoffs for common cases.&lt;/p&gt;

&lt;p&gt;That is a more useful way to understand the shift. The role widened partly because the environment around it increased individual and team leverage.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI may be the next shift, but in a different direction
&lt;/h2&gt;

&lt;p&gt;More recently, AI has started changing the shape of development work in a different way.&lt;/p&gt;

&lt;p&gt;The earlier changes pulled developers closer to quality and operations. AI may be different because it pushes the role upward toward judgment and framing.&lt;/p&gt;

&lt;p&gt;AI can reduce the cost of many implementation tasks: boilerplate, tests, scaffolding, migrations, documentation drafts, and first-pass code. That does not remove the developer, but it may change where human value sits.&lt;/p&gt;

&lt;p&gt;When implementation gets cheaper, judgment tends to matter more.&lt;/p&gt;

&lt;p&gt;The bottleneck can shift toward deciding what should be built, how it should work, what tradeoffs are acceptable, whether it is safe to operate, and whether it actually solves a user problem.&lt;/p&gt;

&lt;p&gt;In that environment, the valuable developer is not only someone who can produce code quickly. It is also someone who can move from ambiguity to something useful, safe, and testable.&lt;/p&gt;

&lt;p&gt;None of this assumes that AI will simply replace developers outright. It may automate more implementation work over time, including through increasingly capable agents. But even in that scenario, the important question is likely to shift toward who frames the problem, validates the result, manages tradeoffs, and integrates change safely into real systems.&lt;/p&gt;

&lt;p&gt;That is why AI may change more than coding speed. It may change what strong development work looks like day to day.&lt;/p&gt;

&lt;h2&gt;
  
  
  A more product-shaped developer role
&lt;/h2&gt;

&lt;p&gt;This is where the role may evolve further.&lt;/p&gt;

&lt;p&gt;Not every company will create a new title for it, and not every team will change in the same way. But in many places, developers seem to be operating across a wider stretch of the path from problem to production.&lt;/p&gt;

&lt;p&gt;That can include understanding more user context, working with less polished requirements, using design systems and AI tools to accelerate delivery, shipping safely, observing results, and iterating.&lt;/p&gt;

&lt;p&gt;That does not mean product, design, or platform functions become less important. If anything, their role may become even more important as providers of context, systems, guardrails, and reusable patterns. The point is not that every developer does every role. It is that everyday development work may now sit closer to a broader part of the delivery process than before.&lt;/p&gt;

&lt;p&gt;That is a meaningful change, even if the exact shape differs from one company to another.&lt;/p&gt;

&lt;h2&gt;
  
  
  The risk: broader scope without enough support
&lt;/h2&gt;

&lt;p&gt;This shift also has a clear failure mode.&lt;/p&gt;

&lt;p&gt;A broader developer scope only works when companies invest in the systems around it: strong platforms, clear role boundaries, realistic expectations, good documentation, sensible delivery paths, and continued access to specialist expertise.&lt;/p&gt;

&lt;p&gt;Without that, a wider scope can quickly turn into overload rather than empowerment.&lt;/p&gt;

&lt;p&gt;That is an important distinction. Observing that the scope of development work has expanded is not the same as arguing that companies should endlessly add responsibilities to developers. Those are different things.&lt;/p&gt;

&lt;p&gt;In practice, the healthiest setups seem to be the ones where development teams can move further by default, but still have access to specialist support when depth is genuinely needed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where this may be heading
&lt;/h2&gt;

&lt;p&gt;Looking back, the last fifteen years are probably not best described only as a shift from backend to full stack, or from specialist to generalist.&lt;/p&gt;

&lt;p&gt;The bigger pattern may be this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;development teams were pulled closer to quality&lt;/li&gt;
&lt;li&gt;then closer to operations and production responsibility&lt;/li&gt;
&lt;li&gt;and now AI may be pulling them closer to judgment, framing, and product context&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The role is being compressed in one sense because fewer handoffs are tolerated.&lt;/p&gt;

&lt;p&gt;It is being expanded in another because developers are often expected to cover more distance in day-to-day delivery.&lt;/p&gt;

&lt;p&gt;So this seems less about inventing a completely new kind of developer and more about broadening what software development work often includes.&lt;/p&gt;

&lt;p&gt;The next few years will likely reward developers who can connect product understanding, technical execution, operational awareness, and fast learning. Not because they replace every specialist around them, but because the structure of software delivery keeps pushing more of those concerns closer together.&lt;/p&gt;

&lt;p&gt;That feels like a meaningful change in what it means to work as a software developer today.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Disclaimer:&lt;/strong&gt; The views and ideas expressed in this article are my own and do not represent those of my current or previous employers.&lt;/p&gt;

</description>
      <category>softwareengineering</category>
      <category>career</category>
      <category>ai</category>
      <category>softwaredevelopment</category>
    </item>
  </channel>
</rss>
