Agile project management is a type of project management that focuses on creating a working product and releasing small patches based on user feedback. Issue driven project management is a derivative of agile project management where developers work on fixing issues with their product to update it incrementally. In my ICS 314 class this semester, we used issue driven project management as the management method for our final project. Although we used this method for web development, it can be applied to all facets of software engineering. This management method can be used by other areas of software engineering to create a working product quickly, send it out, and efficiently make changes based off of client feedback. Learning how to use agile project management was an important experience in my ICS 314 class because it seemed like a very useful way to manage and create projects that I can use in my future as a computer scientist.
Ethics describes the set of principles that people use to govern their life in the best way possible. Professional ethics describes how people should act when they are in a professional setting. In my ICS 314 class, we learned about professional ethics as it pertains to web development. In class we talked about Facebook, the website used cookies to track their users’ actions even when they left Facebook, they kept their users’ passwords in plain-text. This meant that employees at Facebook could see the passwords of any user if they wanted to, and in the event of a data leak all of Facebook’s users’ passwords would be visible. All of these are major security and privacy issues that Facebook failed to fix. Although these ethical issues pertain to web development, they can be extended to software engineering as a whole. Technology is impacting more lives and more facets of people’s lives than ever before. This means that more people are positively benefiting from technology, but also more people are suffering from technology as well. Software engineers can affect more people’s lives than ever before. This makes acting ethically of paramount importance as a software engineer because you can ruin someone’s life.
When I started this semester, I was excited to take ICS 314 because the class revolved around software engineering and web development. These were two of the many different fields I was interested in learning about as a computer science undergraduate. The software engineering principles were some of the most important things I have ever learned in an ICS class. Even if I decide to not pursue software engineering in the future I feel like the different principles I learned can be applied to any form of computer science. For example, using agile project management on a project to make delivering a working product faster and more efficient. Or, learning how to act ethically in a professional environment to ensure my actions do not cause harm to others, myself or the company I work for. All things considered, I feel like any computer scientist can benefit from learning about software engineering, and I am glad I did.