More Than Just Writing Code? What Exactly Is Software Engineering?

Albert SenalorAlbert Senalor
3 min read

Introduction

In our first Software Engineering lecture, we were introduced to the powerful field that underpins all computer systems. We explored several foundational concepts including what software is, types of software, what software engineering actually entails, and the importance of striving to become software creators rather than consumers—especially in Africa. We also examined the costs of software and why some software projects fail, as well as frequently asked questions about the field.

The second part of the lecture focused on professional software development, introducing us to types of software products, essential qualities of good software, general challenges in software development, and the overall importance of software engineering in our digital age.

What I Learned

Software is now everywhere—embedded in schools, banks, airlines, shopping centers, and even robots. At its core, software is a set of instructions and its accompanying documentation that tells a computer what to do and how to do it.

We discussed two major types of software:

  • System software, which includes operating systems like Windows, macOS, Android, iOS, and Unix, as well as utility software such as antivirus tools and file managers.

  • Application software, which allows users to perform specific tasks like word processing, web browsing, or playing games.

Software engineering is the discipline concerned with applying theories, methods, and tools to professional software development. It's critical to note that software engineering is not just about programming. While programming is part of it, software engineering is broader and includes planning, designing, testing, and maintaining software systems.

One eye-opening aspect was the realization that the economies of developed nations heavily depend on software. In Africa, we were encouraged to move beyond being passive consumers of technology. Nations that master software creation—especially in AI—will have a significant competitive edge globally.

We also delved into why some software projects fail. Among the reasons were increasing system complexity, frequent bugs, and failure to meet user requirements—leading to what is known as the software crisis. Miscommunication and lack of coordination between development teams and users can also cause failure, even with the right development methods in place.

Software engineering requires collaboration. Teams often include project managers, developers, testers, team leads, and quality assurance personnel to ensure software meets user expectations.

We explored three main types of software products:

  1. Generic software

  2. Custom (bespoke) software

  3. Embedded software

To be effective and dependable, software products must demonstrate key quality attributes:

  • Maintainability

  • Efficiency

  • Reliability

  • Security

  • Dependability

  • Acceptability

Conclusion

This first lecture really set a solid foundation for what looks like an exciting journey into software engineering. Now, I don’t just see software as something we use; I see it as a powerful tool driving economic growth, solving problems, and sparking innovation—especially in places like Africa.

0
Subscribe to my newsletter

Read articles from Albert Senalor directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Albert Senalor
Albert Senalor

Software Engineering student on a journey to turn logic into impact. Welcome to my weekly reflections at SenalorCodes.