Week 6 – AirBnBird

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.

Finito.

giphy (3).gif

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.

Technologies

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:

  • Node.js with Express: With just one week of JavaScript under our belts, we set ourselves the challenge of completing the project using Express. Fools? No way. Fearless!
  • 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!

takeout-feature-image.png

Teamwork

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.

Mob programming

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.

Round up

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.

Puke.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s