How I was an ideal customer

This is an instructive story about how, after many years of work on the side of the performer, I happened to be on the other side of the barricades and order development on the side. This is a story about why for a developer there is nothing worse than an ideal customer.

As I said, for many years I worked with customers in a software company. So - I had to work with different customers - with domestic and foreign, with international corporations and with single startups.

I saw everything that happens. I saw pathos Moscow managers who had to come once a week, because talking on the phone was a bother, and I saw a simple American guy who took and flew to our Siberia for a month for the new year to personally explain to the developers what he wants.

I worked with strange people who made up TK in half of the page, with inadequacies who rewrote the specification once a week, with assholes who considered themselves slave owners. We made features that did not support hardware, developed applications for the axis that had not yet been released, and adapted the design drawn by the child in the Paint editor for retina. I worked with loonies who threatened with millions of fines for a day of delay in an interim release.

I dealt with resellers who had no idea what the final buyer wanted; I met inadequacies who understood how to do it only after we did as requested.

I worked with customers who “I am actually also a programmer” and tried to teach us how to do our job. I know what it means to redo everything from scratch three times per project.

Once I had a customer who jumped off a project because his office burned out with all the hardware and data. Once we had to make a clone for 200 bucks, although not - an advanced clone of a native apple application at a time when they had not yet opened up access to many of their features to third-party developers.

In general, I worked with all kinds of impossible and impossible. I understand what it’s like to do, I don’t know what, so that it would be ready yesterday.

So - every time I met another “what to work there, do it like on Facebook” client, I promised myself, not even — I swore by the graves of my ancestors that I wouldn’t behave like that in his place. I would work in his place so that the developer would also pay extra for the pleasure of dealing with me. Oh, I would be in his place could just be the best customer. And once I became one.


Like any software company, once we wanted to make “our product”. And as in any software company, we did not have free developers. Therefore, a heroic decision was made to apply fashionable outsourcing. Well, I already became a designer and project manager.

After a little bargaining, we found a contractor, entered into this contract, and I officially became a customer. As I swore, I became the best of all customers.
  1. I paid normal money. Those for which we ourselves would work.
  2. I had a real backlog containing clear, specific and, most importantly, consistent requirements.
  3. I did not change the requirements during the project, did not intervene in the sprints and did not ask me to redo anything because I did not think well.
  4. The contractor could choose development technologies, architecture and write code according to his own rules.
  5. We did not have a damaged phone, I was the main contact person and I formed the requirements.
  6. No language barrier and problems with accessibility for communication.
  7. I had a distinct spec - each screen was drawn by a professional UX designer, the behavior of each button was painted.
  8. I myself conducted acceptance tests.
  9. I knew the realities of development, I realized that everyone has bugs and delays.
  10. I was not a programmer who knows how to.


In general, in all respects I tried to be the customer that I always dreamed of. But over time, I began to notice that my contractor did not share my enthusiasm. It began to seem to me that for him I was just a nightmare. He probably considered me his worst client and cursed the day he read my ad.

It took a long time before I realized why it is so hard to work with me. And this understanding has completely changed my idea of ​​the relationship between the customer and the contractor in the IT field.

Firstly, I was too well oriented in the requirements. Accordingly, it was hard for me to convince that some details needed additional explanations or examples and thus get extra time. Any clarifications and examples were provided immediately.

Secondly, I was the final customer - it was the customer, not even a representative. Therefore, it was impossible to agree with me not to notice any bugs or to sign acts on parole to fix everything later.

Well and the most important thing. I too well imagined the result that I wanted to get. This is the most paradoxical, because usually the problem is just the opposite. The fact is that in my case, all the design was on our side. The contractor received ready-made pages with detailed explanations in the style of “if you click here, then there is such a pop-up”.

I think anyone will agree that the more abstract the requirements, the easier it is to work. And my requirements were so specific that the developer completely lost the space for maneuver. And if he could not realize something (especially on the front-end), then he simply did not have the opportunity to do otherwise - to do as he can. As a result, any problem had to be solved in the most difficult way, because the workaround was always cut off.

It so happened that my most important advantage turned into the most important drawback. What is the moral? Such that design and development cannot be separated. An ideal customer should not detail the behavior of each control. The ideal customer should describe the tasks that the application should solve and the conditions in which it should do it. The developer must do the rest himself - only then there is a chance that he will be able to realize his own ideas. Because with other people's ideas, everything is much more complicated.

Also popular now: