Thursday, August 14, 2025

CST438 - Week 8

 List the 5 most important things that you learned in the course, and why you chose them

  1. Teamwork
  2. Spring Boot
  3. React
  4. GitHub
  5. Agile and Waterfall

Teamwork

I think one of the most important things I learned this course was how important teamwork and clear communication is. The group project in this course, called for a lot of teamwork, orchestrating the different contributed individual pieces into a larger project that worked and met the requirements. Working together in that capacity takes effort.

Spring Boot and React

Learning to use two new tools in Spring Boot and React was both a lot of fun this course, but also helped me feel comfortable in their use and how I could possibly incorporate them into future projects. What was interesting with their use in this class was that we really got to see a complete product developed with them, not just a simple problem, but an end to end product.

GitHub

 This was the first time I felt we used GitHub as one might actually use in a place of employment. What I mean by that is, I've used git or GitHub before but typically it's just for my own purposes. This course really took advantage of several of the abilities gives you, like project planning, issue tracking, pull requests with comments and approval (or not). It felt much closer as how operating as a software developer in a work setting would feel.

Agile and Waterfall

Learning about these software development lifecycles helped me to understand how larger organizations mange to get projects done when spread across teams. Seeing the advantage (and disadvantages) to each of them was insightful and allowed me to think of ways I work best and how that might align with one way or there other. 

Saturday, August 9, 2025

CST438 - Week 7

Describe some of the differences between using an Agile process and using a Plan and Document (or Waterfall) process

The Agile and the Plan and Document are two different processes ultimately looking to produce the same thing, great software that meets the end customers needs. Each process goes about this goal in very different ways, each with their own advantages and disadvantages.

The Agile process is all about quick, short iteration cycles. A developer takes input from the customer/end user and focuses in on one small aspect of the input, quickly iterating on a new feature or fix or behavior change. They then repeat these small iterations as necessary until all the feedback/input from the customer/end user is addressed.

The Plan and Document process (or Waterfall) takes a much longer, sequential view of a project. It sets to understand all the requirements, all the possible timelines, all possible scenarios before actually starting any work. The overall goal is to properly estimate accurate time and effort to each stage, so you can plan out your work and stay on track and deliver an end product on time, containing the planned out requirements.

The Agile process has advantages in being locked into a continuous cycle of feedback and improvement; short, quick cycles that lead to the end user getting results faster. By also using short cycles, typically there's less risk; one iteration gone awry doesn't spell disaster.

The Pan and Document process has advantages in that it's predictable and easy to understand the current progress of the project; Everyone has a clear understanding of were they and others should be in development of a project. To that end, when working across multiple large teams the detailed planning and documentation helps coordinate everyone.

Tuesday, August 5, 2025

CST438 - Week6

Write a weekly entry describing important things you learned this week. 

This week we worked on system tests for the registrar and gradebook services we completed previously. Going through the exercise of creating system tests for our previous work, helped to enforce how it's important to plan out, and carefully design a system so that you can efficiently test and validate it. This was evident in things like how the react frontend used `id`'s specific to an element we needed to interact with. This week also was a great work working as a team, we communicated well over discord when we ran into issues and helped each other troubleshoot and reason through issues we hit. It taught me it's okay to seek out advice from peers, even if they might not know the exact answer, talking and discussing the issue can help lead to the next step.