Hired guns. Code mercenaries. Consultants.
Whether you are early stage or have an established product, bringing a consultant onto your startup can be a dicey prospect. Here are reasons not to and some things you may not have thought of.
For most of the past year, I’ve been embedded in Dogpatch Labs working with early stage startups, first ByteLight and then BlockAvenue, to create their core product and get them to the next level. Both faced the challenges of a pre-MVP product and small team. Here’s some of what’s involved, the challenges faced, and approaches to tackle them.
What we software engineers (and designers) do is very creative and, in general, best learned through experience. Computer science and color theory can be groked from a book but client communication, handling conflict, and other less tangible disciplines are gained in the trenches. Learning on your own is slow and error-prone; you can miss out on stuff or learn something wrong based on the project work you get or who you happen to work with.
I view the apprenticeship mentoring model for software engineers (as with a blacksmith, glass blower, ceramics or any of the high-skill, difficult to master traditional crafts) to be the best way of accelerating growth, increasing retention, and creating the kind team your organization really needs. What follows is my approach to such an apprenticeship model that works in both client services and product teams.
One of the my roles acting as interim-CTO at BlockAvenue is to manage a high velocity, agile development process. Trello is my new favorite tool when it comes to ticket management but it’s not without limitations. Here’s how we used Trello at BlockAvenue and some of the challenges working with it.
NOTE: This is now on github at https://github.com/mrdanadams/redis_pipeliner.
REDIS is fast. Really fast. And awesome. But that doesn’t mean you can get lazy with how you use it. Pipelining REDIS commands allows you to execute multiple commands in REDIS and return the results at once. I’ve seen this provide a 5x-10x speedup. He’s how to do it with the Ruby driver.
Multiline string support in CoffeeScript offers a great way to embed your Backbone templates. In this approach, you can easily edit your templates while still taking advantage of JS minification, combination, and client-side caching.
In the course of building BlockAvenue, one of the decisions I made was whether to host our own MongoDB or use a hosted provider. Here’s the short tale of what I selected and the importance of top-tier customer service.
OpenLayers is a great library for integrating maps especially when creating custom mapping interfaces. However, with great functionality can come great size. Weighing in at nearly 1MB for the full library, you should pair it down to only the modules used.