LookFar Labs17 December 2015
Teams, Pants, and Learning in Software Development
“The site is down; can you get it back up?”
The week prior I had sat in on a 20 minute overview of a new system another team was building out. This was a brief meeting just to give the rundown in the event the system went down while the lead developer was out of town. My team had never used this specific tech stack, though we were familiar with how similar stacks work. We learned a few new commands here and there, and left feeling confident that we wouldn’t have to tackle anything too out of the ordinary. Famous last words.
From our initial investigation, the server had crashed and rebooted; whatever was in the session before no longer was and executing the start command returned cryptic errors. This was the worst case scenario. No one initially knew how to get the system back up.
No problem. We’re a smart team. We can figure this out.
We quickly surrounded the computer that imported the ssh key first, then started discussing potential solutions as we combed through the logs. We talked through why each idea may or may not have negative consequences. One nice thing about the system being down: there weren’t very many negative consequences. Being able to bounce ideas off of a group of people is hugely helpful in situations of uncertainty. It took some trial and error, but we quickly had the system – one that none of us had seriously worked with before – back up and running.
These are the types of experiences I’ve come to expect when working with my team. No, no, not the unexpected system downtime but rather the passionate curiosity to learn, the positivity, and the willingness to collectively shoulder a task when something doesn’t go right. Being able to work so cohesively as a team is just one of the reasons why I love working at LookFar: we trust each other.
Teams are another tool to utilize. It took me quite a while to recognize this when I first started software development. The value that a group of bright people can offer when grappling with a problem is obvious, but being exposed to new technology and ideas, or even just casually talking an idea through is a huge asset for anyone. I believe this is especially true for those staring at a screen all day. I don’t fear being wrong about a topic because being wrong is often the first step to learning the right thing. We’re lucky to have an environment that encourages and fosters the sharing of ideas, concepts, and information so that I’m constantly learning.
Having worked as a freelancer, I’ve gone through periods where my output ground to a halt because problems took longer to solve by myself or because decisions were made that negatively impacted forward progress. Sometimes, I’d simply get stuck in my own ways of working. Freelancing gave me little incentive to look up new tools or otherwise break from the ones I was comfortable with. Being in an environment where working together is the norm I can freely ask a team member about a specific topic, platform, framework – you name it.
The office also comes with comradery, which I missed while working freelance. I certainly worked with other people but that was either mostly remote or the relationships were purely professional. I found that at times my home-life balance would become skewed while freelancing. I definitely valued the flexibility of being able to work whenever I wanted; however, I would often abuse that flexibility at the expense of performance, as well as my own sanity and health.
A friend of mine who is a freelancer said to me “I don’t have to wear pants while I work” which is quite the bragging right. Who likes wearing pants if you don’t have to? There’s certainly a balance to this that I found in my own life. There are days where I do work from home and pants aren’t a requirement. But nice as pantslessness and the other undeniable perks of working as a freelancer are, I still prefer to work with a team, even if that does require being fully clothed.