Since 2005, with interruptions, I work in companies that solve problems for money. Well, this is when the client arrives, asks him to program something, we do, and he pays us. There are projects there, but in the text - only about one-time tasks. Yes, it's about 1C. Not about any particular company - there is one problem for everyone, they haven’t solved it anywhere normally.
So, the most slippery topic in our work is the assessment of the complexity of tasks. And the disgust is that, no matter what rating we give, it will seem dishonest.
All the disgust lies in the essence of the work of the 1C programmer on small completion tasks. If you are not up to date, I will briefly explain.
The task, usually, needs to be solved in some 1C configuration. This is a great program written either by 1C or one of its partners. The client needs to change the behavior of some mechanism - either sensitively, or normally so, or completely. And it happens that it is not known in advance whether it is necessary to change the program code or data structure - perhaps the problem can be solved by means of the settings already in the configuration.
Here in this “maybe” the dog is buried. We can proceed from the axiom that no one knows all the ways to solve the problem, even the configuration developer - simply because some tasks are solved organizationally, outside the software context.
One programmer knows one way, the other two ways, the third four, etc. A fierce programmer does not know a single way, but he is sure that if he delves into it, he will find ten.
One way - one line of code, the second - ten, the third - a project for half a million, the fourth - organizational changes in the customer’s business, the purchase of a new server, a consulting project. Etc.
Therefore, the variability in solving problems is very high, starting with the direction of the solution, ending with the use of standard (written by 1C) standard subsystems vs writing a bunch of your own govnokod.
Back to the topic. Suppose there is a certain task. Let it be the unloading of data from the 1C database in JSON format according to the list listed by the customer (contractors, shipments, debts, etc.) - each piece in its own format, with a different level of nesting, etc.
Usually it happens like this - the task is given for evaluation to the prospective performer, or to some expert, or both at once, for fidelity. Let's say it’s 8 hours. The assessment is agreed with the client, and the specialist starts to work.
Knowing the assessment, a decent specialist strives to solve the problem faster than 8 hours. Let's say he did it for 6. Dishonest? Well yes.
We criticize the specialist, we say that he is wrong, having overestimated the initial assessment, and it was necessary to immediately set 6 hours. And next time, no matter what!
The specialist is offended, and the next time he stupidly refuses to do work with this client or manager, referring to employment. The task goes, for example, to the trainee, with an estimate of 6 hours.
And the trainee, unfortunately, does not know what JSON is. And what is unloading weakly imagines. Not to mention the metadata of the configuration from which to get the data. And the selections have never seen. And the data can only be unloaded into Excel, with the mouse. As a result, he will sit with the task for all 32 hours. And the client will pay for 6. Again dishonest! Only this time we are crazy, not a client.
Ok, spit on the preliminary estimates. Let the specialist simply solve the problem, and take the hours presented to the client in fact. Honestly? Alas, not a damn thing.
The intern will sit the same 32 hours. If you set such an amount to the client, he will write in boiling water and scream that it is unfair.
And if an intelligent specialist will sit, how many hours will it work? Most likely, 8, because so much, in his opinion, is this task. Or maybe all 12 - he knows how much the trainee would have sat with the task. Again dishonest.
And after some time, a decent specialist will begin to resent that his qualifications, ability to plan his time, colossal experience and knowledge are wasted. What is the point of trying now if you get as much as you spent? The very essence, the purpose of his work is changing - we must not do it well and quickly, but just WATCH LONGER. But sitting longer than a working day is difficult. Nafig go personal life, family, weekend - the specialist will sit for 12 hours, because this time he paid.
The client, upon learning about this, will say - unfairly! Especially if you see a photo of the working day.
What is business like? After all, any business just thinks about efficiency. Efficiency, I remind you, is the ratio of the result obtained to the efforts made. When the result is a solved problem, a field appears to reduce the amount of effort. And when the result is the time spent (after all, it is for sale), it turns out, excuse me, an hourly brothel. The only way to increase brothel profitability is to scale up, i.e. points of making money. Staff increase, in short.
Connoisseurs of brothels say - garbage. You can upgrade your skills and sell specialists at different cost per hour. Great idea! Let an hour of work of a specialist for a client cost five times more than an hour of work of an intern!
It sounds tempting, but nothing will change for the client. The specialist does it in 6 hours, the intern - for 32. The amount to be paid is the same. Already not dishonest, of course, but simply no way.
But it may be dishonest, experts are not equal. If two people have experience of 10 years each, they will still solve problems with different speeds and laboriousness. Moreover, the difference may be 2-3 times.
You can begin to pervert, determining the specialist’s rate not on the basis of his qualifications, but on the basis of his ability to solve a specific problem. For example, a programmer with experience of 10 years will solve the problem of calculating salaries longer than a consultant on calculating salaries with experience of 2 years. It turns out that we need a dynamic (very dynamic!) Adjustment of the cost of an hour, based on the task. To calculate it, you will have to hire a pair of sensible dispatchers.
There are completely perverted methods, such as determining the cost of work at opportunity costs. For example, for a client to work with external contractors was more profitable than with their own specialists. If you compare purely the cost of an hour, then internal fixi is more profitable. If the volume of work as a whole is not so large as to load a person 100%, then outsourcing is more profitable. With this method, the calculations will also be complex, context-sensitive and dynamic. And dishonest, because concepts that are difficult to compare will be compared - the price of a particular job and the inability to competently manage internal employees.
And the clients are all different, and no way of evaluating will be equally honest or dishonest for everyone. One counts every penny, and is ready to sit for hours with a stopwatch over the soul of a programmer, and be sure to stay on the employer's territory so that he is not pricked. The other does not accept any hourly, actual assessment and probabilities at all. He needs a specific cost and a clear deadline, which he agrees with the management, will contribute to the budget, he will go through a complicated procedure for approving an application for spending money, and how much he will leave in fact - he does not shake.
The price that the client is willing to pay for a particular work depends very much on the context, the conditions of the particular moment. For example, on how much the client is in pain until the problem is solved. If the cashier and EGAIS went to the retail alcohol store, then the client is very painful. If an accountant wants a button that fills two fields in a document that he successfully filled out with his hands, then it doesn’t hurt at all.
If your tooth hurts - so that no painkillers help, it is impossible to eat, drink, sleep, work, you will run to the first dentistry that comes across to relieve the pain. If you want to do oral hygiene, you can quite wait a couple of months, carefully choosing a clinic, specialist and waiting for any action. Both that, and another will seem fair to you, despite the serious difference in price.
So, no matter what rating the task receives, there will be no honesty in it. Absolute, ideal, white and fluffy honesty, about which they write in children's books. There is no black and white, there are only shades of gray.
Personally, I prefer the preliminary assessment, because it gives not only the opportunity, but also the motivation to increase my own effectiveness. Assessment in fact - on the contrary, completely kills the desire for efficiency, turning a person into a "stone ass" (the so-called Molotov), who only wants to sit longer.
A preliminary assessment is a great incentive for an intern to grow. If he knows the price of work in advance, and sees that he sat five times longer, he objectively understands his stupidity. And seeing another specialist, who, at least, has met the assessment, seeks to become the same.
For a client, if you look, only one price can be honest - zero. Often it is accompanied by the argument "I already bought your program, why should I still pay for something?"
But in reality, it seems to me, the criterion of honesty for the client is one: he is ready to pay the indicated price. If you’re not ready, you have to bargain as for shoes on the market. The boundary of decline is determined, as in any business, by the financial and political goals and indicators of both parties.
And how to evaluate the work? I am close to the assessment of John Doe (as the US called the unknown suspect). John Doe is an average programmer. Steeper than interns, but worse than experienced professionals. Some average.
Trainees should strive to become John Dow, which in numbers means, for example, a conversion of 1, in the absence of losses between tasks and the incoming workflow, which ensures a 100% load. There is usually no such flow, so you can lower the bar - let John Doe do 6 hours a day. It’s about 126 hours per month. Neither more nor less. John Doe Let me remind you, we are talking about small tasks, not project loading.
An intelligent specialist, catching up and overtaking John Dow, can earn much higher than average. His qualifications, competencies, the ability to quickly penetrate, write code like God, timely study of new mechanisms and tools, proactive work with clients, competently politically structured work with managers, strict adherence to deadlines - all that makes him an intelligent specialist will finally begin bring him income.
Otherwise, what is the point of becoming an intelligent specialist, with the same hourly rate for all? Or when evaluating the work in fact? Investing in yourself should pay off, otherwise it makes no sense to make them.
How to evaluate by John Doe? I must say right away - I do not know. It comes with experience. Ask an experienced professional how he evaluates the work. Just looks at the task, and calls the assessment. All. There is no algorithm, there is experience, an idea of the cost of work, accumulated internal statistics.
The head simply gives the answer to the question "how much such work will the average specialist do."
On the one hand, this is mysticism. On the other hand, I checked several times in my life, and each time I was convinced that the method worked.
For example, we independently with different specialists, with experience of 8-15 years, evaluated the work, and almost always obtained extremely close figures. Once, several years ago, I evaluated a large list of works, which in total came out for 2000 hours. Then he gave his colleague to evaluate in his own way, without looking at my result, and he had 1990 hours. Magic, not otherwise.
The John Dow score, of course, is not fair either. Like any other. Just understand, accept and use: there are no honest evaluations. At all.
Assessment is a tool that can be used to achieve different goals.
For a manager, evaluation is a way to get a client. Or bind a client. Or lure the customer. Or make money. Or make more money. Or promote the client.
For a specialist, assessment is a goal, a motive for the growth of qualifications, and moreover, versatile. And program quickly, and delve into unfamiliar configurations and mechanisms, and communicate with the client, and ask for help, and get it, and use other people's solutions.
For a company, valuation is a management tool. A clear, transparent, element of the motivation system. It allows you to manage without driving.
Summary
An honest assessment of the cost of solving a problem does not happen.
Any assessment depends on the context.
The context includes the specialist who solves the problem, the manager who sells it, the client who pays for it, the specific representative of the client who needs to coordinate the assessment, etc.
A preliminary assessment may be erroneous, as it contains risks.
A factual assessment may be erroneous, as it is not known at what speed the performer is moving - real or "to sit longer."
Rationing is generally impossible.
The most promising assessment seems to be according to John Dow - how much this task would be solved by the average programmer.
It turns out all the same, a preliminary assessment, but not by a specific specialist, but by a fictitious average.
The intern has a lot to strive for - he works worse than John Doe.
The experienced has something to strive for - he works better than John Doe.
When the assessment is known in advance, there is both a goal and a motive for improving efficiency and its application.