Having good management skills can help in not only software development, but in other aspects of our lives as well. One project management skill that I recently learned is one Agile Project Management called Issue Driven Project Management. While doing a group project for my software engineering class we had to find an approach to managing our project. This is when we learned about Issue Driven Project Management. It is an iterative approach to managing software development projects, mainly focusing on continuous releases and improvements based on feedback for each iteration. Each iteration has a fixed length, continuous adaptive planning, and continuous testing. We divide the work up into tasks that are specified by issues. Each issue is assigned an owner and this allows each person to have at least one issue that they are working on. These issues fall under milestones.
For our group project, this way of managing was very helpful since we could always keep track of what needed to be done and who would be focusing on each task. We could split up what needed to be done evenly and ask for help on any errors or issues we came across. We can know that we are successful in managing our project if there is a task for everyone to work on, we all know what task we need to work on and what needs to be done next.
Not only in web development, but we can use Issue Driven Project Management in many other types of projects and even in our jobs in the future. Although this style of project management works well with developing a web application, I could see myself using this in many other ways. One example would be when I have to prepare a team presentation or when developing a game. Usually when preparing for a presentation, there are many different topics to cover and research that needs to be done. We could set up a few milestones and issues within those milestones to finish our presentation efficiently. The first milestone could be dedicated to research, the second milestone for summarizing and putting the information together, and the final milestone for making the powerpoint look presentable and cleaning up. Within each milestone, there could be certain topics that need to be researched and put together. These can be assigned to each team member, which would be an issue each person takes on. Similarly in game development, each aspect of the game can be broken down into milestones and the features that make up each aspect can be separate issues assigned to different people on the team. All in all, Issue Driven Project Management can be used in many situations and there are other Agile Project Managements that can be used as well.
Design patterns can be taken to a whole new dimension. According to Christopher Alexander, a design pattern describes some sort of problem in our environment that occurs many times, but we can come up with a solution that can be used over and over, without doing it the same way twice. We can use design patterns to solve the problem that occurs in different environments with different methods.
We can also see design patterns in game development and in-game. In open-world games, players always put a lot of effort into designing their characters and equipping themselves with gear they find throughout the game. Knowing how all the items and gear work together help players come up with their own strong and creative builds/playstyles. We have to start opening up our minds and thinking differently. Maybe there is another way to code this section? Rather than these if/else statements, maybe we can use a switch function? Maybe we can condense this down and make it simpler? A design pattern that relates to this characteristic is the singleton pattern. This pattern is simple and quick to deploy, which can save time.
In the future, I want to travel more all around the world. I believe this would be a good way to apply everything I learned. Design patterns is something that can be used outside of web development. Everywhere we go, there are issues that need to be solved. In each situation, we need to find an approach that best fits that environment. That is the beauty of design patterns. We can find a reusable solution to a commonly occurring problem within a given context. It may be reusable but never the same. We develop these solutions through trial and error over a period of time. This becomes a blueprint to solve a problem in many different situations. This makes our lives easier and more efficient.