Projects, team work and unicorns!

Last two weeks at Makers were all about projects and working in groups of 4 or 5. Before I talk about the awesome programmes we built, I would like to summarise few things that I learnt over these two weeks about coding as a part of a team:

  • If you would like to work efficiently as a team you have to follow the Extreme Programming(XP) values: communication, simplicity, feedback, courage and respect. A good example for this is that the team has to be in constant communication to avoid duplication of work or confusion over what is being built by each pair in the team.
  • You learn a lot not just from your team members but also being lost in a sea of information. You probably have an idea on the result you want but you don’t know how to get there, well, you have to search, read, repeat until you find what you need.
  • You can lost track of time way easier than pair programming, as it is your own project (which is more exciting), and you forget to give breaks (a big no no!).
  • Having two stand-ups a day and reflecting on how everything is going can be very useful to allow the team to discuss any areas that needs improving, hence making the team more efficient.
  • Never be scared of asking questions if you don’t understand a piece of code, or a concept and continue asking until you do. Take advantage of the amazing pool of knowledge that your team has.
  • Creating a programme from scratch with no guidance can be scary but it is definitely more rewarding.

Now, let’s get to what we built:

  • The first project week, we built a ‘Makers BnB’ using Ruby, which proved to me how much I love coding in Ruby. We used DataMapper to create models for ‘User’, ‘Space’, and ‘Requests’ as well as using flash for displaying errors for trying to create an account with an existing email address and so on. Without CSS, or all that prettiness jazz, the user login page looks so simple but really made me appreciate the amount of work that goes in to something we use everyday without thinking about how it works. Overall, the first project week was a success to learn working with the XP values and improve on coding with Ruby, PostgreSQL and DataMapper.
  • Second project week (last week) we built unicorns! Well sort of. The main aim of last week was to build a simple front-end to-do list app, and then extract a framework out of it. Needless to say, it was a great success. If you are interested in what it looks like you can check it out here: https://www.npmjs.com/package/unicorn-list. It already has 135 downloads and I am really curious if people are actually using it or downloading it to see some unicorns :D When you `npm install unicorn-list`, it will print a unicorn, oh and when you run the server with `npm start` it prints more unicorns. If you would like to contribute to our simple framework, please do so, there is always a lot of room for improvement! So if we put unicorns aside, this week I can say that I learnt how to build a server using node from scratch, TDD and BDD using Mocha, Chai and Zombie, (obviously) more Javascript, and extracting a framework and publishing it!

Next week we will be learning Rails, at last! Really looking forward to it. :)