When I registered for this class last year, I did not know what to expect. I originally thought that we would primarily be building websites. This turned out to be true, but we also covered many other important topics. To start, we were introduced to a multitude of new coding languages such as Typescript and JavaScript. We also made use of libraries such as React, and frameworks like Next.js. Beyond the practice skills we also learned how to think and behave like a software engineer. Through the course of the final project. we were taught how to build, managa, and collaborate on software responsibly and effectively. Overall, this class taught me that software engineering isn’t just about code, it is about solving problems, working with others, and utilizing good practices and descions.
Agile Project Management is a an approach to software development that emphasizes literative progress and team collaboration. It encourages breaking work into small, managable tasks that are continuously tracked and evaluated. This mindset was utilized by our group during the final project, especially when some parts of the code needed to be updated or fixed during or between milestones.
Specifically, we took advantage of Issue Driven Project Management. This is where deveopment work reloves around the Github issue tracker. Every task, issue, or bug fix was assigned to an issue. Each issue had a description of the task or problem, its own branch, and was assigned to a spefic person on the team. This method created tracability and accountability, everyone knew who was working on what and why.
I think this method of managament can be applied to more than just code. I can see myself using it for future projects or assignemnts like a research paper. I think turning every individual task into a trackable issue makes it easier to manage deadlines, and track progress.
Prior to this class, the term “open-source” was unfamiliar to me, I thought it just meant anybody could access it. Now, I understand that it is a model that is built on collaboration and transparency. This semester, we worked with sort-of public Githib repos duirng our final project. We learned how to follow the coontribution guidelines, and make meaningful pull request / commit messages. Additionally, we based our own repository off of the Bowfolios repository created by the professor.
This process has taught me how to communicate with my peers / other developers. Hhaving code that works is not enough, it needs to be understandable to everyoen involved in order to be truly sucessful. I learned that my actions, regardless if it is a bug fix, documentation, or functional code, is contributing to a something that extends beyond me. I think these principles can apply outisde of coding as well. In any group based project, open contribution and clear guidelines can lead to better teamwork and better results.
Overall, I think this course had broadened my understanding of software devlopment. It has shifted my mindset, my thought process has eveolved from “how do i code this?” to “how do i code this well?”. I now realize that team work, organziation, and planning are key elements to software engineering. Practicing agile project managment and open collaboration has greatly improved my work ethic. More over, I can apply them to non-coding related tasks as well. I have enjoyed ths course and look forward to furthering my education.