Software Engineering is More Than Just Software Engineering

11 Dec 2023

While the software engineering course is designed to develop our skills in creating Web applications, over the course of this semester, I came to realize that the course is much more than that. It not only teaches us the specific techniques of how to develop Web applications, but more importantly, it fosters our experience in basic software engineering concepts. So today, instead of talking about technology, let’s take a look at some general skills and concepts that we learned from our software engineering course.

First, I’d like to talk about Agile project management. The professor said in class that project management is probably the most fundamental thing in this course, or in our entire college career and future careers. Why is project management so important to us? We have been taking courses for a long time and it seems that all we do is work to learn how to work with computers. But project management is dealing with how to work with people. Working with a human is not the same as working with a computer, the computer does what we tell it to do, it’s more like it’s passively working with what we give it, but people are interactive, so it’s not just about technology or expertise, it’s more about interpersonal skills, communication skills and teamwork. Agile project management is actually a form of project management. From its literal meaning, we can see it is a flexible approach to project management that emphasizes rapid adaptation to change, continuous feedback, and close collaboration. In agile project management, a project is broken down into small manageable parts, often referred to as iterations. It focuses on continuous delivery, and the core concept is to quickly respond to customer feedback and meet customer needs through continuous iteration and improvement. While Agile project management is an iterative approach to managing software development projects, it is clearly useful even in industries that do not involve software development. While we learn about Agile project management, we also learn about an agile project management style called problem-driven project management. IDPM is an agile project management process that provides an effective way to identify and document problems that occur during a project. In our final project, we were a small team of 5 people, and in order to make the project more effective, we used IDPM. With this approach, we were able to actively identify potential problems at each stage of the project, then assign tasks and collectively discuss solutions. These speeds up the problem solving process and also enhances communication and collaboration among team members. We have adopted regular team meetings and updates on the status of the project to ensure that all team members are kept up to date on project progress and issues. Through this collective effort and flexible approach, our overall project progress and objectives are very clear, and the team is able to effectively respond to changing project requirements and ensure that the project is completed on time. This makes me really feel the importance of project management. Throughout the process, I often felt like I wasn’t just completing a course project. I feel like I’m working with my team in the actual workplace. IDPM provides our teams with a more dynamic and interactive way of working, allowing us to manage our projects more agile and efficiently. I think Agile project management, even if in the future I no longer work in the industry related to software engineering, it is still useful. Because no matter what industry, we need to work with people, we need to give customers a quick response.

Next, I would like to discuss Ethics in Software Engineering. Ethics in Software Engineering refers to issues and principles involving ethics and values in the development, design and maintenance of software. These ethical principles and values are designed to guide software engineers to make appropriate and responsible decisions in their work to ensure that their actions do not cause harm to users and society. As an ordinary person, even if we know nothing about technology, we can easily feel the great changes in our daily life brought about by the development of technology. Whether it’s using software to order food, book hotels and flights, or keep in touch with friends through social media…… Software engineers develop software that has a great impact on our daily activities and decisions. Think about it, a strict code of ethics ensures that software engineers can develop products that benefit rather than harm our daily lives. If software engineers are not constrained by ethics, then the products they develop can cause serious harm to users, such as stealing personal information through malware or spying on users without authorization. It may even be used by bad people to help them make some software that spreads false information or fraud information…Software engineers develop software that serves the public and benefits society. Therefore, the personal and professional ethics of software engineers are very important. In fact, ethics is indispensable everywhere. For example, doctors must abide by medical ethics when providing medical services to ensure that patients receive the best care; Lawyers must follow legal ethics in their practice to ensure that their actions are just and in line with legal norms. Teachers should follow professional ethics to treat each student fairly. That’s why even though I took a software engineering course and learned about software engineering ethics, but i think ethics isn’t limited to this. The application of ethics exists in every industry, far beyond the technology industry itself.

Today I talked about Agile project management and Ethics in software engineering because regardless of my major, these will be very useful in whatever job I do in the future. Those concepts have broadened my horizons and laid a great foundation for my career development.