Exorcism programmatic methods

    There are a lot of materials about how the introduction of information systems has helped companies get rid of losses, reduce costs, cut down theft on the vine. It is beautiful when it turns out to get rid of evil in such a large volume.

    My article - about evil is smaller. About sabotage implementations, about the eternal "I'm doing everything right, this is your program is to blame," about the expansion of the state, about minor corporate intrigues and resistance to change.

    Everything in the article - from personal experience, with examples of use. I do not pretend to the uniqueness and full disclosure of the topic, there is no higher truth here, I tried to avoid generalizations, I do not impose anything.

    Just experience of using some tools and examples of how they helped me out.

    Record user actions with time parameters

    I honestly do not remember why I did this thing, but it was useful several times. Development is simple and clumsy, takes no more than an hour. Not applicable everywhere, because can consume a lot of resources and data occupy a significant amount of disk space, so you need to keep an eye on it.

    The principle is simple:

    • records when a user has opened a form (document, directory, report, processing);
    • writes down when he closed it;
    • records when he wrote it down (if it is a saved object, such as a document or reference book);
    • records whether it was a new object or an old one;
    • writes down everything you need to know about the object - the link, the name of the type, the user name, the name of the form.

    As a result, we have a large table with data, and several calculated figures. For example, we know the "average check" - how much time it takes to create a purchase invoice from an accountant. We know how many times an accountant returns to a previously created document in order to change it, and how much time it takes.

    I will give examples when the mechanism was useful.

    The first is the elimination of petty sabotage implants. The order picking mechanism was introduced in the warehouse - the storekeeper had to mark the items collected in the box. Storekeepers were clearly told - without fanaticism, work with the system only when there is free time.

    A day later, the shipping manager resorts, says the storekeepers refuse to load the car, they say that they need to drive data into some system and it takes them 2 hours a day. Of course, I quickly explain that no one gave them such orders. I open my report, I see - they spend 20 minutes a day on everyone . He told the manager, said the stockmen - that's all, more such statements from them was not.

    Secondexample. Findir orders some functionality for managing money. What is important is not because he wants, but because this accounting contour is not enough for the higher ones. Then at the general meeting they ask him - well, then, when the data will appear? He says - there are mistakes, it does not work, we will write the task for completion to the programmers. I open the report, I show - neither he nor his girls have ever entered the document or the report. All introduction has moved on.

    The third example. Accounting says - we need to expand the staff, we have increased the flow of documents. The management, bearing in mind my report, is asked - give statistics on what grew up with them and where.

    The first count in the forehead - the number of documents and the number of lines in them - showed that the workflow has not increased.

    Okay, I think, maybe there is something complicated in the documents, it may actually become more difficult to issue them.

    I look at the "average check" and its dynamics for two accountants - no, it does not seem to be growing, not falling.

    It came to that recently, a long-time accountant girl who had recently worked on maternity leave, two new ones took his place. I had data for all three, comparing - ba, here it is. Two new accountants enter documents more slowly than the old one.

    All expansion of the state was canceled, you just have to wait until they fill their hands. At the same time - a little automated.

    The third example is the fourth.already positive. Seeing the dynamics of the “average check” by type of objects, we began to use it to analyze the automation of operations and the consequences of the changes made. If the “average check” was growing up, then they analyzed the reasons, watched people live and improved.

    Record of values ​​of indicators

    Technically, this is a very simple solution. Its essence is simple - a request is written that calculates a certain digit and stores it in the system with the necessary frequency. As a result, we have the time dynamics for the digit.

    Many numbers do not need to remember, because they are reproducible. For example, there is no need to remember the volume of sales - you can always look at it retrospectively.

    But some numbers can be reproduced only by raising the backup database. For example, it is the only way to find out how much negative balances you had on goods a month ago. Who read my previous articles, understands that we are talking about Iceberg .

    The firstusage example. There are problems with offsetting the advance - a large enough amount hangs simultaneously at 60.01 and 60.02. The functional is typical, there are no methodical difficulties - just indicate the correct analytics in the documents, and the advance will be reckoned. At meetings, accounting says - no problem, we'll do it. At each next meeting he repeats - we do, there is a lot of work there, it is badly automated. Look at me askew.

    I come in, turn on the record of the indicator - the amount of unpaid advance. I think - no, they will otmazhutsya, they will say that an unpaid advance grows faster than they fix it. I divide the indicator into three parts - the amount at the beginning of the year, the amount at the beginning of the month, the amount for today.

    At the next meeting, I show the numbers - how it was and how it became. An unimputed advance at the beginning of the year and the beginning of the month is worth a stake — nothing was fixed. The uncalled advance hasn't changed much today - it means that now the documents are being processed normally. As a result, the old errors were corrected in 2 days.

    The second example of use. Automated suppliers, the function is simple - the program says how much you need to order from suppliers, take and order. Separately, the specified mechanism writes the level of current deficits. We look at - in one position the deficit decreases, in the other it grows. For the positions of different people are responsible. At the meeting, everyone says - yes, yes, we do everything as ordered, look, order. Why the deficits are growing - we don’t know, probably the automation is bad, the numbers are wrongly calculated. Everyone looks askance at me.

    I go in the forehead - I look at the issued orders to suppliers. Immediately I can not figure out, because documents are not entered and changed promptly - this is normal, because The order approval process can take several days, and it has been adjusted all the time.

    I put a record of two indicators individually for each supplier - how many items were ordered for the morning, how many of them ordered during the day. And voila - the “good” manager (neat girl) ordered 85-100% of what the system required, the “bad” - 15%. Everything went to work with discipline. What is interesting is that the suppliers, having seen this report, asked to give it to them for use (the suppliers themselves, and not their head). The difference between mine and their report was simple. Their report showed the current balances, and mine still showed the “lifetime” of these balances. All the same Iceberg.

    Fixing ideas

    I heard from programmers several times that ideas are being stolen from them, especially bosses. They listen to the idea, then they say that it is about nothing, and after a while they give it away for their own.

    I usually have a lot of ideas, I will not judge about the quality, but in fact there are a lot of them. I noticed a few years ago that I didn’t remember them. It happens that I come up with an idea several times.

    Then I saw on the website of the studio of Artemy Lebedev that they write down ideas , and consider it useful. I decided to do the same - in the task accounting system I made myself a splitter, where I began to write down these ideas. It was available only under full rights, since only needed me.

    Then the company decided to systematize the work with rationalization proposals - submission, evaluation, accounting implementation, etc. I was asked whether it was possible to automate, I said, everything is already automated, I showed my mechanism. I modified it a bit so that there was a vote, comments, implementation accounting, setting goals, etc. But that's not the point.

    The bottom line is that ideas have become public and fixed, and it has become difficult to steal them. Mine is almost impossible, because at the time of opening the system for users, there were already several hundred of my records there.

    The firstThe usage example did not even require my participation. Many people read the ideas, and when someone expressed a proposal somewhere, the readers openly spoke to him - and, there was such an idea, look in the system, there is a discussion there. If I was not present in this conversation, then the inventor was sent to me, and he usually began the phrase with “you suggested this idea, I read it, it’s interesting, let's realize it ...”.

    The second example is related to the advancement of a system of rationalization proposals. By the fixation of ideas, I, of course, hooked up the tracing of the reading. And it turned out that the employees of some departments, who really wanted to change their work for the better, began to make their proposals in the system. But only proposals related to automation were implemented, since they addressed me, but it was interesting to me.

    At meetings, managers were asked a question - how are you with the implementation of the proposals? Have helpful ideas from your employees? Many responded in unison - no, nothing interesting, all nonsense. I show the report - they did not enter the system at all, did not read a single idea, let alone the implementation. Just in case, they asked the staff if they could give you suggestions verbally or by mail to the managers? No, they say, there has never been such a person, and in general we are afraid to raise our heads.

    The data provided, the process got off the ground.

    Data capture

    The purpose of this mechanism is to expand the possibilities of versioning. Usually versioning (both typical and non-typical) captures changes in the primary data — directories, documents, etc. In actual practice, this is not enough.

    For example, a “flitter” has flown down with different variations of “flying off”. The traditional way is either to watch changes to documents that could have affected, or to take backups, upload details to Excel and compare revolutions.

    The problem is that the moment of the “flashing of the turn of the road” should be monitored by a person.

    As a result, I made an uncomplicated mechanism that beautifully stores the rolled up structure of turns and reacts to changes. And the data area, which is fixed, and the convolution, and frequency - is configured through the request.

    Without going into details, the mechanism signaled changes in the data area (“flashing revolving”) for an hour (this is the frequency of the regl.date operation), indicated the data area, indicated the period, and made it possible to find the primary data.

    Yes, and allowed “to accept changes” - if everything was fair, then the changed data became reference, and the surveillance was already following the changes.

    The firstusage example. People began to complain about the horse races in the warehouse (“I look at 10 pieces in the morning, I look at lunch at 5 pieces, and I already promised the client, but I’m not a fool, I see that there was no movement for a week”). Accounting says - we have nothing to do with it, all documents are drawn up within a day, no backdating corrections. We look at the mechanism - voila, the remnants of today are changing, because the turnovers have changed in the previous month. We pick - the accountant has introduced a new document a month ago. We ask - what are you doing? I do not have time, says.

    Secondusage example. I recorded sales data — simply because I tested the mechanism on this data area. It was believed that sales data changed a maximum of a week, and then in rare cases when mistakes were made. And here I look - sales of last month have changed. You understand that last month the sales manager already received the award. I see that the accountant has changed - what are you saying? It turned out, the manager made, because he was too smart, he confused the client. After this incident, the accountant stopped doing so.

    Questions to control

    Functional control tasks, projects, etc. there is, for example, in 1C: Document management, surely many have seen. There you can put any (or almost any) object under control, set a date, and a reminder will pop up.

    I did not like the sample, because it does not allow the control to be multi-step - for example, make the reminder jump out 10 times at intervals of a week. Therefore, I made my simple mechanism, the main difference of which is that it allows you to keep a history of control, and stretch it for a period of time.

    For example, I initiate a change in business processes. I am writing relevant letters, I have meetings, etc. I’m writing this question to myself, I’m putting the control point in a week, I’m writing a comment like “ask Vasya”. A week later, I see a reminder, I ask Vasya again, Vasya says, “aah, listen, we have a dam, there is no time yet.” Ok, I say, put the next point - in a week. I see a reminder, I go in - I see a story. I ask Vasya again, Vasya has a blockage again. I say - Vasya, you already said that. Vasya swears that this was the last time. A week later, the movement still begins.

    It looks like some kind of banal nonsense, and it seems like all this can be resolved by mail, but, as stated at the beginning of the article, I don’t pretend to the truth. The use of this tool and approach several times helped me out when it is trivial to achieve something from people who do not obey you. You can’t set a task for them, and not going over the top in this particular situation in a childish way - people will not do anything at all.

    Cost accounting automation

    Technically it is very simple. There is an accounting of tasks and projects in the system. In each task there is a certain estimate of labor costs - either hours or points on planning poker. We know the salary of programmers. The customer, his unit and manager are known.

    We take the salary of a programmer and distribute them to tasks solved in a month. It turns out the cost of solving a specific problem. You can build on the project, on the customer, on the unit.

    The first example of use is protection from raids like "we are not engaged, our tasks do not solve." We open the report, we look - aha, the company spent 250 tr on automation of accounts department over the past month. Or 1.5 million rubles a year, for example.

    Here the trick is that it is valued in rubles - a unit of measurement that the director understands. If you say “we have solved 113 tasks from accounting”, then it will not penetrate - it will say that we need to do more. And when you say “you spent 1.5 million on their tasks,” it would be awkward for him to say “spend another 2 million of my money on them!”. Most often, he sighed and asked the accounting department what tasks they were for which 1.5 million rubles should be spent.

    The second example is more interesting. Often, programmers complain that they are doing some kind of functionality on the instructions of the user, and then he does not use this functionality. At the same time, he continues to whine that his work is poorly automated.

    We decided to turn out more interesting. In the solved problems, they began to indicate not only the customer, but also the names of the metadata - documents, reference books, etc., which were created or improved while solving this task.

    Well, then easy. I asked the head of the quality service to automate the calibration of measuring instruments. Technically simple solution - there are measurement tools, a calibration schedule and a document fixing the fact of verification. After automation, as expected, users entered one measurement tool, one verification document and one schedule.

    And we have the costs counted. Suppose it is 30 tr. We know the metadata, the number of objects we know, we divide one by the other - it turns out that in our system we spent 30 tr. Although the measurement tool itself costs 1 tr.

    When the head of the quality service next time at the meeting begins to tell that he needs to automate something, politely ask - how is the "golden caliper", the company spent 30 tr on accounting for one verification?

    Accounting for technical support costs

    We had one person on tech support - the person on duty. I often heard from him something like “how did she get it, stupid fool, asks the same thing every day”. At first, I did not pay much attention - you never know, the person did not remember, or we are guilty. Then, in a roundabout way, I learned that some users deliberately arrange DDoS attacks on tech support, because they don’t like the IT department.

    Organized a simple software solution. We made a document for fixing calls to tech support. Generally, when a person needs to automate something, he already wrote the task, but when he just had a question, he called or wrote on Skype.

    The duty officer simply entered the name and estimated service time into the document. It was still possible to read the Skype logs through the API, but decided not to do it - personal communication and correspondence in this way cannot be calculated.

    Well, then easy. The total cost of technical support is known to us from the previous paragraph. We divide money at the time of appeals, we get a figure - what kind of person and department how much money does the company spend on itself.

    The first example of use is banal. When someone says that his questions are not answered, and everything is bad for him, we show a number. Look, my friend, the company spends on your questions 20 tr. per month.

    SecondAn example of use is more interesting. We called it "the cost of incompetence." Unfortunately, our HR did not really understand the intricacies of accounting, and they didn’t know how to check the “Knowledge of 1C programs” vacancies, but didn’t want to send us for tests. So we got accountants who do not know how to keep records in the computer.

    And here is an accountant who is paid 30 tr. per month, without taxes. And there is the cost of technical support provided to this accountant. For example, 20 tr. per month - the programmers are expensive. It turns out that an accountant costs the company 50 tr. per month. The same is, for example, the deputy chief accountant.

    The director was a little taken aback by these numbers. It's one thing to hear “we spend 50 tr. per month for technical support of users ”- well, it’s necessary. It is quite another thing - “the incompetence of this accountant costs us 20 tr. per month". There are fewer calls for technical support.


    When we called the cost of automation, the customer was inconvenienced, but only temporary. He will be scolded, maybe some kind of fine will be written out and forgotten. He gets indulgence, and can start all over again.

    Such an approach did not suit us, because everything again came to the situation of “programmers are bad.” Therefore, we did simply - we began to use the accumulated statistics on the cost of automation.

    Technically it is simple - we already had all the data, in the context of customers, divisions and metadata. And we began to abolish indulgences.

    When the conversation again comes up that we are not solving any problems, or someone is badly automated, we simply raised the report and showed the accumulated amount. Because we had statistics in terms of metadata, the amount was well divided into two parts - good and bad.

    Good - used functionality. The bad is unused. Someone bad was twice as good.

    Parsing Versions

    Versioning systems that in 1C, which is in the same CouchDB, work in the same way - they just store versions of objects at the time of recording. Some finish these systems - for example, they do not save versions if nothing in the object has changed.

    Our users, rummaging that we analyze their work, including using versioning, just began to overwrite documents more often. Well, just in case.

    We were upset because could lose one of the instruments of influence and protection of their interests. But the programming mind prompted the decision - let them rewrite themselves as much as they want, we will parse and analyze the versions for meaningful changes.

    Accountants, for example, people are cunning, but they are afraid to spoil their records - if they overwrite an object, they change some insignificant requisite, like a comment. Formally, the version is new, even if filtered by the presence of changes.

    We have added such an entity as a view of meaningfulness. They simply listed the properties of objects, the change of which, most likely, is a normal reflection of a person’s work, and not IDB. There were several views on the same type of object. For example, changing an item in a shipment is a major change. Changing an account is so-so, not very serious, but still it’s work. Changing the time of the document within the same date - no, alas, just childish pampering.

    So we have the statistics of changes in the context of meaningfulness. Users, of course, prosharili and began again DDoS'it - change important props, after a minute, or a day change back. Naive.

    After all, we have the opportunity to compare versions not consistently, but, for example, the first and last, and ignore intermediate changes. When the quarter is closed, the document is, with a high probability, already in the target state, and you can safely compare it with the latest version on the date of its creation.

    Correlation automation and KPI

    Many programmers, their bosses and directors are worried about the effect of automation on business. Here there are costs for programmers, completed projects, solved problems. And there are KPIs of people, departments, directions and their leaders.

    It is assumed that automation should be useful, or, as they say in jokes, “to do good”. But what really happens is usually not known.

    Based on the above, it is clear that we had a lot of numbers about automation. And there were KPI departments that ordered this automation. Something was considered a machine in the system - for example, sales. Something was considered manually, in Excel or somewhere else. But KPIs for all were - they just introduced some kind of motivation system.

    We, as real programmers, first of all automated the accounting of all KPIs. Those that could not be calculated according to the system data were simply downloaded from Excel. We have all the figures that characterize the work of employees and departments of the company.

    From ourselves, we added another indicator - the number of employees in the department. Just because there is such a stereotype - automation can easily reduce the number of required personnel, especially service personnel, such as bookkeeping or economists.

    Having KPI and costs for automation, it is very easy to calculate the correlation, because all data is stored with reference to dates. Executed, for example, an automation project worth 200 tr. in January - the KPI of the respective unit should change. Not immediately, but, let's say, in February, or in March, or even in June. But must. Otherwise, what's the point?

    Oddly enough, the correlation was. For example, in the work of procurement - we did an automation project for TOC, and their KPIs grew. Even sales have increased, because they were the purpose of the automation of procurement, ultimately.

    But there were also examples of the lack of correlation. For example, the introduction of CRM did not bring anything at all. Creating a site, instead of the previous one, did not bring any effect.

    All accounting automation brought only a negative effect, especially on the number of their staff, despite all our efforts to contain this cancer of the company.

    But the automation of accounting economists had a positive effect - we lost two employees. They were not fired - they left for their own reasons. But we suggested - let's not take new ones yet, let's see how it goes, we automated a lot there. The director agreed, and everything worked out.

    After the calculated correlation, the manual began to look differently at automation. Well, the programmers, of course. Especially in the light of the fact that nobody ordered the calculation of this correlation to us - it was our initiative.

    True, then the director changed, and everything had to start from the very beginning. But, somewhere in half a year, the new director also estimated the calculation of the correlation.

    Also popular now: