As Winter Term of my Senior capstone at Oregon State University comes to a close, I would like to review many of the great things I’ve had the opportunity to learn, whether on the technical side or while collaborating with my teammates. Below are 10 different things I’ve learned while working on the project so far:
Technical
- Front End and Data Reactivity in Vue
- Vue itself has been a great framework for our team to construct the application. However, some of the data reactivity features have proven to be challenging to learn. Luckily, our team has been able to help each other in learning the different options we have in Vue and how to use them, such as data properties, component props, computed properties, observables, and watchers.
- Unit Testing with Mocha and Chai
- To test our backend JavaScript modules, we have been using Chai to create unit tests and Mocha as our test runner. Since one of our team members initially learned how to write tests and get things set up, it became simple for I and the rest of the team to learn how to create and run our own tests, as well.
- Building UI with Vuetify
- I also had the opportunity to learn how to use the UI component library, Vuetify. Vuetify was easy to set up, apart from some issues with icons and themes (that were fixed relatively quickly). Vuetify allowed our team to quickly build beautiful user interfaces that matched our UI Prototype previously built in Figma.
- CI with GitHub Actions
- Our project uses GitHub actions to run a build, install dependencies, run unit tests, and run our linter when a pull request is created on any branch other than the main branch. I was involved in setting this process up by providing suggestions and reviewing the related code changes from the team member who worked on this.
- Jira Development Features
- Through our team’s project management software, Jira, I was responsible for setting up our tasks in the Timeline View and helping with integrating the Jira with GitHub, to provide better visibility for our progress. I also learned how to use the Versions feature, as well.
Teamwork/Collaboration
- Ask questions early and often, especially when gathering requirements. This can help save development time as well as reduce the chance that code will need to be reworked.
- Always prepare for meetings. This allows you to respect your own time as well as others’ by staying organized, creating meeting agendas, and prioritizing topics.
- Decision-making is important. It’s better not to leave a topic or question unclear with no conclusion or action to work towards. Even if there is no conclusion, it can be helpful to know who will look into it or when it will be revisited.
- Trust your Teammates. Better to trust and let team members have ownership over their work, but let them know you can help if needed.
- Communicate Concerns. Let team members know if there is an issue instead of staying quiet and hoping they eventually know what needs to change. If you don’t ask, how will they know that you need something?
Summary
Capstone has enabled me to learn not only many new topics in web application development and testing, but also important ways to foster team collaboration and communication, many of which couldn’t fit into this list. It’s been an awesome journey so far and I look forward to learning even more in the third and final term of capstone!
Leave a Reply