For me personally I lacked a practical background in the software engineering field prior to this class. Thus, this class was both a challenge and fun learning experience which was above all extremely helpful with building my career in software development. I was able to obtain a better understanding of how web applications are developed by a team by a certain deadline. Compared to ICS 211 where there were more puzzle-solving skills, ICS 314 was more fast-paced and structured differently. A bit of a stress factor was added to our learning environment and practical uses for coding were demonstrated. Some new languages and frameworks were introduced to me like JavaScript, HTML, React, Meteor, etc. Using several of these different tools helped me develop better pattern recognition. Over time my ability to efficiently use or learn these software engineering utilities increased. This class is required for my degree, but I thoroughly enjoyed taking it and developing new skills.
When we got to the section where we installed and set up IntelliJ Idea which is an IDE or Integrated Development Environment. Plus we installed and used NodeJS to run our JavaScript code in IntelliJ. Then we set up ESLint, a static code analysis tool that will look through our code and point out any problems/errors in our program. We also used a specific xml file with the ICS code-style used for this class. There are many benefits to establishing an efficient coding environment, ultimately leading to faster development. ESLint drastically improves my programming speed because it will often provide me solutions to incorrect code and help with the way I structure my program. IntelliJ also provides a multitude of different coding tools and assistance to its users. Utilities like hotkeys to run commands, file organization, massive store of different plugins, and even AI help through GitHub CoPilot. One of the most noticeable things is when coding without an IDE it is much harder to get the right spacing for each line of code. Which adds time to programming because you have to worry about code formatting and overall it’s just irritating. Another IDE I have used is Eclipse as well as other programs to code with that lacked the benefits Eclipse and IntelliJ contain. Properly handling and setting up your development environment and configuration management is crucial to software development as a whole. An example of a metaphor of how this is related to real life is like a chef with his kitchen and cooking ware. Where the IntelliJ environment is the kitchen and the developer tools are the chef’s kitchenware. As I continue my career in software engineering I will definitely plan on using many different IDEs for my benefit.
When working on an important project with several other team members it can be difficult to organize. A method of agile project management can greatly aid with that problem. The style that I have most recently used and will talk about is called Issue Driven Project Management. For our ICS 314 final project we worked with three other members on developing a website application using this structure. In brief, this project management style focuses on having some form of a project board and proposing “issues” or sections of the program that need to be completed. In case any problems are too large or bugs are encountered, we can divide and conquer to create sub-problems or new issues that need to be worked on. This way of project organization gives a sufficient amount of freedom with flexibility that isn’t too overwhelming to the programmers. You simply add an issue to the board when necessary and self-assign yourself to the issue you would like to work on. There will still be times where communication is a priority to catch up with your teammates and talk about equally dividing up issues. In the future there will certainly be times that I practically use this in my personal projects or jobs. Managing project work was extremely convenient and simple, while keeping us on track to finishing our application on time.