I Took Advantage of my Class to Learn Professional Skills

16 Dec 2019

What Class did I take?

This Fall 2019 semester I took a course titled ICS 314. The subject for this class was on website application development; namely website programming languages such as Javascript, HTML, and CSS. A unique aspect about ICS 314 however was that the Professor, Phillip Johnson, focused website application development around the idea of Software Engineering concepts. In particular, we learned about concepts such as working with time constraints, programming with standards, using programming environments, and making ethical decisions.

The Professional Skills I Acquired

Out of the many things I learned in this course I would say that the two most important skills that I gained outside of website development were agile project management and Software Engineering ethics. Agile project management refers to dividing tasks in a project into smaller tasks that can be solved in a relatively short time period (2-3 days). This allows for small groups to quickly deliver incremental updates, quickly find and fix any problems, and quickly adapt to any new tasks that arrive. Software Engineering ethics refers to making ethical decisions about the applications that you work on and develop as a Software Engineer.

The Applicability of these Skills

I believe that agile project management is a valuable skill in the workforce as it is an effective way to quickly churn out progress, while also ensuring that any problems that arise can be dealt with efficiently and effectively. That way, there is always progress that can presented to a boss or customer. Also, if a new feature needs to be added, changed, or removed; groups can adapt easily as the work is done in small increments. I believe that this skill is best applied in small groups as each individual has a task that they can work on in a timely manner. This prevents the individuals from feeling overwhelmed or finishing too quickly and having nothing to do. I also believe that this skill is best applied in small projects as bigger projects will end up being split into many pointless tasks, and bigger projects generally present progress in bigger chunks.

I believe that Software Engineering ethics is a valuable skill in the workforce as it can effectively project an image of your company, and to an extent you as a person, to the rest of the world. It teaches you to be mindful of your actions and to work with a greater purpose of benefiting the human race as a whole. Doing work that is unethical projects an image that you are untrustworthy, have a complete and utter disregard for other’s well-being (physically or mentally), and have no regards for any potential consequences.

Applying Agile Project Management to Life

For ICS 314 we applied agile project management through the use of Github’s issues, called issue driven project management. Our tasks were presented as Github issues, and our progress was presented as Github milestones. However, agile project management can also be applicable in any project in life that is of a relatively small size. For example, if you want to build a wooden shed by yourself from scratch you will break it up into smaller tasks as to complete each part in a timely manner. You’re not gonna build the foundation, walls, and roof all at the same time. First, you build your foundation, build your walls on that foundation, and lastly build your roof on top the walls. The same may not be said for building a property however, as you will have many people doing many different things. You could have someone building the house, while at the same time someone is building a pool, and even someone else building the driveway etc. It would be pointless and inefficient to manage the overall construction if you managed each individual task, instead of the overall tasks.

Applying Software Engineering Ethics to Life

Ethics will always be applicable in each and every aspect in life. Ethics helps to shape a society’s collective beliefs about what actions are right and wrong, regardless if the action is legal or not. For example, if you see a grown man punch a 3-year old child, most people would agree that he deserves your fist as just punishment. An eye for an eye scenario. However, the law tells us that vigilante justice leads to jail time and that justice should be left to law enforcement and the courts. As another example, say you are a certain CEO of a pharmaceutical company. You acquire the rights to a certain drug (Daraprim) that is life-saving for people with a certain disease (HIV/AIDS). You also decide to raise the price of this drug from $13.50 a pill to a whopping $750 per pill because “hey, it’s legal”. Even though this action is fine legally; you just potentially cut the lives short of those who can’t afford to pay, or have their health insurance pay, $75,000 (10 pills worth) for the drug each month. Choosing greed over helping the lives of others will always be ethically wrong for most people. These examples can be changed to match any given topic. The main takeaway is that your actions will always have consequences whether or not it was justified, and that doing something that is legal doesn’t necessarily mean that it’s ethical.

The Rewards of Software Engineering

I view the skills that I gained from this course as rewards since the subject of the class was website application development. You could get through the course by just learning Javascript, CSS, and HTML. However, this course transcends website development. Taking the time to understand why you are being taught and required to do work in a certain way shows you that there is so much more to learn. You end up learning valuable skills that will always be applicable. Normalizing the integrated development environment throughout the class allows for easier collaboration and troubleshooting. Doing weekly quizzes with time constraints (WODs) forces you to complete tasks under pressure. Requiring the final project groups to use Github’s issues for task management erases any confusion on whose doing what. These purposes may not have been entirely clear at first. However, digging a little deeper into the methods employed by this course lead me to finding a plethora of rewards in the form of life skills.