The Benefits of Growing Your Own: The view from the code monkey cage
Last week, I wrote about my disagreement with those who want to go out and hire a code monkey. Being deeply immersed in writing a computer game to teach kids math, here is my perspective from the monkey cage on the benefits of coding your own stunts.
- I like it. This seems to be a greatly under-rated reason. Every night, I have to force myself to quit working and go to bed, take a break, read a book.
- It’s WAY faster to integrate. I have an office downstairs. The Rocket Scientist works upstairs. Several times a day one of us will wander up or down the steps and say, “I was thinking of doing X, what do you think?” We can integrate my code and his code over dinner, over coffee, over cognac, while one of us is riding the exercise bike in the living room.
- It’s way faster to innovate. If I have an idea at 10 pm, it may be done by 2 am because I sat down and worked on it. I didn’t have to call anyone, schedule a meeting, write specifications.
- It’s way faster to iterate. We are in beta test mode right now. If the consultant at the school calls in the evening I can usually have whatever he needs done before school opens the next morning. If it’s more complicated, it might take a week or two.
- We can give firm deadlines. If I tell our consultant at the school when something will be done, I can be really close to that estimate because I am not relying on too many other people for the core competency to deliver it. I may need some graphics or animation work done, in which case I always ask the folks working on that, and, if necessary, we can almost always work around them.
- Our out of pocket costs are less. We do cost, because when either of us work on this game we are not doing work on other contracts that would pay us money. We could definitely hire someone to work for less than we charge on our consulting contracts, but I am almost certain we could not get anyone to do the same quality of work for the cost of our foregone income.
- The communication is better. Rather than telling someone what I have in mind, I write it myself. Similarly, when the Rocket Scientist wants to change the look of something, add a different weapon or obstacle, he just does it. We do have to talk to each other and the graphic artists/ animators. Still, the fewer people you need to go through, and the more of a concrete product you have to show those people, the less misunderstandings occur.
- You can’t buy commitment. This isn’t the first time we have found a bug around 2 a.m. The Rocket Scientist suggested he work all night fixing everything he can while I sleep and then I can get up and test everything in the morning. There have been plenty of times when I thought, “Oh, I don’t really need to add music there”, or “That doesn’t have to have logic to give progressively harder or easier problems” but then, of course, caught myself and went ahead and did it. Any time I have an idea to make the game better, I either implement it right then or, if it is too close to a deadline to get done, add it to my list of stuff to put in a future release.
There are down sides, too, don’t get me wrong. The only one I can think of – but it is huge- is that all of this coding takes time away from other things. If everyone who told me we should be on Kickstarter gave me $20 we’d never need Kickstarter! I really like teaching statistics and writing about statistics, and I don’t get time to do as much of that as I would like. I’ve gone to a couple of meet-ups and talked to a couple of investors, but I really don’t have much time to do that. I need to finish the Phase II application, write another application, should probably be doing more on the marketing side, more on the design side – in short, coding takes you away from all of the other parts of running a business. I have no good solution other than what I do now, which is set aside large blocks of time right after an update – like next week, to do some of those business-side responsibilities. Hopefully, someone to take up some of those responsibilities will be joining the company very soon and one of our existing staff members will be picking up new responsibilities as well.
There are tasks, though, that no one but me is going to take over. Someone else may edit it, add some figures or add up the budget, for example, but no one else is going to write our grant proposals but me. Still, I think all of the responsibilities that I retain I will do better BECAUSE I’m involved in the coding as well.