A challenge that every software company faces is striking the balance between staying relevant and staying productive. Software is aggressively evolving; it seems that every day there is a new tool, framework, API, or version of software trending on Y-News, and staying apprised of these evolutions is essential to success. If you fall behind, you run the risk of losing business to a more advanced competitor. In addition, without constant vigilance you may well expose your users to security vulnerabilities. Both outcomes are inevitable, and it is a company’s responsibility to adapt.
Each company needs to develop an ethos for how to address technological evolution. One might be more conservative, only updating when security demands it; one might be avant-garde, jumping on the newest library trending on Github; or anything in between. These and more are all valid philosophies, whose value depends on the segment of the software industry in which a company operates. Deciding which approach fits the company’s needs requires not only understanding the corporate space, but also how the philosophy will affect the company's resources and velocity.
I like to think of Vokal as a fairly progressive company. We incorporated Go and Docker fairly early on. With the release of Nginx 1.9.5 we are standardizing HTTP/2 on all future back-end applications. We have experimented with numerous frameworks in a variety of languages. All of this is essential to confidently claim to our clients that they will be receiving the highest quality product.
While investing in learning and integrating new technology ultimately improves any company, it requires resources. Each hour a person uses to learn a new piece of technology is an hour that can’t be dedicated to billable work. To mitigate these costs Vokal implements several means of generating and disseminating this information. For instance, Vokal discourages overtime, allowing employees ample time to explore any technology related interests on their own.
But Vokal also employs a variety of other strategies to encourage learning while “on the clock”. For instance, once a month Vokal holds a “Lunch-n-Learn”; if an employee volunteers to do a presentation to share knowledge with the team, then Vokal will provide lunch for everyone that wishes to attend.
The developers created “Data Dumps”, one page articles written by developers about anything technological, that are posted weekly in the restrooms for casual reading. We have an initiative board where technological opportunities are posted and anyone with free time can take time to implement or explore. There are also dedicated channels in Slack meant for sharing news to the relevant discipline. All of these methods culminate in an environment which encourages growth and learning.
The beauty of all these methods is that they are voluntary and are meant to occupy time when the employee isn’t directly engaged in billable work. It provides direction when an employee needs a break, has finished their work for the day, or isn’t currently assigned anything. This way, Vokal is able to remain productive by taking advantage of the brief moments of downtime each person has in the work week. And, rather than obligating people to present and learn new technology as part of their job, Vokal creates a social atmosphere which encourages people to contribute and grow. While that might sound calculating, it’s actually a lot of fun!