CST438 Learning Journal 8

The five most important things I learned in this course were the Software Development Life Cycle (SDLC), Agile development, testing practices, Git/GitHub, and REST service development with Spring.
  1. Software Development Life Cycle (SDLC)
  1. I chose SDLC because it provides the foundation for understanding how software is developed from beginning to end. Learning the different phases helped me understand that software development involves much more than just writing code. Planning, designing, developing, testing, deploying, and maintaining software are all important parts of producing a successful system.
  1. Agile Development
  1. Agile was important because it introduced concepts such as user stories, epics, backlog grooming, acceptance tests, story points, and team velocity. I chose this topic because Agile is widely used for managing software projects and allows teams to respond to changing requirements. Comparing Agile with the Plan and Document approach also helped me understand that different projects may require different development strategies.
  1. Testing Practices, Including TDD and Mocking
  1. Testing was one of the most important topics because software needs to be reliable before it is released. Learning about unit, integration, and system testing showed me how testing occurs at different levels. TDD was especially useful because it encourages developers to write tests before implementing functionality. I also found mocking valuable because it allows individual pieces of a system to be tested without depending on every other component.
  1. Git and GitHub
  1. I chose source control because it is essential when multiple developers work on the same project. Commands such as clone, commit, branch, checkout, merge, push, and pull provide a way to organize and track changes to source code. Learning how merge conflicts happen and how to resolve them was also important because conflicts are a normal part of collaborative software development.
  1. Developing REST Services with Spring
  1. Developing a REST service with Spring was important because it connected several concepts from the course to an actual application. I learned how GET, POST, PUT, and DELETE operations correspond to different actions, as well as how entity classes, repositories, JPA queries, and REST controllers work together. I chose this topic because it provided practical experience with developing the backend of a modern web application.
Topics I Would Add or Remove
I would keep most of the current topics because they cover both software engineering concepts and practical development skills. However, I would like to see more material on CI/CD and DevOps added to the course. Since we already learned Git, GitHub, testing, cloud computing, and software development practices, learning how automated tests and deployments fit into a CI/CD pipeline would be a natural next step. It would demonstrate how the different concepts covered throughout the course work together in a professional development environment.
If I had to reduce a topic, I would spend less time on the Plan and Document approach rather than completely removing it. It is still valuable because it provides a comparison with Agile and demonstrates the importance of documentation and change control. However, I think some of that time could be used for additional hands-on practice with modern development tools, automated testing, and deployment.

Comments

Popular posts from this blog

Computer Science BS Journal (CST334) : Week 3

Computer Science BS Journal (CST334) : Week 5

Computer Science BS Journal (CST363) : Week 2