In this class, we learned a lot about software engineering. Most of what we learned came through web application development, but it’s important to note that all the concepts we learned while developing web applications for the class can be applied outside of web application development, and sometimes even outside of the scope of software engineering. Two of these concepts include agile project management and ethics in software engineering.
In this class we learned about a special type of agile project management called issue driven project management. We utilized this powerful tool when working on our final projects. Using Github, we broke the large task of creating our final project web application into a myriad of smaller, bite-sized issues, which we tackled over a couple weeks. We were able to give certain issues owners, so that each team member knew who was working on what.
Outside of the scope of web application development, this kind of issue driven project management can be very useful. Of course, it is well suited for web application projects, however, it can also be used outside of even the scope of software engineering: it can be used for any multi-level, multi-step project. It kind of reminds me of divide and conquer algorithms; issue driven project management can be used to tackle any project with a proactive mindset by simply breaking up the task into many smaller tasks that can be completed by different team members. Then, when all the team members are done with their parts, they can come back together and assemble the finished product. For example, think of a team of kids trying to build a lego plane. They can divide up the pieces and have one kid build the hull, another the wings, and the last the interior of the plane. Then, they come back together and put all of their completed pieces together to create a full-fledged lego plane.
We also learned about ethics in software engineering in this class. This was an extremely interesting topic that I bet many of us didn’t expect to talk about. Ethics in the scope of web application development was mainly what we learned: when building a web applications oftentimes there are accounts that users make that might hold sensitive information. It’s ethical to not share this information with other users and to make sure that this information is protected from cybersecurity attacks.
Outside of the scope of web application development, ethics is also still very important in the realm of software engineering. Ethics in software engineering can include shaping responsible and sustainable technology that doesn’t damage our environment or other natural resources. It can also mean avoiding bias and discrimination when coding, especially for emerging technology as powerful as AI. For AI, it is essential that fairness and transparency are upheld by software engineers for their users. Finally, ethical software engineering can mean creating software that aligns with societal values while also meeting industrial demands.
In conclusion, in this software engineering class we learned about a myriad of concepts in software engineering such as agile project management and ethics, and we learned about these things by doing web application development projects. However, these concepts have many more uses in the field of software engineering and even beyond. I look forward to further applying these concepts in future concepts and even my career!