🇬🇧 The Importance of Software Engineering Discipline in the Age of AI
Summary:
In this video, I discuss how AI is revolutionizing software delivery but emphasize that it cannot replace the fundamental principles of software engineering. While AI can accelerate coding and automate tasks, we must not overlook the importance of proper code structure, testing, documentation, and architecture diagrams. I urge you to remember that the code we write is not just for us; it will be read and maintained by future developers. Let’s ensure we are building scalable, secure, and sustainable systems rather than creating technical debt. I encourage you to apply these principles in your work to avoid passing on poorly structured code.
Transcript:
0:00: AI is accelerating software delivery, but it doesn’t replace software engineering discipline. Look, AI is amazing right now. Level one is prompting.
0:14: Level two is connecting AI to sources like Drive, Gmail, or documentation. Level three is using agents. Level four is when AI works.
0:24: It works behind the scenes, almost like an invisible teammate. That sounds exciting, right? Of course, it is. I use it.
0:33: But, you know, as software developers, we cannot forget the fundamentals. Look, we still need to know how to structure a codebase well.
0:46: We still need to know when a task is repeated. And it should be automated with a script or specialized skills instead of wasting context and tokens.
0:57: We still need testing, yeah. Not blindly testing everything first, but starting with the most critical path. Have you checked that the homepage is not broken?
1:12: Haha We still need proper coding standards, documentation, and clear method descriptions. I have seen quite a lot of code being generated without any coding standards or documentation.
1:25: Yeah, and method descriptions. Okay, generate is great, but what does this method do? I mean, we are humans who are reading the code, right?
1:35: But we still need a UMP. Build mail and architecture diagrams so that other humans can understand the system. It’s, I know, AI is generating a bunch of code all around, devs are doing that, but where is any architecture diagrams to see how everything is tightened together?
1:54: No, there is none. We still need to think about security, vulnerabilities. Scale and maintainability, yeah, I mean, you can fix a specific bug or work on a specific feature and then the AI is doing the same thing in another feature branch and so on, but why not, you know, reusing that one?
2:20: We still need strong object-oriented programming and design principles. Yeah, it could, eh, fix or implement a feature, but why not, eh, using a design principle so that it can be reused later by any other, eh, dev and any other functionality can use it and also inherit and, yeah, just use it right there
2:46: . because otherwise what AI produces can become spaghetti codes at scale, and I have seen that. And that gets even more dangerous, especially in enterprise systems.
3:02: If you are working with a legacy platform with millions of, eh, lines of code, mixed, eh, library versions, old integrations, Because a lot of years of history, Then supervision matters even more.
3:17: Testing matters more. Architecture matters more. AI can help automate. AI for sure can help accelerate. AI can help draft code quickly.
3:30: But the real question is, is that output actually correct for a system? Is this then for the team and for the future?
3:40: Sometimes the answer, and you know this, is no. Sometimes it works today, but creates technical debts tomorrow. Maybe the code runs, but variable naming is poor.
3:56: Maybe the feature branch can work, I’ll video. Bye bye. Maybe the is missing. Maybe the logic passes locally, but it breaks system design principles.
4:06: Maybe it solves one issue, while slightly increasing three more. That’s why these principles must not be forgotten. In fact, this is the moment to bring our deepest computers to life.
4:23: Science and software engineering knowledge to the front. Because that is what really helps us design software that is not only functional, but also understandable, scalable, secure, and sustainable.
4:39: And remember the following. The code is never just for you. never it’s just for you one day another developer will continue to your work.
4:48: Remember this phrase, there is going to be a monster that is going to be behind you that is going to see and read your code.
4:54: Yeah, another developer will continue your work. If today we generate piles of undocumented poorly structured code with no clear architecture, Then the next developer will inherit Spaghetti on top of Spaghetti.
5:12: AI is powerful, but disciplined engineering is still what turns code into real systems.