Vibe Coding 與真正軟件開發的差異
The Difference Between Vibe Coding and Real Software Development
Vibe coding 與真正的軟件開發並非一回事:前者以提示詞要求 AI 生成應用,後者涵蓋完整的軟件開發生命週期(SDLC)。SDLC 包括規劃、分析、設計、編碼、測試、部署及維護七個階段。作者以 dating app 為例,指出缺乏測試及對架構、安全問題認識不足,可能令修補引發新錯誤,項目反覆提示六個月後仍遭放棄。
I remember back in 2020 when I started learning how to code, chatgpt has not seen the light of the day yet.
coding was difficult and felt like an extraordinary feat only geniuses could pull off. But deep down we all knew that coding was just hardwork but we still felt that spark of genius when we finally build things that worked, debugged for hours and finally fixed that bug, solved that programming challenge.
fast forward to 2022, Chatgpt came out, felt awesome, could solve programming problems but still not there yet. then came apps like lovable that promised you could ship entire applications using AI. now we have Agentic AI's in our coding editors and all we do is prompt that AI to produce stuffs that just works.
But Hold On!

Ask yourself, what am I doing. software development or vibe coding? because they are two entirely separate entities. the outcome of one is a reliable product and the other is just a beautiful junk packaged in a nice way. to be honest , AI apps are not even that good looking, they all look similar, emoji's instead of icons and what have you.
So why did I say Vibe coding sucks?
to understand that. let us look at what real software development entails.
There is what we call the Software Development Life Cycle SDLC, according to IBM, there are 7 phases. let's explore each of them carefully
1. Planning
this is where the project scope, goals and requirement are established. In English, this is where you understand what you're actually trying to build. set a limit and map out features you want in the app, what you don't want yet, otherwise you might fall into what we call scope creep ( uncontrolled expansion of a project's goals or features)
2. Analysis
now this is the data gathering phase. collect user stories and identify market potential, look into the feasibility of your project, whether it is technically viable or not.
3. Design
In this phase, the project's architecture is defined, you outline the user interface, database schema, the software navigation, the types of technologies it will involve, whether you want a monolith or microservices etc. this part is the heart of the development process that separates juniors from seniors.
4. Coding
yeah , this is the part that we all excited about right 😆. coding is just one part of development and it's what AI is very very good at, i won't argue that part. this part is where you select a programming language. Java, C#, Python (my favorite) or Javascript - the Odogwu of the web and write out the code for the application.
5. Testing
Another Critical part that separates the real one's from the wannabes. in fact due to the importance of testing, frameworks have been developed to aid testing. we have cypress, jest, vite test, playwright, pytest. different ways of testing, unit testing, integration tests, end 2 end tests. different approaches, test driven design etc. An application that is not tested cannot be released to the users, of course you can't test all possible scenarios but the more the test coverage the better. test for possible failures and make sure the app passes all tests.
6. Deployment
And what's a good application without users, this is where we release the to users. there are different methods of deployment. we can use third parties to deploy our apps, Paas platforms as service like render, railway , fly.io or get our own cloud Infrastructures such as servers, storage from cloud providers such as aws, azure, Huawei, digital oceans or even provision our servers on premise locally. those are all options we have to ensure our applications reaches the right audience. in case of mobile apps, we deploy to app store or play store. and believe me , this can be as simple or as hectic as it can be.
7. Maintenance
Finally here, phew 😪. maintaining an application is an ongoing process, updates, patches and fixes, security checks, monitoring etc. This is a very key step in software development because software evolves, technologies get outdated and you need to keep up or stay behind. imagine facebook was still the way it was when it launched in 2006, same old interface, refresh before you see new messages. who would still be on facebook right 😂. the same goes to twitter, Microsoft, gmail etc. software needs to undergo continuous maintenance and improvements.
Alright buddies, we've gone through a ride through what actual and real software development looks like and this is just a glimpse. you might ask me, how in the world is a single person suppose to do that. the answer is No, One person cannot do that. most softwares are build in teams , teams of different specialties. for instance for every SDLC we have a specialist in charge. for planning , we have the Project Manager, system analyst for second phase, UI/UX and software architect for the third phase, programmer, QA Engineer (Quality Assurance), Devops Engineer, Maintenance Engineer respectively. A Software Engineer must be quite aware and knowledgeable of all these processes and follow them, duly working and collaborating across teams, while writing clean and maintainable code.
Now , we know what is Software Development. Contrast that with Vibe coding.
I just sit down with a lollypop in my mouth and I tell the AI agent. build me a dating app. the AI is so dumb that it doesn't even asks for any clarifications, it goes, cooks up something and says here you go. you see the beautiful interface but completely unaware of the flaws in the architecture, security vulnerabilities, until you have 10 users and you begin to notice lags in the application, you keep prompting for fixes, but because you're totally ignorant of what works and what's available, the AI keeps fixing and creating unintended bugs , no test cases, and you keep going on and on for six months and then you're totally confused and have to abandon the project finally.
This is the reality of Vibe Coding and yes, people spend six months in frustration prompting the AI just to give up on the whole bunch of mess they've made. the one's that made it to prod start experiencing downtimes, api failures and crashes, with no proper monitoring in place. there's no way to trace the root cause of the failure. money and trust is lost in the process , the 2 most crucial things to a businesss.
and God Forbid, let's not talk about vibe coding a mission critical software where lives are at stake, the consequences will be unimaginable.
I will like to end this with a beautiful quote from a renowned Programmer , Brian Kernighan who said:
Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it?
think about that
We have now seen the reality of vibe coding, but does that mean we can't use AI in development.
Nope , that is where AI assisted development comes in, this is where an engineer, well versed and experienced uses an AI to rapidly write code, implement a quick feature or build up an entire application while prompting the AI with guidelines on what tools to use, approaches to take, architectural decisions and tests to write. he pours down his years of experiencing into directing the AI to building a Masterpiece. that is doable and praise worthy. And this proves that one still needs to learn coding, practice problem solving in order to use AI well. on a serious note, vibe coding works well for simple apps, but any medium scale to complex app will require the experience of a trained professional.
I have said a lot and I believe it is now clear to us what Vibe coding is and what software development is. Finally I want you to repeat this,
AI Assisted Coding is not Vibe Coding.
What pains me the most is seeing vibe coders flock linkedIn with the tile of Fullstack Developers, like seriously 🤔 someone who can't tell the difference between json and xml. who doesn't even know what GitHub is. and worst of all, they get clients. no matter how good the tool is, at the hands of the foolish it is as good as useless. No negativity here but that's the reality.
So, we still need good engineers to build secure, safe and reliable applications in the future. people who understand the stack . so what are you waiting for you, grab a coffee and start writing your first line of code, cause it's going to be a wild journey 🚀
I would love to hear your take on vibe coding in the comments section, and don't forget to follow me on linkedin.
來源:DEV Community · dev.to






