Every customer's the right customer
It's no secret that here at Applicom we have recently changed: we used to work mainly on custom programs for customers. This could have been an AJAX backend, or a page-reload web site, or an automatic backup procedure. If you know the IT world, you probably know that customers' requests can get pretty wild. Customers seem to humbly and fearfully ask if it's at all possible to implement some very basic features, and... then they seem to demand, very naturally, the most impossible things.
With time, we learned that it was pivotal for us to chose who we worked for: having reasonable customers was the main ingredient a peaceful and fun working life. Even with the "right" customers, we usually feared the "extra requests": sometimes they required a full restructuring of the software itself; other times, they would request a functionality we knew they would never, ever use; sometimes they would request something really useful, but also very painful to develop.
Then, Apollo came along.
Apollo changed everything. At the beginning, we became the customers. We drew a lot of inspiration from Basecamp and Highrise (somebody could say we were borrowing heavily from them!), but we were doing something radically different, and -- really -- something that hadn't been done before: a fully comprehensive application written in AJAX, and able to run on any browser. The question was: would we be happy with this? Would we use it? At the beginning, the answer was "I think so".
Then, we started using it, for real. And the answer became "Oh, no, this is not ready yet. Really, not ready". Back to the drawing board: a lot of things needed to be changed. We, schizophrenically skipping into the customer and the developers role, kept programming, criticising, programming, requesting... and eventually Apollo was actually ready.
In that time, we changed our view on "customer requests". Being for the first time your own customer, you end up seeing why people ask for specific requirements. You end up respecting those requests a little bit more. As a company, during Apollo's development, we had matured.
Then, we released Apollo as public beta, invites only.
The users' response to Apollo was overwhelming. People seemed amazed that somebody managed to develop something like it: a snappy single page application that did both project and contact management. Sure, you can think that I would write this in Apollo's blog regardless of what the response was, but even by looking at Twitter you can have a feel of what the initial reaction was. And requests started flowing in. Do we have cases and deals? What about internationalisation? What about importing projects from Basecamp? What about importing Google contacts? What about having themes? What about having a popup about the contact when hovering with the mouse over a customer-related tasks?
In the end, we learned how to love our users. Their (many) requests are the missing link between good software and perfect software. We realise that all of them make sense, and all of them deserve attention and a ticket in our development system -- even if it's just there to discuss why the user requested it.
Now that we are developing Software as a Service, we can't really pick our customers anymore -- it's quite the opposite, in fact. However, we discovered that every single customer's the right customer for Apollo, and our primary goal is to listen to them, and create something that is useful to everybody without becoming bloated and over-complicated.
And, I am glad to say, we are managing so far. Don't you think?