I remember having to buy a new laptop Monday morning at school because I had left my original laptop in a mess over the weekend. After opening and installing the required programs to SSH into the IT labs computers, I was finally able to look over the code my partner had already started. It took me 3 to 4 hours to read through the code and understand what was going on.
The concept behind our current code seemed like it would work, but for some reason it just wouldn't give the expected output. I would pass the program a file and it would return what looked like a cat command in unix. I thought this had to do with our regular expressions we wrote, so I went through them all to see if they were correct. I even thought maybe our ordering was wrong and tried that too, but none of what I tried was working. Since I wasn't confident in the changes I made, I did not commit any changes and waited until I could talk face to face with my partner. When my partner and I were finally able to meet up and tackle the program together, we were able to fix all of this.
When there are a set of two eyes to look at the code, you're able to pick up mistakes and double check code a lot faster. My partner is quite the programmer, but like me, sometimes mistypes code. Together we can see what each other is doing and prevent little mistakes like spelling from entering into the big pool of debugging what has gone wrong. Or while writing code, he'll suggest another method or way of writing the same function that may be more readable or faster.
After strenuous hours of programming, we finally figured out that it wasn't our regular expressions that were wrong. It was because we had forgotten a very simple, but important character "^" in some of our expressions towards the end. And we also realized that we were printing out the name of every terminal because we stored everything in our code. Instead of changing this, we decided to just alter the print method to only print certain names of terminals.
Working together is overall better than working as an individual. I believe the pros outweigh the cons. When working together we're able to make a decision right on the spot, but when working individually there are some changes to the code that we may not want to make. Programming together is a lot faster than by oneself too, especially when you run into unexpected errors.