Last updated:

The way we build software is changing fast. A shift is happening – a move away from manually writing every line of code towards guiding intelligent systems. You’ve probably heard the buzzwords: “vibe coding,” “AI agents,” “agentic development.” Tools powered by Artificial Intelligence are finding their way into how we code every single day. So, what’s the real deal? Is it just a lot of hype, or is how we build software changing fundamentally?

I’ve been watching this evolution closely, experimenting with some of those tools, and trying to separate the signal from the noise. Let me break down what’s happening, what tools are involved, and what it means for us as engineers.

The Changing Landscape: From Code to Conversation

Vibe Coding vs. Agentic Development

Since the advent of computers, coding has meant sweating the details. We’ve all spent late nights hunting down bugs, perfecting syntax, and building complex systems line by painstaking line. But something’s changing. A shift is happening where developers start talking to their computers. Instead of writing every semicolon and bracket, we describe what we want in plain English.

Vibe Coding & Agentic Development: Instead of coding every detail, you describe your high-level goal in natural language, and the AI fills in significant implementation gaps. These terms represent similar approaches to AI-assisted development, with “vibe coding” being more colloquial.

We’re moving away from coding absolutely everything by hand, towards telling the computer what we want. And you’ve got options for how you do that, depending on the project and how much risk you’re okay with.

The Buzz vs. The Reality: Hype, Hope, and Headaches

In my conversations with fellow developers, I’ve found opinions are split, and the relevance of the hype and headaches often depends on which approach (Vibe or Agentic) is being discussed:

The truth lies somewhere in the middle. These tools are powerful, but they aren’t magic. They require our skillful guidance and critical oversight, with the level of oversight differing between a quick vibe coding task and a complex agentic workflow.

The Agentic Developer’s Toolkit

Cloud-Based Assistants: Copilot, Cursor, Continue

This shift isn’t just theoretical; I’ve been experimenting with several concrete tools that facilitate these new workflows:

The Local Advantage: Ollama and Privacy

While these commercial tools are powerful, I’ve seen growing concerns about sending proprietary code to the cloud fuel interest in running models locally. This is where Ollama shines as a key enabler 5. It’s an open-source tool that makes it surprisingly easy to download and run powerful LLMs (like Meta’s Llama/CodeLlama, Google’s Gemma/CodeGemma, Alibaba’s Qwen Coder, Mistral, and others) right on your machine.

From my testing, the benefits are clear: Complete data privacy, no latency issues, no API costs, and offline capability. The catch? You need decent hardware (RAM and ideally a GPU), and performance might not match cutting-edge cloud models without significant investment. I’ve found tools like Continue.dev integrate smoothly with Ollama, offering a powerful local, private AI coding setup, combining the flexibility of open-source tooling with the privacy of local models.

What’s particularly exciting is the quality of some of these local models for specific development tasks. Qwen Coder has proven exceptional for inline code completion in my experience, often matching or exceeding cloud-based alternatives with remarkably accurate suggestions that maintain context across complex functions. Llama 3.2 offers impressive all-around performance for both code generation and natural language reasoning about code, making it suitable for agentic workflows. And if your hardware permits (particularly with 24GB+ VRAM), Gemma 3 delivers near-cloud-quality results for comprehensive agentic development tasks, handling multi-step planning and implementation with surprising coherence. These advancements point to a real potential for fully local agentic development that doesn’t compromise on quality while maintaining complete privacy and control over your code.

The Human Element: Adapting to AI Collaboration

The Evolving Role of the Experienced Engineer

So, are AI and robots coming for our jobs? I don’t think so. But our profession is changing, and our roles are changing. I’m seeing a consensus shift towards augmentation, not replacement.

AI excels at automating the repetitive, the boilerplate, and the syntax checking, which frees us up to focus on higher-level tasks like:

I’ve noticed the skills emphasis shifting towards effective communication with AI (prompt engineering), system-level thinking, critical evaluation, and domain expertise. We’re becoming less the typist and more the architect and quality controller.

Reshaping the Junior Developer Journey

The emergence of coding assistants at a time when companies increasingly prefer to hire senior engineers is creating a scarcity of entry-level positions. This intersection raises an important question: How will these new development paradigms transform career trajectories for newcomers and reshape the career paths for those just starting?

One legitimate worry is that AI tools might automate the fundamental tasks—writing boilerplate code, creating basic tests, and developing simple scripts—traditionally providing essential learning experiences for junior software engineers. If AI and Agentic Development handle these routines more efficiently and cost-effectively, beginners could miss critical hands-on practice necessary for building their core skills. These seemingly mundane tasks have historically served as valuable training grounds. Therefore, we must provide a clear career path for professional growth and reconsider how we train our junior developers.

These AI tools offer tremendous potential as learning catalysts and playing field levelers. An ambitious junior developer with an AI assistant might grasp complex codebases more quickly, receive immediate clarification on unfamiliar patterns, and obtain guidance for debugging or refactoring. This could significantly reduce the time needed to become effective. The primary shift may be from memorizing syntax details to mastering AI collaboration – developing effective prompting techniques, critically assessing AI recommendations, comprehending system architecture, and cultivating the discernment to determine when to accept or reject AI suggestions.

This suggests a transformation in the progression of software engineering careers where entry-level positions will likely require agentic coding skills alongside fundamental software design expertise, and senior roles will depend on demonstrating ability in coding and efficiently directing AI tools, architecting robust systems incorporating AI-generated components, and ensuring the final product’s overall quality, security, and maintainability. Mentorship becomes increasingly vital, as it needs to address technical competencies and teach newcomers how to use AI responsibly and effectively. While the initial challenges may appear different or more demanding, developers who adapt and learn to collaborate with AI effectively may engage with more complex and rewarding problems earlier in their professional journey.

Agentic Development in Action: The yaml-workflow Experiment

To make this less abstract, let me share a hands-on learning experiment I conducted to better understand Agentic Development principles in practice. I built yaml-workflow, a lightweight Python workflow engine driven by YAML configuration, specifically as a controlled experiment to explore this new development paradigm. The project served as an ideal learning laboratory because it required defining a complex goal, breaking it into smaller, testable features, using AI for multi-step implementation (code and tests), iterative refinement based on AI output, and constant human oversight and strategic direction within the Cursor IDE, primarily using Gemini 2.5 Pro.

💡 Insight: A well-defined workflow is essential when working with AI agents. Those large language models and agents may initially impress with their ability to generate code quickly. Still, they can easily go off track, implementing unrequested features, breaking existing functionality, or producing inconsistent solutions. I learned this the hard way early in the project when loose guidance led to scope creep and technical debt.

Key Takeaways

Here are my key takeaways from that human-in-the-loop agentic development experience:

  1. Start with Clear Specifications (Then Let AI Refine Them): I began with a basic idea and a rough Product Requirements Document (PRD). Feeding this PRD to the IDE Agent and asking it to rewrite, expand, and structure it more formally. This iterative refinement helped me solidify the goals and features before significant coding began.
  2. Vertical Slicing & Task Checklists: I broke down the overall goal (“build a YAML workflow engine”) into smaller, manageable vertical features (e.g., YAML parsing, task execution, variable management, error handling, parallel processing). I had the agent create detailed “implementation task lists” with checkboxes in a temporary markdown file for each vertical and feature. This allowed the AI agent (often operating in Cursor’s YOLO Agent Mode) to tackle the implementation step-by-step, checking off tasks as they were completed and making progress trackable and manageable.
  3. AI-Powered TDD: I leaned heavily on a Test-Driven Development (TDD) approach. For each new piece of functionality, my first prompt was often: “Based on our implementation plan PLAN.md, write the tests for the function that does X, Y, and Z.” Once the tests were generated and reviewed, my following prompt was: “Following our product requirement document PRD.md, implement the function to make these tests pass.” This forced the agent to focus on requirements and testability from the outset.
  4. Explicit Rules and Context: Defining rules and providing specific context using IDE agentic features (like @code, @file, or .cursor/rules) helped the agent focus and ensure it understood the existing software design choices, and conventions as the project grew.
  5. Git Hooks Remain Crucial: Rules and context don’t eliminate the need for traditional quality gates. Using Git’s pre-commit hooks proved indispensable for automatically enforcing code quality before committing. The hooks ran formatters (black), import sorting (isort), type checking (mypy), and tests (pytest) to maintain consistent, high-quality code regardless of whether it was human-written or AI-generated.
  6. Model Experimentation Matters: All models are not created equal. I experimented with different LLMs available through Cursor and Github Copilot. For this project’s complex logic and code generation, Gemini 2.5 Pro frequently provided more accurate, robust, and well-structured responses than Claude models. Also, switching between models based on the specific task (e.g., documentation vs. complex algorithm implementation) proved beneficial.
  7. Integrated Documentation: Leveraging the principle of documentation first, Domain Driven Desing (DDD), and having the AI agent maintain comprehensive documentation proved invaluable. Beyond basic docstrings, it excelled at keeping README and other docs files current. It can help craft detailed architectural decision records (ADRs) based on your input. I leveraged MkDocs with a custom script that automatically generated API references from docstrings and assembled complete project documentation, ensuring everything stayed consistent as the codebase evolved.
  8. Iterative Debugging: I used a systematic approach where AI-generated bugs became an opportunity to revisit design choices by using a feedback loop that improved code quality over time, having the AI analyze failures and propose solutions.
  9. Branch Management: Feature isolation through dedicated branches for AI-assisted development became essential. This approach simplified review processes and provided a safety net, allowing quick rollbacks when AI-generated solutions needed refinement.
  10. Human Oversight: Despite the AI’s capabilities, maintaining rigorous human code review proved critical. This final layer of scrutiny caught nuanced issues and ensured the codebase stayed aligned with our architectural vision and maintainability standards.

Building yaml-workflow this way demonstrated to me that complex, functional software can be developed agentically. However, it reinforced that our role shifts significantly towards planning, specification, review, and strategic guidance of the AI, rather than line-by-line implementation.

Visualizing the Workflow

Below is a diagram illustrating the iterative workflow used:

TLChoh(DroeSPHOTiopctlupaauskaaAmtQsMgglrnCIHAaiukUerhiitAHnrSuInoapAraoms:IuieeWmnlDdlgmuptmnalraIRaioaletlDRagteinmeltntN:yaeen:ectpv)yeeTForffteRli:aetPitiiRBCseeeAGCsaerninnerhNvmwIaChktsotfeeveeeTiestoesuveasiacTxeeTn/CUeGmcYrircGekkatswetDopsamkDeedatoPwlstssseddtilosecaRsTikTstbea(etinBtilDasaTsCutHsse(rcisPstLs(eogAeoCt?Faoo/RkokTsAdspsoPoennncDsoDtpepkadactrPpDspCrDssethe(eR&)rooo)suxpaDSodvce&rtrttveesdeoeaed(mdrdC@ptoctdmosuTCEpd,reorleisdre,rnteotegre@vFF)fiPaa/ieliilwallFesnssa))ni,i//lbnueegNNrxteeeNpwaeesoeenddredss(inNmuRReeHpeexnudwwttmaooatrrTwnekkaidstakhna)dfmtoAedIre.lssu,ccuessesffuelaRRRtteeeuawwwrsoooekrrrkkkbcroTCCameoonmsddciteeht/e.Tse.st

Looking Towards the Future

Integration, Opportunity, and Final Thoughts

This isn’t just about coding assistants. Agentic frameworks like LangChain/ LangGraph, CrewAI, Atomic Agent and Microsoft’s Semantic Kernel provide the infrastructure to build more complex, multi-step AI applications. Efforts towards standardization, like the Model Context Protocol (MCP) 6, aim to make integrating diverse tools and data sources with LLMs and your IDE easier, further enabling these advanced workflows. We’ll likely see deeper integration of AI agents across the entire SDLC – from requirements gathering to CI/CD and monitoring.

The potential economic impact excites me. If development becomes significantly faster and cheaper, projects previously deemed unviable may suddenly become feasible, increasing the overall demand for software and the engineers needed to guide its creation 3.

Vibe coding and agentic development aren’t fads that will disappear. They represent a genuine evolution in our interaction with technology to build software. Ignoring this shift isn’t an option if we want to stay effective and relevant.

The key is to approach it realistically. Experiment with the tools. Learn how to guide them effectively. Double down on fundamental engineering principles – architecture, security, testing, critical thinking – because these skills are needed to manage AI collaborators responsibly and successfully. Use AI to handle the grunt work, but never switch off your brain.

The future of software development looks less like humans vs. machines and more like humans amplified by machines. It is an exciting, slightly daunting, but ultimately opportunity-rich time to be an engineer.

References


  1. IBM Think - Vibe Coding: A comprehensive overview of vibe coding that defines the concept, credits Andrej Karpathy for the term, explores opportunities and challenges, including technical complexity, code quality assurance, debugging challenges, and security considerations - providing essential context for understanding vibe coding’s practical implications. ↩︎

  2. Microsoft Learn - AI Agents (Part 17 of 18) | Generative AI for Beginners: An educational resource from Microsoft that introduces AI agents, it covers fundamental concepts, implementation approaches, and practical applications of AI agents in development workflows, providing valuable context for understanding the “Agentic Development” paradigm discussed in this article. ↩︎ ↩︎

  3. Smcleod.net - The Cost of Agentic Coding: A detailed analysis examining the economic implications and transformative effects of agentic development. Sam McLeod explores how this approach represents a natural evolution in software development, reduces cognitive overhead, enables concurrent exploration paths, unlocks previously infeasible projects, and elevates the engineer’s role to focus on strategic tasks. ↩︎ ↩︎

  4. YCombinator Vibe Coding Is The Future: A thought-provoking article from Y Combinator that explores how AI-assisted coding is transforming software development. The piece examines how developers are increasingly using natural language to describe desired functionality rather than writing code directly, discusses the productivity gains this enables, and considers the implications for both individual developers and the broader software industry. It provides valuable context on why many startups and forward-thinking companies are embracing this paradigm shift. ↩︎

  5. Ollama Github Repository: The official Ollama repository provides comprehensive instructions for installing and running LLMs locally, covering setup, available models, and key features like privacy benefits, potential hardware requirements, and performance considerations for privacy-focused development. ↩︎

  6. Model Context Protocol (MCP) Introduction: The official introduction page for MCP, an open protocol designed to standardize how applications provide context (like data sources and tools) to LLMs, facilitating the creation of more complex and integrated AI agents and workflows. ↩︎