Something I have been struggling to understand is why some students 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 has also been vastly important although the uptake from team members has sometimes been a struggle..
Why don’t we just use Facebook messenger?
..with some just wanting to use Facebook messenger. I insist that Slack is a much more appropriate environment for working on a professional project for the University. Slack’s ability to easily search for old messages, upload documents, and keep track of them is superior to other messaging platforms.
There are a few courses at university that attempt to teach Agile and the concepts of Scrum to students. 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 which really pushes students to come out with these skills.
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.
Agile for Students
I was asked by one of my lecturers towards the end of this semester for feedback on the use of agile for students doing their final build course. While I feel that setting goals for students to achieve is very useful, there is always the risk that students won’t take the process 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.