Introduction
We use web applications for online banking, shopping, education, communication, hospital management and many other activities. Behind these applications is software development, which involves designing, building, implementing, testing and maintaining software.
However, building a web application is not just about writing code and making the website look attractive. It requires proper planning, implementation, security, testing and maintenance. This is where software engineering becomes important.
Today, with the introduction of Artificial Intelligence (AI) coding tools, developers can create applications by simply describing what they want (vibe coding).
Although it makes development faster and easier, depending on it without understanding the software engineering process can create serious problems.
What is software engineering
software engineering is the implementation of engineering principles/approaches to plan, design, develop, test and maintain software applications.
Some important software engineering practices include:
• Requirements gathering: Understanding what users need before development begins.
• System design: Planning how the application will work.
• Coding: Writing clean and organized code.
• Testing: Checking that the application works correctly.
• Documentation: Recording important information about the application.
• Maintenance: Updating and fixing the application when necessary.
Why Software Engineering is Relevant in Web Application Development.
Software engineering plays an important role in developing successful web applications
1. Security
Web applications often collect sensitive information such as passwords, personal details and financial records. Software engineering encourages developers to consider security from the beginning of development.
Without proper security practices, applications may become vulnerable to SQL injection, cross-site scripting (XSS), broken authentication and data breaches.
2. Reliability
Users expect web applications to work correctly whenever they need them. Proper testing and quality assurance help identify errors before an application is released.
For example, an online banking application should not transfer money to the wrong account because of a programming error.
3. Maintainability
Web applications require regular updates and improvements. When developers follow good software engineering practices, the code becomes easier to understand, modify and maintain.
Poorly organized code can make even a small update difficult.
4. User Satisfaction
Software engineering encourages developers to understand users' needs before building an application.
A well-developed web application should be easy to navigate, responsive and accessible to its intended users.
5. Scalability
As the number of users increases, a web application should be able to handle more requests without constantly failing.
Proper system design makes it easier to improve an application as the number of users and amount of data grow
What vibe coding is
vibe coding is a practice whereby a person uses AI tools to generate code mainly through prompts.
instead of coding manually the person or developer describes what they want and AI generates the code.
vibe coding is not completely bad because it can help beginners learn, speed up development and make programming more accessible.
the problem comes in when a person/developer generates a code with AI and doesn't understand, review or test it.
Demerits and dangers of vibe coding and poorly engineered web applications
Despite its advantages, relying completely on AI-generated code without applying software engineering principles can introduce several risks.
1. Security Vulnerabilities
AI-generated code can contain security weaknesses. If developers copy and use the code without reviewing it, attackers may exploit these weaknesses.
For example, a poorly developed login system may store passwords in plain text, making users' accounts vulnerable if the database is compromised.
2. Poor Code Quality
AI may generate code that works for a simple demonstration but is poorly structured or unnecessarily complicated.
This makes the application difficult to understand, improve and maintain.
3. Lack of Proper Testing
Some developers focus on making an application work quickly without carrying out proper testing.
As a result, errors may remain hidden until real users begin using the application.
4. Data Loss and Privacy Issues
A poorly designed web application may expose users' personal information or fail to protect stored data.
For example, a hospital management system that does not properly protect patient records could expose confidential medical information.
5. Dependency on AI Tools
Developers who depend completely on AI may struggle to identify and correct errors when the generated code fails.
They may also lack the technical knowledge needed to explain how their applications work.
6. High Maintenance Costs
Applications developed without proper planning and documentation may become difficult and expensive to maintain.
A small change can sometimes affect other parts of the application because the original system was not properly designed.
7. False Confidence
An application may look professional and work during a demonstration but still contain serious problems.
A beautiful interface does not automatically mean that an application is secure, reliable or ready for real-world use.
How developers can use AI responsibly
AI should be treated as an Assistant rather than a replacement.
developers can use AI responsibly by:
- Understanding the requirements before asking AI to generate code.
- Reviewing and understanding AI-generated code before using it.
- Testing every important feature of the application.
- Applying security practices during development.
- Keeping proper documentation.
- Using version control tools such as Git and GitHub.
- Regularly updating and maintaining the application. AI can make development faster, but the developer remains responsible for the quality and security of the final application.
Real-Life Scenario: An Online Banking Web Application
A developer decides to create an online banking application using AI tools.
The application allows customers to:
-Create accounts.
-Log in with their passwords.
-Check their account balances.
-Transfer money to other users.
-View transaction history.
The developer uses vibe coding to generate most of the application. Within a few hours, the website looks professional, and all the buttons appear to work.
However, the developer does not follow proper software engineering practices.
Some problems that could occur include:
- Weak authentication: Attackers could gain access to customers' accounts because the login system is poorly secured.
- Incorrect transactions: A programming error could cause money to be transferred to the wrong account.
- SQL injection: Attackers could exploit poorly written database queries to access or manipulate customer information.
- Data exposure: Customers' personal and financial information could be exposed because proper security measures were not implemented.
- Lack of testing: The developer may fail to discover transaction errors before the application is released. How software engineering could prevent these problems: Proper requirements gathering to understand banking operations. Secure system design and authentication. Database security and access control. Thorough testing before deployment. Regular maintenance and security updates. Lesson: An online banking application is not successful simply because customers can log in and transfer money. It must also protect their accounts, process transactions correctly and keep their financial information confidential
Conclusion
Software engineering is an essential part of web application development. It helps developers build applications that are secure, reliable, efficient, user-friendly and maintainable.
Although vibe coding has made software development easier and faster, it should not encourage developers to ignore important engineering principles.
An application should not be judged only by how attractive it looks or how quickly it was created. Its security, performance, reliability and ability to protect users' information are equally important.
The goal of software development should not simply be to make an application work, but to make it work correctly, securely and reliably.
AI can help us write code, but software engineering helps us build software that people can trust.