One thing I've strived to maintain as engineering has grown, is the involvement of engineers in support. Why? Andy hit the nail on the head with his recent post on "All of our developers start in support". In it he said,
You can’t get a good feel for what customers want when you’re sitting behind your IDE listening to product managers. Only on the front lines can you hope to understand what people want to do with your product and how you can make it better.
Too often in product companies, engineering and support are two separate groups. The biggest problem with this is that the people developing the software have no real feel for what the end-users are experiencing.
Engineering can come up with great solutions that, when released into the wild, are not entirely practical for clients to use. By being part of the support team, even if only for a few months, engineers gain greater understanding of the pain clients may be going through. They can then develop great ideas on how to introduce small enhancements that really help our clients.
As such, it's now policy that when you join the engineering team you spend some time in support and regularly cycle back into support for short periods. It keeps you focussed on solving clients problems.