Long time no see bah-log! My school term and the time building up to my co-op term at ThoughtWorks’ Toronto office has been pretty stressful and drama-filled. The holidays sure bring out the best in people, and that’s why we have a new year.
Lately, I’ve been what ThoughtWorkers call “on the beach” – namely, I haven’t been assigned to any client projects. This means I have time to dick around with sample apps, passion projects, and what not. So far I’ve had time to review Ruby on Rails and familiarize myself more with Android development. The most valuable skills I am picking up is Test-driven development (TDD) and pair programming. I definitely won’t do these terms justice through my hand-wavy explanations of them, but I’ll do it anyway!
In a nutshell, TDD is pretty much what term entails – development is done through automation testing. Moreover, the developer must write failing test cases which are then fixed through implementation. These short iterations of writing a test and getting the test to past is done with the goal to write robust software that requires minimal debugging time. As a self-taught (sometimes self-entitled) developer, I have always been used to writing all the code needed for basic functionality and then spending the rest of my time debugging it. 80% of the time it’s a frustrating process, but it’s become an old and reliable habit over the years.
Another reason why I didn’t bother picking up the TDD methodology was because I hate writing tests! There’s a huge misconception that software testing or quality assurance is tedious and monotonous. In some cases, it can be if you’ve written shitty tests. But of course, without these tests there would be no viable way to catch errors and fix problems.
The earlier these problems are fixed, the less the burden is later. And of course, this acutely relates to my life at the moment.
Yeah, it really does. Not to go into specifics, I struggle with “letting go of things”. Living away for school turned out to be great. I could live in denial about my problems and be the person I wanted other people to see me as. But every time I came home (I use this term hesitantly), I felt that my problems have all come crashing in at once. It’s overwhelming and it makes me too anxious to handle. Strangely, working on TDD for the past week has really got me thinking about how I have debugged the different components of my life. Yes, it’s very cheesy. But whatever, cheese is good for you.
I have largely dealt with these components alone. Alone, in the sense, that I have refused to let other people in. For those who don’t know me particularly well, I’m a furiously independent person (or that is what I aspire to be at least). I like having control and talking to myself (both aloud and silently). As a developer, I have also been used to this type of behaviour. So when it came to practicing pair programming (enjoy my segue?), I had to make an active attempt to involve the other person. In development and in life, it really does help to have a fresh pair of eyes evaluate the situation. We shouldn’t be afraid to be vulnerable or show weakness.
Although becoming a better developer is my major goal for this term, I really also want to focus on debugging less in life. Debugging is such an ugly word – it implies that our problems are bugs (and most people think they are vile). Turning 21 on Tuesday got me thinking how fast life goes by. It may be quarter-life crisis Julia speaking, but I definitely want to be more open and outspoken about what’s important to me. I think I have found a passion project (if you read my previous post).
Oh yeah, shameless plug for a hodge-podge comic I made a couple of months back (this isn’t my passion project by the way).