Something I have been struggling to understand is why some developers dislike courses that attempt to teach the software process. Apparently these are considered a “waste of time”. I would like to take a moment to give you reasons as to why this is important learning material.
Languages are the tools for building great things.
Courses with a focus on teaching these tools are very important but, for the longest time at university I was wondering how people effectively work together to actually get stuff done.
I have been learning a lot about how to collaborate effectively through several courses at University. The biggest improvement to my learning was picking up git and getting started with Github. Git is the defacto “let’s work together” piece of software that everyone knows and loves, but there are more people need to start using early on.
Trello really is invaluable for working together. Github recently introduced their own project slash Trello board like tracking system and it’s amazing. Trello works in a similar way where you can create small tickets that you assign to people, similar to github issues. Being able to look over these tickets is great for tracking your team. Slack is also an incredibly beneficial chat tool to use.
There are a few courses at university that attempt to teach Agile and the concepts of Scrum. After doing courses like CSSE3002, the software process, and DECO3800/3801, final year design and build, I can safely say I am familiar with Agile. They even put marks towards using your Trello board consistently to operate in this manner.
An interesting thing that I learned this semester was how effective it is to work in short sprints to complete tasks. Setting short periods of time to achieve goals results in goals that are much more reasonable and more likely to be completed. It also gives you a chance to finish a piece of content and get feedback from your client right away.
This links back to another post I made about the importance of feedback. By developing software in this manner you can get this valuable feedback consistently and most effectively communicate your progress to your client.
I was asked by one of my lecturers towards the end of this semester for feedback on the use of agile for in courses. While I feel that setting goals for to achieve agile usage is very useful, there is always the risk that it won’t be taken seriously enough.
If this was a workplace and people had spent a long time trying to get a job here, the process would be taken a lot more seriously, small checkpoints and sprints would be adhered to. However, I’m still happy to have had the learning experience.
Throughout this semester I have had a lot of chances to work with others to accomplish much larger tasks than I would be able to on my own. I firmly believe that these tools and processes have been the reason my group projects have gone so well.