Reflection

13 May 2021

I’ve finally reached the first goal in my software engineering career, complete ICS314: Software Engineering I. Throughout my first software engineering course I had learned many things both in terms of coding and project development. I had also gained a greater foundation for problem-solving, also in terms of coding and project development as this course is made to give students a greater understanding of coding and working with peers. However, some topics had stuck out to me as very important in general as a software engineer and as a programmer.

Open Source Software Development

Open Source Software is an excellent tool to use when learning and creating something. In addition to making a project open source, it will allow other developers to take part in collaborative programming, and it will allow other developers to suggest bug fixes or other functional implementations to the program that is available. In general, open source software is an important tool for beeginner programmers and useful for big projects that may require more than a small team.

Throughout my spring 2021 semester at UH Manoa I had cloned a meteor template provided by my professors to my operating system where I had learned the different functions and uses of meteor and jsx. After multiple assignments using this template I have come to a great understanding of how meteor, jsx, and design patterns work by simply augmenting this template.

Agile Project Management

Agile Project Management is a super useful procedure that software engineers do to get things done and to get them done fast and orderly. So Agile is basically coming together as a group and identifying the problems that need to be solved for a program and to distribute these problems amongst team members. This can be done over in a collaborative github repository where people can create branches of the main project and add in their piece of code and as a team make changes to the master all at the same time. The code them all combines at the master and produces the product the the software engineering team had set out on.

I have used Agile Project Management during my time in Software Engineering I at UH Manoa for my class project Campus Clearout Center. My team members and I had produced a functional application where the UH Manoa community can sell their items for cash with other students, however this would mean there will be a lot of moving parts that need to be addressed. We were able to efficiently produce a program by splitting up the responsibilities, producing a working application within 5 weeks. However as time went on during the project different problems had come up and we had to act accordingly to answer those problems. We had also taken in criticisms to improve our application and we had also split up the responsibilities to improve our program based off of the criticisms we got. Agile is a worth-while procedure that most software engineering teams should follow.

Ethics in Software Engineering

The ethical responsibilities of Software Engineers can not be overlooked and boundaries should be put in place when a user gives a website personal information. A general summary of coding ethics is to keep the users safe by securing their personal information, and to produce work for the betterment of society.

During the development of my team’s project Campus Clearout Center we had decided that only UH Manoa students should be able to see items listed for sale. The purpose of this is to confirm that buyers are from the UH Manoa community and should be safe to meet up in that their identity is able to be confirmed as they have to sign up with the a hawaii.edu email. Not only does this allow us to follow coding ethics but it will allow users to safely use my team’s program.

The Great Takeaway

Programming can be made easy and be made simple if the correct procedures are followed and if the correct procedures are followed then projects can be finished in an efficient manner. The time I had during this course, with my peers, will provide a strong foundation in what I should be doing as a software engineer and how I can be a valuable member of a team. They say Rome was not built in a day, but Rome could be built in a day if done efficiently and done with enough people of course.