I am a freelancer, and therefore, "and the Swiss, and the reaper, and the dude on the pipe." And a significant part of the working time is spent on negotiations with potential customers. Here is the basic misunderstanding that I observe in people in 50% of cases:
An application development project costs as much as it costs. And in the era of globalization and the Internet, you cannot get custom software at a cost significantly lower than it costs on the market.
A simple example for clarity. My former classmate grows chickens on a home farm. She really likes it and she is in this special. And here I am interested in her:
- N., why has chicken so risen in price lately?
- So the feed went up, so the chicken went up. And feed suppliers motivate this by the rise in price of fuel and electricity.
Everyone knows this, and everyone understands it, yes. But when it comes to software products, the comprehension of many people for some reason fails. Here is their motivation:
- Well, this is for you 5 minutes of work! Everything is very simple right here!
Well, do it yourself if it's that simple.
Incidentally, I can say so bluntly, not even a question. Just because someone has to tell the truth right in the eye. Otherwise, a society in which everyone is afraid to tell the truth because of fears about financial costs will quickly become worthless. And programmers from such a society will gradually move to some neighboring society, where they look at their work more realistically and evaluate it properly.
On the other hand, for every presumptuous freelancer there is always a cunning Indian from Bangladesh who is ready to work for 1/4 of the meal. And here we are in a deliberately losing situation, because our prices for chicken are higher and the climate is colder - we simply cannot afford to work for the same rate. Otherwise we will die of cold and hunger.
But does the customer win when resorting to the services of a Bangladeshi (I take it here in an expanded interpretation, “Bangladesh is a way of life”)? Yes, he does not win anything, because, returning to the original thesis, a software development project costs as much as it costs. And even if at the moment some substantial savings are seen, then anyway, someone will have to pay for it, not with money, but with time and nerves.
Here is a very common example from freelance development that you or your acquaintances must have come across:
1. A person comes with his order to the freelance exchange.
2. Under the terms of phased payment, he finds an artist for a meager price.
3. The performer makes the first stage and merges in the direction of Nirvana.
4. The customer scratches his head, and again goes to the exchange.
5. History repeats itself.
6. At the third or fourth iteration, many executors simply refuse to finalize such code, which is easier to rewrite than to do anything further with it.
7. ...
Why is this happening?
Because, as in that fairy tale: "you would not chase pop for cheapness."
The fact is that on the basis of scanty payment for a project, newcomers to this field are usually taken. And at the low price they initially lay down (quite justifiably, by the way) the possibility of gaining development experience. But, since this experience is still very small for them, they cannot initially adequately assess the amount of labor involved in the project. And understanding of this volume comes to them only in the course of work. And they understand that they underestimated their work. But, since they are already bound by the contract, they make an interim decision: to complete the current piece of work, get a bonus for it, and - to Nirvana!
This is a very simple mechanics, and very vital.
- But what about “work for 5 minutes”? - you ask.
And here is a completely different story. A programmer who "works there for 5 minutes" is usually already versed in labor costs so much that he sees the justice of the situation in which he is paid not only 5 minutes of his current work, but also all his sleepless nights several years before. When he waded through the jungle of indistinct manuals and semi-observable tutorials.
Here, after all, here's another thing (forgive me taxi drivers). When you are a taxi driver, for example, then your final product is always more or less the same. This is a customer delivered from point A to point B in x time. And when the client begins to bargain with you, then he also proceeds from the premise that he will in any case receive a known product.
In the case of software development, especially phased, especially with further support, the situation is somewhat different than with transportation, or, say, digging ditches. Because a programmer is, to some extent, always an artist. And sometimes it’s better for the artist to give him the opportunity to enter the Vienna Academy than then to disentangle everything that he invented half-hungry, spending the night on a bench. If you know what I mean.
And yes, please understand me correctly, I do not call here "to give more money to programmers," or something like that. But I just draw attention to the fact that the more adequately you evaluate your project in terms of cost and labor, the better for everyone. After all, as there are the notorious "unfinished" in the field of building construction, in the same way there is the phenomenon of "unfinished" in the field of software development. Thousands of them. Even dozens and hundreds of software projects that were closed due to the fact that their owners could not initially correctly assess the cost of the work.
“Well, what am I supposed to do?” I have only 500 dollars for these works!
Also periodically hear this phrase. And the work there, say, five thousand bucks. And what to do? And do nothing. You don’t come to the store for chicken, and don’t tell the seller that “here I have 1 dollar, but I need that big fat chicken”. Because you understand that this big fat chicken costs several times more than your dollar. But then why do not you understand this in the case of a software project? This is a rhetorical question.
You know, I used to interpret the situation when you are offered a job for little money, as disrespect. But then I realized that we are talking more about incompetence. After all, right away, only true geniuses from management can correctly evaluate the amount of work required to implement all the planned functionality. And then, we can only talk about standard projects in which this manager has been brewing for several years. For it is only necessary to move off the usual rail a little to the side, as the notorious nuances immediately begin.
That is why I am an ardent supporter of the
MVP approach to software development, if this software is more complicated than a WordPress blog. This approach, at least, gives you at least some guarantee that you will ultimately get what you want.
I hope that the understanding of the above will be useful to you the next time you come to the freelance exchange with your project.
Be healthy!
Roman D.