Agile project management is a very useful skill to have and I’ve learned a lot about it in my software development course. Agile project management includes project planning techniques that help you collaborate more efficiently as a team, writing helpful user and developer documentation, and applying issue-driven project management using GitHub. I learned a great deal about team project planning techniques, the team I worked with on my last project was very helpful and I believe this is at least partially due to our project planning. We met at least twice a week to work on the project, created a discord group with separate channels to post when we committed to Github, reference files and websites, and when we were available for meetings.
Writing documentation for users and developers was challenging at first. Writing documentation for another developer was simple, but it was easy to forget things that a user would need to know to use in the application. Writing documentation for a user, or at least thinking about how a user would navigate an application helps you figure out how to fine-tune your features. Applying issue-driven project management was invaluable. I have worked on team projects previously, but it was quite difficult to keep track of what each team member was working on and we would inevitably create conflicting files, which just creates even more work. Creating an organization in Github and using issues helped my team and I reduce conflicts and keep track of what we wanted/needed to get done.
I have used my fair share of development environments such as Eclipse, Unix, and IntelliJ Idea. IntelliJ has been my favorite so far, I enjoy integrating IntelliJ with Github and being able to keep my changes in branches. If I make a mistake or change something that I’m not sure about, I can get advice or delete my changes and return to the original version of the application without mistakes. It also makes working with a team much easier, two years ago I worked on a software engineering project in which we continuously copied and pasted our code into a shared google docs document so we could keep track of changes, this was extremely tedious and not effective but we did not know better at the time. Now, I think I’ve learned enough about development environments to properly navigate different environments, and effectively use them with my team.
Overall, I have learned so much during this class. I feel that I can effectively develop websites with my knowledge of javascript, HTML, CSS, and Meteor. But I furthered my knowledge in backend development as well. Engineering is not so much about memorizing each programming language, but understanding how a computer or website “thinks” and once you master that, it is not difficult to learn new programming languages and implement your problem-solving skills when you’re working on a project, I feel that software engineering has improved these skills immensely.