hackNY Speaker Series – Josh Knowles
Of test-driven development and that curly brace at the end of line.
On 20th June, 2011, Josh Knowles played host to hackNY’s 2011 fellows at Pivotal Labs. He is the current Managing Director of Pivotal and has decades of experience in tech – we couldn’t wait to hear him speak. He also sponsored our pizza and let us play on Pivotal’s ping-pong table – which meant we were big fans of him before he even spoke the first word.
The system was broken
Knowles talked about how, earlier, engineering teams used to target shipping their product twice a year, with team meetings held once every two weeks. There was a very formal Q & A process, and “engineers would spend three months testing something everything you wrote six months ago.” He said, “Nobody really seemed to question why that felt broken…it just felt very naive to me.” He “started to really question how things could be done better,” and over the next ten years identified techniques that were completely different from this earlier approach.
Agile development and the two-pizza rule
Knowles spoke about agile software development, where the focus is on a much more collaborative and transparent relationship, and “shipping early and often is a good thing.” He talked about Amazon’s two-pizza rule, which strives to maintain all development teams to be small enough that they can be fed at 2 pizzas at once.
Iterate every week. Ship every week.
Following the theme of an agile development process, Josh talked about how his teams liked to work in iterations – with a typical cycle being around a week in length. They can plan, implement, test and ship an iteration within a week! This leads to a much more constant feedback loop.
Cross sectional knowledge vs specialization
Josh stated that they try to “create small teams that can be empowered to work across the full stack of the application,” as opposed to specializing – he feels specialization leads to a much slower pace of development. If a company’s security guy is out on vacation, he said, the rest of the developers should know how to manage fine without him.
Pair programming = Power programming?
Josh is a big fan of pair programming, and says that he has found it to be much more productive. He stated that all of their production code is written by two people working on the same product. He also spoke about how “soft skills become much more important when people work in such an environment.” It can also become very challenging for developers to set their egos aside and compromise when they feel strongly about something. But the benefits clearly outweigh these obstacles – and one great benefit is that it takes away the idea of code ownership, leading to a much more collaborative environment!
Apart from being extremely nice and amiable, Josh came across as a really Knowledgeable guy. We also came away very impressed by the Pivotal work environment (incidentally, a 2010 hackNY fellow Tal Safran is working out of Pivotal atm), and will hopefully get to work there in the future (maybe even through TechStars!).