Ever since I read Martin Fowler’s article on rollerskating and shared it with my partner in crime, we have been using the term and practice liberally. Fowler describes a customer service web form that a guy he knew put together. This customer service form wasn’t quite ready for the internets yet but they needed it yesterday. He talks about delivering iterative hacks and at one point they actually had someone on rollerskates going from one side of the building to the other to take information from a fax machine and input it into a database.
I have long been of the school of thought that you didn’t release anything until it was ready, tested in battle, accepted by the user and proven to supply the oxygen for a 911-call-center. This may have been a by-product of a decade and a half with static languages, consulting and writing code on projects for dead-serious large-businesses that would not stand for mediocrity. I don’t know. Now that I have been on Ruby for quite a while and experienced just how flexible dynamic languages are, I am sold on rollerskatin’….. for some applications.
I still think that a little planning and prefactoring, domain-driven design and behavior-driven development goes a long way towards crafting perfection. However, for systems that are behind the scenes at a start up and needed to be finished yesterday, roller-skating is smart business. It’s about writing the least amount of software possible to get the job done as soon as possible. Later when the jets cool, you’ll know more about what works and what doesn’t and you be in even a better place to refactor or rewrite.
This is not a license for a sloppy user experience whatsoever. The customer using your shiny new webapp had better be oblivious to your rollerskating behind the the curtain. Their experience with your service and with your business must be squeeky clean and enforce the brand of excellence you are striving to portray and deliver.
Posted on March 24th, 2008 by dysinger
Filed under: @work