CST 438 Week 8

WELCOME TO WEEK 8

Learning Journal - 


This week I reflected on the five most important things I’ve learned in this course and why they stood out to me.

  1. The SDLC Phases
    Understanding the software development life cycle helped me see how projects are structured from start to finish. Breaking work into phases like requirements, design, implementation, and testing makes it easier to stay organized and avoid skipping critical steps. This gave me a better framework for thinking about my own assignments.

  2. Agile vs. Plan and Document
    Learning the differences between Agile and traditional Plan and Document (Waterfall) processes showed me that there is no “one size fits all” approach. Agile focuses on iterations and continuous customer feedback, while Plan and Document emphasizes stability and complete specifications. I chose this because our labs showed how Agile aligns better with frequent testing and changing requirements, which is closer to real-world software. However, it was also important to see how Plan and Document works since both have their strengths. Plan and Document depends on fixed requirements, detailed design, and cost estimates up front, while Agile uses stories, story points, and incremental design that can adjust to change. This comparison helped me understand why Agile is more flexible, but also why Plan and Document can be useful when requirements are stable and the cost of change is high.

  3. Test-Driven Development and Larger Testing
    Writing tests first (TDD) ensures code meets requirements early, and reading about Google’s approach to larger testing made me see why automated system and integration tests are critical. I practiced TDD in AssignmentControllerUnitTest by writing failing tests for create, update, and delete with WebTestClient and a mocked RegistrarServiceProxy, then implementing the controller until the tests passed. I used AddAssignmentSystemTest afterward to validate the full instructor flow through the user interface. Reading about larger tests helped me see why fast unit tests and broader system checks both matter for quality. This is important in my learning because it showed me how writing tests first clarifies the requirements, keeps the code focused, and makes it easier to catch mistakes early before they spread into other parts of the system.

  4. Code Reviews and Collaboration
    The chapter on Code Reviews stood out because it explained the value of having multiple roles: the author, the reviewer, and the maintainer. I chose this because in our group project, I saw how reviews catch issues I didn’t notice myself. It reinforced that reviews aren’t just about finding bugs but also about maintaining consistency and knowledge sharing.

  5. Practical Git and Version Control
    Finally, Git was one of the most important tools I practiced. From pulling the latest changes to resolving merge conflicts, I learned how version control supports collaboration and prevents mistakes. I picked this because I ran into real problems when merging branches, and fixing them helped me understand Git commands better than just reading about them.

Overall, these five topics which are SDLC, Agile vs. Plan and Document, TDD and testing, code reviews, and Git gave me the most useful skills for working on projects now and in the future.

Comments

Popular posts from this blog

CST 370 Week 3

CST 438 Week 7

CST 311 Week 1