4 awesome ways we leveled up as a dev team

Grant Ammons
8 min readJan 11, 2016

BY GRANT AMMONS

A major goal you should have as an technical leader is to help grow the abilities of your team.

In order to do this, you need to deliberately cut your engineers’ time away from doing their actual work to focus on learning. On purpose. Knowledge workers need sanctioned time to develop themselves and they must feel comfortable doing so at work.

As the saying goes,

CFO asks CEO: What happens if we spend money training our people and then they leave?
CEO: What happens if we don’t and they stay?

Of course, your engineers will stay because you care about their happiness. Below are 3 excellent ways for your team to learn together as a group. Be forewarned: each of these take time and effort, mainly by you.

1. Host regular Lunch and Learns.

Get your engineers together once a week, buy them lunch, and have a lunch and learn. At PipelineDeals, we do this every Wednesday from noon to 1pm. We’ve been doing it for years and it’s been highly beneficial.

There are multiple ways to format a lunch and learn, but we have found that a very loose structure is easiest. Anything requiring a huge amount of commitment or planning will burn you out pretty quickly.

Usually we’ll end up talking about interesting tech news or stuff that is happening with the current project. The things we talk about generally fall into these categories:

Current events discussion. We frequently discuss interesting articles on Hacker News, podcasts, or other sources. It has prompted us to explore new tech, specifically in the Devops and Javascript worlds.

Show and tell. Sometimes an engineer will share their screen and talk about a particularly hairy problem they fixed, show a cool library, or demonstrate something useful. These are unplanned and informal, and always lead to a great disucssion afterwards

Retros on processes. On occasion, we’ll have a discussion about a process and how to make it better. Last week we had a great discussion about our hiring process that concluded with a lot of useful and actionable information.

General banter. One of our teammates has an unhealthy obsession with board games so we always like to hear about what he’s playing and what games he just ordered. Another engineer is really into MMA fighting, and has programmed a machine learning algorithm to predict winners of fights. These types of topics are really fun to talk about and it only serves to strengthen the bonds between engineers.

Hosting these events takes discipline and persistence, but the benefits are many:

Remote developer face time. Nearly all the engineers at our company are remote. A regular standing hangout where everyone gets together and chats is an excellent way of building camaraderie. It is the virtual water cooler, of sorts.

It fosters learning. I always walk away with new knowledge, or a curiosity for something I didn’t know before I walked in.

A time to socialize. Remember grade school cafeteria? You sit with your buddies, relax a bit, and just talk. You take a break from the rigors of classes and just get some time to socialize. That’s what the spirit of our lunch and learns are.

2. Watch videos together.

Watching a conference talk or instructional video together and then having a discussion afterwards is an excellent way to learn together.

This can be done in person or over a remote tool like Hangouts. One benefit of watching a video over Hangouts is the Group Chat on the side. When we watch conference videos on YouTube together, it’s interesting to see developers write comments in the group chat. It’s watching an “aha” moment in real time!

There are 2 video series that I highly recommend.

Watch Uncle Bob’s Clean coders. Nothing has done more to level up my team’s and my own skills more than these videos. Robert C. Martin (“Uncle Bob”) is the old, grizzled mentor you never had in your career. He has written 2 seminal books on the subject, Clean Code and The Clean Coder. He will teach you and your team how to properly write code.

Uncle Bob keeps the subject matter from being dry by frequent use of silly costumes, green screens, and interesting props.

It will likely take months to go through them, and they are not necessarily cheap. But they are worth every penny and the ROI your team will receive is far more than the cost. His videos will solidify concepts you have read in programming or software architecture books.

I personally remember a very distinct feeling, somewhere in the middle of watching the functions video. I remember thinking to myself, “Oh my. I have been doing this wrong for so long!” That is what leveling up feels like. When you finish these videos you will be coding completely differently.

Watch Gary Bernhardt’s Destroy all Software Screencasts. Gary’s videos are short, condensed, and packed with amazing information. He will teach you how to properly test your code. We found that we had to pause his videos multiple times in order for his lessons to sink in.

As a side, Gary is an amazingly fast typist and really knows his way around Vim. I personally have never seen someone edit code so fast. It’s astounding, and a true testament to the power of Vim.

Watch a conference video. Attending conferences is expensive and time consuming. The next best thing is to head over to http://confreaks.tv/ and watch an awesome conference video. Don’t know where to start? I would recommend checking out the “Always Popular” section and go from there.

3. Host a book club.

A book club is a great way to level up your skills together as a team. After polling a few other technical leaders, I found that most teams move between technical and leadership books. The format is generally:

  • Meet regularly (weekly or monthly), 30 minutes to 1 hour
  • Discuss a known quantity at a time. For weekly, 30–50 pages is about the right amount.
  • Discuss both technical and non-technical (business or leadership) books.
  • Some have a “Bookmaster” who gathers the talking points and leads the discussion. Others keep it more free-form, where everyone brings discussion points.
  • Feel free to cancel the meeting if there is a consensus that the conversation would not be productive.

99designs has had success with their book club format and it’s recommended reading.

Books my team can vouch for:

The Pragmatic Programmer is an excellent resource to becoming a better developer. It teaches you ways to write cleaner code through design patterns, better development processes and gotchas. Dave Thomas and Andy Hunt both have decades of experience in the software development industries and have condensed their lessons learned into this book.

Sandi Metz has an amazing skill in how effectively she can teach. She has been regarded for her 4 “rules” for developers, which are all excellent advice. Her book is very clear and easy to read, and you walk away with a much firmer grasp of object oriented design. Although this book is focused on the Ruby language, the concepts are applicable to most languages.

This book is so easy to read, and will get you and your team familiar with all of the major design patterns. Although the book is mainly in Java, the patterns are applicable to most procedural languages. Beware — after reading this book, everything starts looking like a pattern. Resist the urge to put patterns everywhere. Justify your reasoning to others before using a pattern.

Excellent curated book lists:

Derek Sivers’ book page is an amazing list of business books. And it’s not just a list either. Derek has a thorough writeup and review about each book he has read. His website is an excellent resource to find the best non-technical business books to read.

Jeff Atwood needs no introduction. His curated list of programming books is a fantastic starting point to find great programming books to talk about.

4. Speak at local meetups and conferences

Encouraging your team members to attend or speak at meetups and conferences is an excellent way of promoting a culture of learning, as well as building your team’s brand. You need to lead the way and set the example.

Lots of developers are introverts and speaking in front of a crowd is the last thing they would probably want to do. However it is an important career skill to gain. The more senior they get, the more likely it is they will need to speak in front of large groups.

Giving a talk forces an engineer to learn deeply about a subject. They will easily become an expert in the subject matter.

Zach Holman has an excellent website that has great resources when you need to speak in front of a crowd. He walks through preparing your talk, slide design, and preparing yourself for the big day. Highly recommended reading!

Another good resource I found is by Jeff Leek who gives some excellent advice about giving a talk.

Conclusion

And that’s it! The above 4 ways will help catapult your team to the next level. The above have worked wonders for my team.

Give your devs the time to better themselves, and you will be astounded with the results.

Grant Ammons is the VP of Engineering at PipelineDeals, a sales CRM platform. Grant is focused on building better software products and engineering teams through fostering an amazing team culture, developing software smarter, and utilizing the right metrics. He has hired and currently manages multiple development teams, defined and matured the software development process, and built an infrastructure with three 9s of uptime.

If you found this post useful, please click the ♥! Have you found other ways to encourage group learning with your team? Share with me on twitter!

--

--

Grant Ammons

Director of engineering at @convertkit and @pipelinedeals. I write about my experiences as an engineering leader and product development.