Software Engineering in a Macadamia Nutshell

09 May 2024

image

Throughout my adventure for ICS 314, I realize that Software Engineering is more than just coding and trying to work for Amazon or Google. Theres so many concepts to take into consideration, things I didn’t even know about before taking this class. I feel I barely cracked the ICS 314 nutshell. I’ll talk about a few basic concepts I learned throuhgout the semester and why they’re so important.

Agile Project Management gets the first mention. Well, what is Agile Project Management? I’m glad you asked. Agile Project Management is an emphasis on being flexible, having continuous improvement on your work, and being able to focus on user feedback to continually provide updates. Agile management is based on adaptability, allowing team members to react to changes for users and their needs as well as adapt to the everchanging status quo of technology. One specific style of Agile Project Management that I explored during this course is “Issue Driven Project Management” or IDPM. This allows teams to organize tasks based on any issues such as features should be updated for a team project. With this agile management tool, issues are tracked, discussed, and resolved easily. This tool lets everyone on the team stay on the same page as to how the project is developing and also shows the growth of the project from inputs of each team member. It’s a great way to keep track of what needs to be done; the ultimate checklist.

Second runner up is Coding Standards. It’s another way of saying these are the guidelines and practices when writing code to be consistent and effective all while being efficient. Examples of coding standards is using white space consistently making your code spaced out neatly but, also not having any unnecessary white space. Choosing good names for your variables and functions enables you and future users of your code to have a gist of what the functions in your code does. Adding commments to your code is another concept of Coding Standards. Adding comments is what I actually need to do more myself. Comments are a great way to make little notes for each part of your code to help explain one by one what each piece of code does. Having a good name for the functions and variables in your code is not enough, it’s best to pair it with comments which can help lessen the confusion of people that look at your code. All in all though, code will look bad to the eye of the beholder because everyone most likely has their specific way of laying out their code.

In third place comes Ethics in Software Engineering. It is basically all development activities and how it is portrayed by various requirements and perspectives from making sure user privacy is enforced. AI development is a great example of Ethical Software Engineering because of the fact that AI can be quite invasive when it comes to digital privacy and security based on how AI can develop and learn digitally. An example would be when developing AI for healthcare, ethical concerns are the main focus when it comes to handling sensitive patient data. It is crucial that data is kept secure and that the use of AI will not make it easier for data to be leaked.

These are all but just a few concepts I learned in ICS 314. These concepts are basic but, they have such a huge impact on our work. Like a macadamia nut, Software Engineering can be a tough nut to crack but, with determination, you’ll be able to get to the good parts inside.