Welcome to the bitHound interview series, where we talk to developers about development, Node and working with teams. Our first segment is with the ever-talented Emma Jane Hogbin Westby, author of Git for Teams. Let's dive into the Q&A!
Tell me a bit about yourself and how you started in development.
My very first tech job was in 1996. Myself and one other woman were hired to be the "CQUEST Home Page Help Centre" at the University of Toronto. We had these stunning SGI workstations that had been purchased by the Geography department to make high end maps. Our job was to help professors create course websites. Of course, being summer, our "clients" were all out doing field research. We had fun learning the nuances of HTML (there wasn't a lot to learn at the time). I was studying Environmental Science, so it was very much a "self-taught" introduction to programming. Later I would take some classes from a local chapter of WebGrrls, and participate in various open source mailing lists (Webdesign-L being my favourite). Everything grew organically from there.
You just wrote a book, Git for Teams, what was your motivation behind that?
Git for Teams had an interesting start. As an Ubuntu user, my first introduction to distributed version control systems was Bazaar. I remained a strong advocate of Bazaar during Drupal's evaluation of different distributed version control systems. It was my self-appointed job to find all the ways that Git wasn't as good as Bazaar. (Spoiler alert: Drupal picked Git.) The main complaint I had was the onboarding experiencing. At the time, it was exceptionally difficult to learn Git (it's still hard today, but it's always getting easier). In 2013 I gave a conference presentation called "Git Makes Me Angry Inside". It was a fun look at why Git is hard to learn, and gave folks some alternate ways to onboard their teams. One evening during the conference my friend Carl and I were at a pub and he wanted to show me some work he'd been doing. It was, of course, stored in Git. So there we are, in a pub in Prague overlooking a graveyard, looking at code. And I'm learning all kinds of new things that you can do with Git to examine history. And Carl is making it fun. It shifted my thinking. I wanted everyone to be able to have this fun experience with software that I had found totally frustrating. At first it was conference sessions, and workshops, then videos, and finally the book. Everything was iterating and learning about what people found hard, and figuring out how to cement some best practices for teams. I still find Git frustrating some days, but the community has been amazing. They are outrageously helpful and supportive. If you can handle a relatively high volume mailing list, I recommend subscribing. There's also a much quieter IRC channel. https://git-scm.com/community
What are the biggest challenges you see for Node.js developers using Git?
Interesting question: I can't think of any Node-specific challenges to using Git. (Maybe others can! Got any ideas? Tweet them!) Every team I've worked with has benefited from a standard "how we do version control" one-pager. You don't need to write a lot of documentation, but if you want to find (and fix!) things quickly, you will benefit from being consistent with how you put things into your repository. From a code perspective: The biggest problems I see generally are single, big files that need to be refactored. (This can be easier to track if you have several smaller files.) And perhaps tracking of information that shouldn't be (e.g., your API keys / login credentials). (You should be using a .gitignore file to un-track text editor files, special setting files, and the like.)
If there was just one thing you could tell the Node.js team to do, what would it be?
You were right about the whole asynchronous thing; I was wrong. I'm glad I didn't wager any money on it. ;)
About Emma Jane Hogbin Westby
Emma Jane Hogbin Westby is a technical project manager, author, and trainer specializing in version control with Git, Drupal, and team dynamics. In 2014 she released a set of videos with O'Reilly: Collaborating with Git. The companion book, Git for Teams, was released September 2015. Her previous books (Drupal User's Guide; and Front End Drupal) and videos (Drupal Fundamentals) were published with Prentice Hall. You can follow her on Twitter.
Stay tuned for our next instalment? Want to be part of the series? Let us know!