There are a number of fields in which ongoing professional development is not simply a job requirement, it’s the only way to stay relevant in an industry that is perpetually evolving. The highly technical world of software development is no exception. Coders, designers, and engineers of all programming languages must continually update their skill sets just to keep pace in a field where technology evolves seemingly overnight and market trends are constantly shifting underfoot.
As essential as this constant professional improvement is for the individual developer, it is absolutely critical to the survival of a software studio. Design and delivery studios depend on competent, creative, T-shaped craftsmen to drive innovation and produce cutting-edge products. However, in busy shops like LeanDog, where developers are routinely tackling complex scenarios, it can be a challenge to find time to pick up a new skill or enhance an existing one.
So how do you help your development team diversify their skill sets when client demands dominate the majority of their time? One way is for leadership to actively create opportunities to learn something new in an environment free of the pressure to “get it done.”
So that’s what we did! Last Friday, the LeanDog Studio took a break from their many projects and joined forces to try something new: a Professional Development Hack Day. This session had three overarching goals:
1) Learn something
2) Share Something
3) Have fun
Prior to Hack Day, the Studio came together and pitched nine project ideas. They then took a vote and ended up choosing four to pair on:
- Unity as a rapid-prototyping tool
- Indoor navigation with iBeacons
- Deployment pipeline with Docker
- Conference outline – UX Survival in Agile
After the monthly company meeting, studio members teamed up with co-workers they are not normally pairing with and spent the next four hours “nerding out” (a highly technical industry term) on their respective projects, the summaries of which are listed below. At the end of the day they regrouped for a Show and Tell and voted on which project took “Best in Show”. Everyone had a blast and learned some pretty cool stuff in the compressed (but relaxed) format.
Unity as a Rapid-Protoyping Tool
Will Kesling pitched this idea to look for alternatives for prototyping game mechanics and solutions. Our current tool for this is Gamesalad, which makes it easy to build quick prototypes, but limits our ability to modify the generated code for our purposes. The goal of this session was to attempt to build a mini-game that would better suit our current prototypes. Will Kesling, Bill Holmes, and Eric Hankinson teamed up and found that Unity was a very cool and powerful tool. They built an interactive 3D world with converted 2D objects. It was great to be able to write C# to handle some mechanics. However, Unity is not well-suited for rapid prototyping. The team suggested looking more into 3D Unity as a production-level framework and perhaps trying again with 2D Unity to see if it’s a better fit. The team recommended starting with the asset store when you start a new Unity project.
Indoor Navigation with iBeacons
Gary Johnson pitched the idea of mapping the boat (our office) and using locators on people and items. Besides being cool, exploring this technology would help us understand installation type projects, like museums and trade shows. Mike Kvintus, Nick Barendt, Paolo Appley, and Carl Shotwell ended up teaming up to map the boat using the estimote beacons we had on hand. The team deployed the beacons, mapped the area, and started a swift app to display locations. They found the estimote service and SDK to be difficult to use. The software was buggy, slow and inconsistent. Additionally you need at least 4 estimotes to map a room and they come in packs of 3. The estimote mapping software was not a big fan of the irregular shape of the boat. The team suggested getting more beacons to see if a larger area could be mapped and investigating alternative iBeacon technologies.
UX Survival in Agile
Nicole Capuana pitched working on a conference talk for Codemash that would describe how UX best fits into Agile Software Development. The ultimate goal is to create a talk that would be reusable with multiple perspectives. Steve Jackson and Charlotte Chang joined Nicole on brainstorming and talking through ideas that would make this a useful guide for UX practitioners in multiple uncomfortable situations. The team also worked on a talk Charlotte is preparing on Software Development Lessons Learned from Industrial Failures in the 1980s. The session was very productive and the team recommends that all speakers try to get differing perspectives for that post-abstract phase. This collaboration helped raise the bar on what a really excellent audience experience could be.
Deployment Pipeline with Docker – “Best in Show”
Nathan Wallace suggested building multiple environments with Docker and testing each one with our continuous integration server. If successful, this would apply to many of our current projects, allowing us to easily build and deploy new fully tested environments for all of our integration points (along with our tested code). It also has the potential to reduce our need to configure and setup environments for our CI itself. Nathan and Chris Nurre teamed up and were successful in building a Docker image for a vanilla rails install. With each pushed commit, a new environment was produced. The team found that installing Docker on our heavily mac-based infrastructure was difficult, but was otherwise happy with the tool. Their recommendation was that all of our web-based projects should default to using a Docker file for CI and that it would be useful to further investigate the Jenkins-Docker integration, as well as deploying the images using a Docker registry.
By taking a small break from “getting it done” and creating an environment focused solely on learning something new, we were able to provide everyone an opportunity to relax, expand their horizons, and bond with their co-workers. Overall, LeanDog’s first Professional Development Hack Day was a rousing success and the team is looking forward to coming together next month to do it again.