Tuesday, November 22, 2011

Self Organizing Team

Agile methodologies, specially SCRUM, have the notion of Self Organizing Team. Scrum is a process framework which has three main entities.
  1. Team 
  2. Product Owner
  3. Scrum Master
The team consists of developers, testers, business analysts, DBAs, architects. This group of people are given a set of tasks (Stories) to finish within a time box known as Sprint or Iteration. The team self organizes and delivers the functionality at the end of the time box. Last month I had the experience of being part of such a team.

Sabre, the company I work for, organizes Hack Day every year. The goal of hack day is to prototype a working software in 24 hours. The team chooses the idea for the prototype, technology and tools. The prototype is presented to a group of judges who decides the best hack. This year my team decided to participate in the Hack Day.

As a team, we started brain storming the ideas for the hack. One of my colleagues Raj Naini presented the idea of using Near Field Communications (NFC) to build a paper less workflow for Air Travel. We work on a product called Sabresonic Loyalty which helps manage points and rewards given to the travelers by the Air Lines. The travelers can use the points to purchase tickets and ancillaries for their travel. So we decided to develop the prototype which allows travelers to use their points using any NFC enabled smart phone. The workflow is simple.
  1. Traveler's phone stores his/her account information. So the phone can be used like a wallet.
  2. The traveler checks in at the airport counter kiosk where he is given an option to buy ancillaries such as extra baggage, leg room etc.
  3. If the traveler decides to buy ancillaries, he/she is given an option to pay using his accumulated points. At this point the traveler brings his phone near the kiosk and is able to pay without even touching. The interaction is made possible using the NFC interfaces in the phone and the kiosk.
After the idea stage, the team decided on the tools and technologies. Through 1-2 white board sessions, we decided on following.
  • nfcpy library for exchanging information between kiosk (simulated on laptop) and phone.
  • Mobile app using jQuery Mobile and Phone Gap
  • Atomosphere to send aync notification to mobile app
  • Loyalty product exposed REST API
On Hack day the team got together in a big conference room and started coding. We paired on various pieces of work. Each pair worked on a separate piece which had to later integrate to create a final prototype. It was amazing to see how well team collaborated when everyone of us was co-located. Being together in a separate room ensured that there was no external distraction from the rest of the team. However the team hadn't integrated different pieces until two hours before the deadline. And then all the pieces fit together perfectly to create a successful prototype.

Although my team didn't win the first prize, we came close second on the public voting award. The whole team felt great about the effort. This proved what is said about an agile self organizing team

"Bring a bunch of smart developers together, leave them alone to do their job and watch them create amazing software."


No comments:

Post a Comment