Software engineering is the discipline of designing, writing, testing, implementing and maintaining software. It forms the basis of operational design and development.
Writing a program is easy. Writing a good program is hard. Writing a good program within a deadline is super hard. You also need to program the software, so it can be used by the average person.
Software engineering is a disciplined approach to creating a good program, and forces you to understand the requirements and know what you are doing before you start writing code.
There are two primary functions in software engineering: development and maintenance.
Development is the part where you get to create new things or augment existing things with new functionalities. It’s the fun part, because, let’s be honest, there’s nothing more exciting than creating something new.
The second function, maintenance, is otherwise known as fixing bugs. Not as exciting as creating new things, but just as important.