We're Just Getting Started

12 Dec 2019

Whew, it’s definitely been a semester for sure! This has definitely been one of the more important semesters throughout my college career, as I have learned a lot of foundational things that will set me up for success at points in my career. Throughout the semester, we have navigated through each of our modules learning different components of a technology stack that taught us all of the different components of Software Engineering from Open Source Development, Configuration Management, Functional Programming, Coding Standards, and all other kinds of things! Learning each of these components has been tons of fun (alright, maybe except for coding standards and testing), and I am definitely excited and grateful to have these valuable skills under my belt to face the big bad world of Software Engineering.

‘Git’ good at what you do

In my opinion, having a foundational understanding of Git was one of the most important things that I have taken away from this course. Git is a tool that is used among teams to collaborate efficiently and effectively, and is normally used as a command-line application, which consists of typing commands manually in the command line. When learning it for the first time, typing new commands in is prone to error, and gives us another thing to worry about when we were learning the system for the first time. By using the desktop interface for Git, we were able to grasp the concept of how Git worked and how we could use it to contribute to projects instead of worrying about typos in our commands. I mean, looking at the difference between the two is already self-explanatory.

By getting a solid understanding of the Git workflow, I feel confident that I can take this skill and understanding and jump right in on contributing to other public projects. The understanding of Git that I have received from this course will stick with me throughout my career as almost every job out there needs familiarity of some kind of large-scale project/configuration management system.

‘Agile’ career moves

Another one of the more important things that I have learned throughout the semester was Agile project management. More specifically, we learned a method of Agile project management which was called Issue Driven Project Management (IDPM). IDPM consists of work being done in milestones, and individual components called ‘issues’. Issues are opened by developers either for incorporating improvements, or from bugs that are reported from users in the early stages of testing. Developers on a team will take each issue and work on them for a period of time until they are able to implement the requirements of the issue, save their changes into the main project, and close the issue that they were working on.

This was very important to me as it allowed me to see what my teammates were working on, and what they were taking care of so that I could focus on other things that needed attention. Using IDPM provided a lot of transparency among the team as we were all aware of the things that we were working on, and were able to take care of bugs and implement new features relatively quickly.

Here’s an example of one of our project boards that demonstrated this process.

The Takeaways

“But wait!” you might be saying! You might be asking about all of the technical knowledge that was bestowed upon me throughout the course! While I am definitely grateful for all of the technical knowledge that I have obtained by learning the MeteorJS framework and working with MongoDB, I feel like the key takeaway were the “soft skills” that I have learned. Although being technical is definitely important, in my opinion, it felt more important to get familiar with things outside of the scope of programming or development. Learning how to use Git effectively felt so important to me because it feels like it will be extremely ubiquitous in the Software Engineering industry, almost like a Gold Standard of collaboration among the software development community, and will follow me throughout all of the different jobs that I may work at throughout my career.

Additionally, I feel the same way about Agile project management as well. Learning a project management system and getting used to a process/workflow will help me a lot more in my career as I will have an idea of what to expect, as Agile project management is a popular method of project management.