Week 6 is a bit of a watershed moment in many people’s Makers Academy journey. Week 6 is the week we left behind the walkthroughs and the tutorials and the comfort of knowing the pair next to you were working on the same problem – bring on our first group project!
Being divided into groups of five on Monday morning, we were all assigned the task of creating an AirBnB clone.
Step 1: Create an AirBnb clone.
Step 2: Present your AirBnb clone by COP Friday.
Free to choose our own technologies and to plan our time exactly how we wished, we were programmers unleashed. No rules! Anarchy! Down with the establishment! Or… let’s have a super organised stand up, project kick-off meeting and designate the first day to a condensed design-sprint. Nothing could contain us. Out. Of. Control.
In fact, the time we spent choosing our technologies and planning our MVP was invaluable. We didn’t write a single line of code for the whole of Monday and it felt great. By the end of the day, all five of us were completely on board with what we wanted to achieve over the next four days, and we felt confident in the technologies we had researched:
- Sequelize: Whilst building our Sinatra apps, we’d fallen in love with DataMapper. It was time to switch things up. In fact, working with Node.js, we were forced to find a new ORM, and after much internet searching we settled on Sequelize.
- Postgresql: Our beloved database. Wouldn’t change you for the world. Plus, super handy for deploying to Heroku!
- Mocha Chai: Because it sounded so tasty for testing.
By the end of the week, we looked back and were happy with our choices – I felt Express was just the right size for our application and testing was relatively straight forward with Mocha Chai. Our only real hiccups stemmed from ‘tricky-customer’ Sequelize – if we’d spotted this Reddit thread earlier, we may very well have had second thoughts about using it!
After five weeks of pair work, we had become pretty comfortable with the one driver/one navigator dynamics. Group work is a different beast entirely. We spent much of our stand up on the Tuesday deciding on how we would split up tasks, and setting up a Waffle board for our project.
In fact, Waffle was one of the week’s biggest successes. It’s a really great ‘to-do list’ type tool allowing you to create and assign people to project ‘tickets’. The awesome thing is that everything’s linked up to your GitHub repo – as soon as a ticket’s created, an issue is opened on GitHub. Then, through some kind of sorcery (and if you remember to name your local branch correctly…) whenever when someone makes a pull request, the ticket on Waffle migrates to a ‘In progress’ column. When the issue is finally merged to master, it flies into the ‘Done’ column. Magic! It’s also a fab morale booster watching the ‘Done’ tickets stack up (even when secretly you know half of them were to test out Waffle with README edits. Shh.)
Waffle helped immensely with organising daily tasks and retaining visibility on what each pair was working on. We also found that sticking religiously to the routine of morning stand ups and having midday check-ins kept the team on track. Everyone was always up to date with how different parts were progressing and if a pair ever came up against something beastly, everyone pitched in to help.
Especially useful during those sticky patches, was mob programming. Sounds exciting, huh? Well, it is! Although maybe to less of an extent than you’re hoping.
Mob programming is a software development approach that brings all the people, with all the great minds, with all the ideas together. Everyone works on one screen, in one space and awesome things happen.
If a pair had been stuck on the same ticket for longer than was productive, and no-one in the group could suggest a quick answer, we often took to mobbing. This involved throwing the offending code up on a big screen in one of the meeting rooms and all knuckling down together. This was a real bonding experience, and in most cases the answer presented itself soon enough – it definitely had something to so with my awesome team members, but I found it a really creative way to work through issues and enlightening to witness so many problem-solving brains at work at once.
All in all, this has been by far my favourite week at Makers and I was really happy with what we managed to achieve in four days of coding with completely new technologies. It’s made me excited to continue working on projects in groups at Makers – and eventually in the real world. If my future career is anything like this week has been, I’m going to be a very happy chappy.