Every year, wherever you are on December 13th, there's probably a code retreat happening someplace near you. That's because it's the Global Day of Code Retreat, and this past December, I traveled to San José, Costa Rica, for it. Part of the reason I trekked so far to participate was because Costa Rican software shop Pernix Solutions invited me to be a guest facilitator. On top of that, Table XI and Pernix wanted to try out a Developer Exchange, so this was an opportunity to kill two birds with one stone.
As the name suggests, companies "exchange" developers for a period of time to expose them to new skills, methodologies, and cultures. In theory these visits could occur simultaneously; however, to get the maximum value out of the timing, Table XI and Pernix Solutions decided to schedule the exchanges to coincide with other events. For me, I took my trip during the Global Day of Code Retreat; for them, one of their devs will travel here for the upcoming RailsConf 2014 in Chicago.
Why do one?
Joining a new environment accelerates your learning. When you work with the same people for a while, you reach a plateau where you've exchanged most of the tools in your respective toolboxes. After that, you can continue to pick up things by learning on your own, but any infusion of new ideas comes from the outside. In a developer exchange, you not only get to learn how other people write code and the technology they use to solve business problems, but also how they run their businesses. It doesn't even have to be a totally new idea—sometimes getting jarred out of your current pattern of thinking helps to remind you of other approaches you could be taking. Since it's an exchange, those same benefits exist for both parties, making it a win-win situation.
What worked well about how we did the exchange?
Integration. The way we set it up, everyday I paired with one or two people on the regular projects they were working on. Other than switching projects rapidly, I felt integrated into their team just as any regular developer might be. Again, it was win-win: They were able to get some work out of me, and this system helped make me comfortable and let me get to know their people in an authentic and uncontrived way.
Openness. I'm grateful to the openness that everyone at Pernix showed me, because without that I don't feel I would have gotten as much from the experience. I definitely have to give a shout out to one of their developers, Esteban Hernandez, who not only hosted me in his apartment but also included me in his regular activities, such as going to yoga after work. It was my first yoga experience, and my lack of Spanish language skills certainly made it…an adventure. Part of learning is being open to trying new things, after all, and I've actually been to a yoga class on my own since the exchange. In English. Esteban was a great ambassador to Pernix as well as Costa Rica.
I felt it was too short. The developer exchange portion of my trip was really only three full days, and I would have liked to pair for a longer period of time with each person. By the time I was able to get a handle on what the project was and the task that we were tackling, it didn't always feel like there was a lot of time to collaborate on the solution. I suppose it's a perpetual problem in software development that you never have enough time!
Beyond just the time per pair, it would have been nice to experience at least a full week at the company. I learned that at the beginning of each week, employees give their CEO, Carlos, a goal they have for that week. He then circles back with them to talk about whether they achieved that goal, why or why not, if it was a good goal, etc. I missed out on participating in that because I was there such a short time.
- Every week, a different Pernix employee gives a presentation and posts it online. They call it Pernix U. I think this could be a really valuable exercise to emulate.
- As I mentioned above, I'd like to experiment with being more deliberate in setting goals, and being accountable to those goals. My sense is that some really interesting information could arise from that practice.
- Pernix has a really great apprenticeship program, including outreach to their local university. I found this both inspiring and aspirational. I think they are a leader in this area, and I hope to incorporate some of their program into Table XI's approach to growing talent.
- I learned some new coding tricks and tools. One tool that was instantly useful to me on one of my own projects was ngrok, which lets you securely expose your local development environment to the Internet through your firewall in a dirt-simple way.
- I was inspired to experiment with different things to improve at the craft of software development. Since this whole dev exchange was an experiment for me and Table XI, I wasn't entirely sure what I was going to get out of it. Fortunately, it was a great experience and well worth the time, cost, and effort. I'm looking forward to hosting a Pernix Solutions developer here in Chicago this spring!
Do you want to chat more about running a dev exchange and what it's like? Shoot me an email at firstname.lastname@example.org, or find me on Twitter @soulcutter.