Pair Programming is awesome!


Some of you may already be very familiar with the passage below, this is the Agile Manifesto and reads: We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more.

In this Manifesto a very important word is used, which Agile methodologies have come to find as an important factor in the whole idea and practice, and something which a lot of teams and people don't really use enough. This is known as collaboration. Reading on, you will see just how valuable collaboration can be and how you can use it in anyway, shape or form, even if you're in different locations.

In the last couple of days, I have come to find collaboration to be a very powerful and useful word and practice, which can do a world of wonders if it's used in the right way. Collaboration is effectively team working. You collaborate with your team to get a job done, whether it's developing that new feature, or understanding what acceptance criteria a feature should have. Now working with different scrum teams for the last few years has made me appreciate and understand why we collaborate, however, I didn't really see how it could be put into action outside of work, or better yet with teams or even two people trying to achieve a goal, who are not sitting next to each other.

Today I used the word collaboration in practice and it has taught me that trying to figure things out on my own isn't always the best options or a problem solver. Okay, that's not entirely true, you have to be able to think for yourself, sure, but asking for help is totally different than not being able to think for yourself and it's not a bad thing to ask for help, something which I rarely do FYI. Aaaanyways.... what I am trying to get at is that any kind of collaboration to try and solve a problem is far better than trying to solve a problem alone, and as we read above, the word collaboration play a very important part in the agile manifesto.

About a month ago I tried to install Ruby and Cucumber on my laptop, now for those of you who don't know what Ruby or Cucumber is will think...Cucumber, Ruby? Wah?, Don't worry, the first time I heard it, I thought to myself "what a barmy thing to call a framework or programming language" Let's throw in another one like Gherkin, now I’m thinking "is there a reason why everything is based on veggies/fruits?" Aaaaanyways, slightly going off Ruby is a programming language much like Java or C++ and Cucumber is an agile software development technique , which you can read more about in my previous blog and why I think it's amazing.

Back to the story, so I tried to install Ruby and Cucumber on my machine, and I can honestly tell you I spent almost a week researching online, reading articles, posts, blogs and still could not figure it out - now I am a tech-nut, but my knowledge still needs to grow so in fairness there are  a lot of things which I don't know. So why on earth I didn't just ask someone is beyond me! So, yesterday I met up with one of my friends, who's a developer and Scrum Master and well basically he know his stuff, and he said, "I will help you install it after lunch", and I said - "yea right this will never work for one thing your in a completely different office, what if i need help or get stuck? and also I have work to do....this will take ages!" He simply said " it will take about 10 mins and we can use screenshots and Googletalk to communicate". At this point im thinking, "right he's going somewhere with this!" So I said, okay, "let's do it! - I like a good challenge".

So I ran back to my desk and within a matter of minutes I started installing Ruby on my machine, step by step in iterations, with the help of screenshots, sending messages and trying to clear all impediments that got in our way. Step one - DONE! The next step was to install cucumber, which in fact failed and didn't work the first time and second time round. So again sent through screenshots and error logs and after doing some digging my friend came back to me and said "HAH! You don't have xcode installed on your machine." So we decided for now to call it a day and be happy with the fact we were one step closer with having installed Ruby. I went away that evening installed xcode on my laptop and decided to leave Cucumber until the following day. "So I was like okay cool - small iterations and steps - cool cool - I’m good with that." So today, I came back, had xcode installed on my machine, and within a matter of minutes, Cucumber was up and running. This all took on average without delays, 10 mins. 10 MINS!! …against my 1 week.

So..... through this mini experiment, I realized that collaboration can be done in anyway shape or form, and sharing your ideas and experiences with others is sooooo important, because you never know, the answer maybe right in front of you, without you even realizing.