
Implementation of a software product. Features of the work of a business consultant. Part III. Final
It is not enough just to get knowledge, you need to find an application for them. It is not enough just to desire, it is necessary to do.
Goethe
Readers of my series of articles on the work of a business consultant in small and medium-sized businesses, I want to remind you that in previous articles I told:
- How to start working with a new client, how to understand the features of his company, how to choose a new software product.
- How to present the product and convince the customer of your choice
- How a business consultant works during the implementation phase of a software product.
Let me remind you that the transition to new software most often underlies the work of a business consultant in small and medium-sized businesses. There are many reasons. It is also that a new, more efficient workflow requires new software, and insufficient business automation in most cases, and the lack of necessary analytics to offer an effective solution to a customer’s problem, etc.
In the process of introducing a new software product, the business consultant also creates an updated scheme of work for the company’s departments:
- The level of control and accounting at all stages of work is increasing, since the new software has quite powerful analytics, and exactly the one that is required for this business.
- Documentation is being developed for the work of each unit, which contains not only instructions for working with a new software product, but also general principles for the work of the unit, job descriptions for specialists, etc.
- The level of automation increases, as a result of which the speed and efficiency of the entire process of work increases.
- If necessary, in the process of work, the business consultant makes proposals for the modernization of the units, their interaction among themselves, including the possibility of staffing changes.
It is very important to understand that the task of a business consultant is not just to introduce a new software product, but to solve a business problem. Therefore, if you see that some departments or individual specialists are not working efficiently enough, if you know how to optimize their work, be sure to make suggestions to the client on this issue and implement them in the process of working on the project. In most cases, the head of the business approves my suggestions for optimizing work, as they invite a business consultant to solve business problems, and the need for change is obvious. And now I want to talk about the next stage, about the test operation of the system and the end of the project.
Test operation
So, the software product has been finalized and meets the wishes of the client as much as possible, in addition, almost all the documentation has been created. The time has come to carefully check the program’s work, i.e. test operation.
In principle, testing can begin immediately after the transfer of residues and be carried out regularly. But the more data will be introduced into the new program, the better the testing process will be. This stage can be called beta testing, i.e. testing a software product by developers and users.
Beta testing - intensive use of an almost finished version of a product (usually software or hardware) in order to identify the maximum number of errors in its operation for their subsequent elimination before the final release (release) of a product to the market, to mass to the consumer. Unlike alpha testing conducted by in-house developers or testers, beta testing involves attracting volunteers from among ordinary future users of the product who have access to the mentioned preliminary version of the product (the so-called beta version)
Wikipedia
In essence, beta testing is a test of a software product that is already ready. At the same time, it is too early to use it in practice, before you give it to the user, you need to conduct a quality search for errors.
Factors necessary to start a test operation:
- All leftovers have already been transferred.
- The main improvements are made.
- On the customer side, there is a person who can be responsible for testing.
The last paragraph is worth a closer look. You will need the help of a person on the part of the customer who knows the old program well enough and has become acquainted with the new software product in detail. It is this person who at the end of the work will be able to confirm that the implementation was successful, the software product works well, the project can be closed.
Naturally, the head of the company pays for your services, and usually someone else takes your work. The head of the company appoints from his employees a responsible person whose duties include a detailed check of the software product. As a result, this employee will report to the management that the work has really been done efficiently, and that you can close the project and pay. Both for you and for him, it will be best if this person in charge will participate in testing from the very beginning.
Test operation can be carried out in several iterations.
In principle, everyone who tested a software product knows that testing always consists of a certain number of iterations, because The scheme of work here is simple:
- Checked the program
- Detected errors
- Fixed these bugs
- Checked the work again
This cycle is repeated as many times as necessary until the quality of the software product fully satisfies the customer.
Test operation can be carried out simultaneously with training.
This solution, on the one hand, is quite risky. Often, company employees are already hard pressed to accept changes, and if they see that the new program is not working properly, not well enough, then this resistance can grow even stronger.
On the other hand, this approach will not only save time, but will help to identify a large number of shortcomings in the early stages of work. During the training, people ask questions, ask how to perform a particular action, how to get some kind of report or document, and you understand that there is no such solution in the new program. This is very convenient for you, as some important points in the work that you previously missed come to light.
And in order for users not to have a negative when combining training and testing, it is important to fulfill two conditions:
- Employees of the department receive access to the software product only when the basic functionality necessary for the work of a particular unit is ready. You can’t show a completely “raw” version, users should see an option close to the final one.
- Always explain to users that the work is still underway, accept their questions and comments with gratitude, show that according to the results of their joint work with the program, the tools they need appear. This will help you avoid misunderstanding and resistance from users.
When testing software, as well as during training, it is best to work mainly with 1 - 2 employees. Those people whom you started to highlight during training, who know the software product better than others, should also participate in testing. This will help them learn more about the program, become more confident in the result, and you will get more qualified assistants for the testing process.
The documentation needs to be prepared during the test operation.
You have to create a fairly large amount of documentation for different departments and employees. And because the sooner you start to deal with this issue, the better. In principle, if the test operation showed that some module or plug-in is ready, meets all the requirements of the customer, then for him you can already write instructions.
Integration Testing
Often there is a need not just to introduce a new product, but to integrate it with other solutions. For example, to effectively automate work with clients, it is often necessary to integrate some of the 1C products with the site.
And then it is very important to use both software products during testing. Moreover, the specialist who will work with the site in the future should work on the site. And from the side of 1C, the person who will process this information when it enters 1C will participate in the testing.
The optimal solution is to gather all people in one room, and conduct joint comprehensive testing.
For example, to check the full cycle of working with an order for an order, you need to bring together a specialist from the procurement department and a specialist from the sales department. The sales department creates several customer orders and a specialist in the purchasing department - an order to the supplier based on customer orders. Then the goods arrive and sales are made. All stages are clearly visible, and in each case, the work is performed by that specialist who knows all the nuances of his work process.
One more example. Integrates 1C and Zoho CRM. At the same time, a contact is created in Zoho, in 1C - a contact person. One of the sales managers creates a customer card in Zoho, the other works in the 1C environment. Based on the data received from Zoho, the manager in 1C creates a contact person and partner.
If the scheme of the company’s work is such that both managers will work both in Zoho and 1C, then during testing it makes sense to change their places.
Very often, the creation of contacts and leads is divided between different employees. But even if it is usually done by one person, it is still better to take two for testing and share this work. So you can more accurately check the system, and, as you know, "one head is good, and two is better."
And remember that for any testing you need to invite the responsible person who will host your project. Of course, if a person is busy at this time, it is not worth insisting on his participation, but if there is an opportunity, let him participate, it will then be easier for him to understand how the program works.
I want to remind once again that by the time of testing the software product should be ready. It may contain some errors or shortcomings. But all the functionality needed for the work of the unit must be present. Also try to make testing as close as possible to the workflow.
Programmer's participation in the testing phase
I will say right away and clearly: the programmer does not take part in the testing process. Absolutely. Never. He corrects errors, is engaged in improvements. But testing is not his job. As my friend says - Never trust the final testing of an IT specialist.
Once I made such a mistake myself: I trusted a programmer and, from his words, accepted work. Then I realized that this is not true. It is you, the consultant, who are responsible for the quality of work before the client. In addition, testing is not related to the work of a programmer. Yes, he will reveal some mistakes on his own. But still, this is not his job.
The first phase of testing I spend personally. Yes, this is a rather boring and not the fastest process. But then, in this way, I get deeper acquainted with the work of the software product and with the modifications for a specific business, and also personally convinced of the quality of the work done.
If I detect errors, I pass information about them to the programmer, the programmer corrects them, and I repeat the test. And only when I am personally satisfied with the results, I bring a new release for testing with the responsible person and all participants in the process.
As a result, all interested parties are familiar with the work of the software, everyone sees that it works qualitatively, and are ready to confirm that I completed the task qualitatively.
Pitfalls of testing
At the testing stage, the most difficult thing is to organize the workflow. The employees who must participate in the testing are busy with the main work, and it can be quite difficult to get them together at the same time. On the other hand, you may encounter opposition from the employees themselves. This is not surprising, because participation in testing is an additional burden for the employee, in addition, people generally tend to resist change.
Therefore, the first thing to do in each department is to appoint a person responsible for testing.
Most often, when I choose a responsible person, I try to do without the participation of company management. Ideal option: agree with the head, in principle, the appointment of responsible persons, and you choose the candidates. Of course, they will need to be agreed upon, but if you bring the list of candidates to the responsible persons and inform that people do not object to participating in this work, the manager will most likely approve your candidates without any problems.
How does this happen in practice? If I see that a person makes good contact and is really able to convince him, then I’m acting like that. If the employee you need is clearly resisting, you will have to resolve the issue of appointing him as the person in charge through management.
It is important to remember yourself and explain to the employees: you, of course, are not their boss, you do not have administrative leverage, but you are ready to bring the project to the final, no matter what.
At the same time, I believe that a business consultant should be able to convince people. The manual should be contacted only as a last resort. Administrative decisions "from above" will not help to establish contact with people, and in some cases, even vice versa. Learn to convince people that this work will be done, and it will be the employee who you think is most suitable that will do it.
If you are faced with active resistance, you can, as an exception, involve a leader. Then the following usually happens: the leader personally confirms the appointment of a specific person as the person in charge, in the most difficult cases a three-person conversation occurs: the leader, you and the employee. But such things should be a rare exception. Most often, even in the case of very active resistance of employees, after 1-2 such conversations, the refusals to cooperate cease on their own.
Boycott: active and passive
One of the most common employee resistance options you may encounter is a boycott. Here I’m talking not just about responsible people who don’t want to do extra work, but about the resistance of employees in principle. Sometimes whole units "strike" like this.
Do not worry, such a reaction is normal. Put yourself in the shoes of these people. They worked calmly and habitually, knew their responsibilities, were engaged in habitual actions. And here comes a business consultant who brings change. Employees have to undergo training, master a new software product. Moreover, their responsibilities often change somewhat, and administrative control almost always rises, since a new level of automation is aimed, among other things, at that. And in some cases, after the appearance of a business consultant, reorganization of departments and dismissals even occur.
At the same time, it is the business consultant who is guilty of all these changes and troubles in the eyes of employees. On projects I am often considered a gray cardinal and, of course, they do not like me. This is normal. In human nature, resist change. Remember, even the Chinese have such a curse: "That you live in an era of change."
Therefore, if you are faced with a boycott, you do not need to worry. This is the most common moment in your work. It is important to recognize the signs of a boycott in a timely manner and be able to effectively solve this problem.
So, there are two types of boycott:
- active
- passive
The active option of resistance is simple, explicit and understandable. The man in your eyes declares that he is against you. Sometimes they even reach threats. And here also remember that this person has nothing against you personally. He is against the changes that you personify. Sometimes such people can be convinced, but more often the issue is resolved through the leader.
Passive boycott is more difficult to identify. On the one hand, no one objects, everyone is ready to cooperate. On the other hand, it is almost impossible to bring the people you need together. They find themselves busy with urgent work, constantly absent, at the last moment forced to do other things, etc.
Here you can also act in persuasion or through company management. At the same time, there is no need to quarrel with people, this is generally unacceptable! Also, you cannot demonstrate that you are the main one here. You are not the main one. You have no direct power. But at the same time, you are a continuation of the will of the leader. Explain to the employees that you were hired to solve a specific problem, and therefore the manager will also ask you. And if you cannot solve the task set for you because of the resistance of employees, then you will not hide this fact.
Usually this is enough for people to think and begin to cooperate. But if similar explanations do not work, all that remains is to go to the head. And then it all depends on the person. Either he will comply with the orders of the leadership, or, most likely, will be dismissed. Yes, I have repeatedly come across such an option, when the resistance to change reached the point that I had to part with an employee.
Learn to like people, communicate with them. I often communicate with employees informally, go to a cafe with them for lunch, drink tea and coffee, even go out for a smoke break, even though I am not a smoker. Thus, I make contacts, try to see in me not a car, not an embodiment of an unpleasant process, but just a person who does his job.
But no matter what, you must also show your steadfastness. Employees must understand that this project will be implemented, will be implemented successfully and in a timely manner. No matter what.
Never show your weakness or insecurity, but admit your mistakes!
Remember that you are positioning yourself as an expert, it is you who know how to better build a business and are ready to participate in the restructuring of the work process. People see this, they also understand that management has already made a decision, and agree that change is inevitable.
But you are also a living person, and you can be wrong. And, of course, company employees will definitely notice your mistake and start asking questions. What to do? Never lie or make excuses. Calmly and honestly say: "I was mistaken." Remember, during the training phase, I also told you, do not be shy to say "I do not know." Here the situation is similar.
Yes, you are an expert, yes, you know a lot and know how, yes, you managed to understand the features of a particular business so much that you identified deficiencies and help to fix them. But at the same time, you are a living person. And it is human nature to make mistakes. Therefore, the ideal solution in case of questions is to honestly and calmly admit the error, and then correct it in a short time. Thus, you decide to destroy the problem in the bud.
Also, never be tempted to blame the programmer. Even if it is obvious to everyone that it was the programmer who made the mistake. Remember that you and only you are responsible for the project. If the programmer was wrong, and you accepted his work, then the fault lies with you. I believe that it is unacceptable to blame someone else, I believe that it is unacceptable to discuss with the client "what stupid these programmers are." And I always say bluntly that the fault for the mistake is mine. And only mine.
Remember that you are responsible for the project. You get paid for this work. And all the negativity should also be on you. At first it’s hard, of course, to take all the negativity onto you. You get negativity from the client when he encounters some mistakes and shortcomings, you get negativity from employees who are unhappy with the changes. But in fact, you are gradually getting used to it.
I personally do not see anything wrong with this negativity. This is just my job. And I remember well that all emotions are directed not at me, as a person, but at the process that I brought and personify. And therefore I perceive emotions as well. Then they will understand, appreciate, but for now it’s also difficult for them.
And another important point regarding the correctness of your relationship with the client. Never say: "He does not cope with his duties, he must be fired." It does not concern you. You may not know some important things. A person can smoke and drink, maybe just an unpleasant person. All this does not concern you. Therefore, speak only about specifics, about your work and what is connected with it. If you are not satisfied with the work of an employee, just say that he could not cope in such a situation. Talk about the specific process and its challenges. You do not care about the personality of this or that employee, as well as his professional qualities. It is important for you to train him. On this and focus the leadership.
Test completion
Once again, we repeat the steps of the testing process:
- Testing by a programmer. Before handing you the work, the programmer corrects those errors that he managed to identify.
- Testing is your own. You personally test the operation of the program in as much detail as possible before installing the next release on the client.
- Joint testing with the person responsible for the project. Together with this person you also thoroughly check the work done or check the quality of the improvements, make sure that everything works.
- Testing with direct participants in the process takes place in the mode as close as possible to real work. People fulfill their responsibilities in the new software environment. They check how conveniently and correctly the system works.
And finally, when everything is ready, when most of the errors have been identified, you need to give access to the system to the maximum number of employees. Let people work in two systems in parallel. They do not have to duplicate everything. But if possible, you need to work in both systems. Thus, the software product undergoes full beta testing, i.e. checking the operation of the multi-user environment in the operating mode with a sufficiently large load.
At this stage, in no case: do not give ordinary participants in the process their contacts!
All questions from employees must go through the person in charge. At this point, this employee should know the software almost as well as you. He should be able to answer a variety of questions, suggest how to perform this or that work in the new program. In general, the level of training of the responsible person should be such that at the level of a question on current work, he could notice you at the end of the project.
Launch of the project
So, the test was successful and everyone agrees. What happens next:
- The system already has current balances, filled out directories, there are all the necessary documents and reports.
- All necessary integrations are present and work efficiently.
- There is all the necessary documentation for the work. Moreover, if the client did not request any of the documents important from your point of view, let him know about it yourself. If he refuses this or that document, be sure to record this information in text form, for example, by correspondence by email.
- The server is configured to work, you also transferred all the plugins to the client.
If all these points are completed, you can start the system.
It is important to understand that launching is not a closed project. Explain this to the customer as well. After the launch, you will still be there for 1 to 2 weeks, depending on the complexity of the project.
Employees of the company should work in the new program for some time, get used to it, and understand all the features. And only when you are sure that they will not return after your departure to the old program, can the project be considered completed.
At this stage, you should work to the maximum and be on the project almost all the time. You must control the quality of work, help, prompt, make the latest changes. And now, on the contrary, you can leave your phone even to ordinary employees, you must be constantly in touch.
For example, when I launched a software product at a bakery, I slept 3-4 hours a day for 3 days. I was at the enterprise almost all the time. The programmers who also led this project could relax more. They simply had to be in touch to quickly correct possible shortcomings. And I spent almost the whole day on the project simply because the bakery was working around the clock, and I had to control a variety of processes at different times.
Also, your client must know and understand exactly that during this period of time, the last week of your work on the project, all improvements and help on your part are free, or rather, as part of the payment for the project. Further, any work will be paid separately.
Why is it important? If the client understands that in a few days your help will end, then you will have to pay for any action, he will really qualitatively test all the nuances of the work, the employees will figure out all the questions during this time, make sure that everything works as it should. Otherwise, you run the risk of receiving requests for revision or any questions for a very long time. You will already have a new project at work, you can already forget the details and features of that project and that software product. And you will still be asked for improvements. Because if you don’t set clear deadlines, then people don’t take any serious checks, and they begin to call you when some problem was discovered by chance.
How to explain this to the client? You are not able to keep a programmer in this project for a long time after finishing work. Just because you still have to pay for the time of a specialist, and your profit from the project does not allow such expenses. You are not able to constantly engage in past projects, otherwise you will not be able to immerse yourself in a new one as productively as you worked now. In addition, you are sure of the result, people who tested the program and accepted the project are also sure. And you understand that most likely, improvements will not be needed in principle or will be needed already when some changes occur in the company’s work.
Feel free to explain quite frankly your approach to work. Small and medium-sized businesses are most often people who know how to value money and time as well as you. Therefore, your arguments will be close and understandable to them.
Industrial exploitation. Escort
If you worked on the project well, then the maintenance is practically reduced to zero. Moreover, I personally spend escort almost always remotely.
How does this happen:
- I teach one or two customer’s specialists how to describe tasks. I use the jing program for this. If necessary, a screenshot or video with text describing the problem is added to the task. Then this information packet is sent to me.
- All support is through writing, through the bug tracking system. I use the Redmine system for this. Of course, this is not necessary, it’s just so convenient for me personally.
So, if there is a need to finalize something, specialists from the client’s side set a task for me in writing, I will implement it. And at the end of the month (or 2 times a month) I send a report on the work done and issue an invoice.
Let me remind you again. If you have done a good job on the project, then there will be no such improvements at all, or they will be single. Therefore, escort does not bring much profit.
On the other hand, and this is very important, maintenance should not be a particularly profitable process. If you focus on constant support, then you just did a poor job.
As one of my clients said about such work: “If I bought a car, then I understand the need to put it on TO periodically, but the rest of the time I just have to drive, and drive without problems and without the constant presence of a mechanic in my car in the back seat".
So is the maintenance: if the work is done well, then some maintenance, some improvements may be needed occasionally. And do not worry about the fact that you will not receive any profit. You will get even more thanks to such factors:
- A grateful client will contact you more than once, not for improvements, but with new projects.
- A grateful client will recommend you to friends. And such an advertisement is worth a lot.
- Due to the fact that you do not have to constantly be distracted by minor improvements, you can actively engage in the current project, which is also a big plus.
There is another important point at the end of the collaboration, which I would like to warn about.
Never burn bridges!
Remember that everyone gets tired of the final stage of the project. And you are tired, and the customer, and his employees. People are tired of the increased loads, of changes, of training, of the need to resolve contentious issues, it is difficult to rebuild their principles of work, etc. etc. Therefore, at the end of the project, misunderstandings and disagreements with the client occur from time to time.
You understand how much you have actually done, you are sure that everything will work “like a clock”. For you, the project is completed, but for the client, everything is just beginning. Your client still doubts a lot, would like you to be on hand longer in case of any problems, do not really understand what are the advantages of the new work option, because he still does not have enough data to analyze profit and work efficiency. And you are already leaving.
Of course, such disagreements do not always happen. Rather, these are exceptions to the rule, since with most of the client, for example, I have a very good relationship. But, nevertheless, this happens in life.
That’s why I warn you: even if you have any misunderstandings with the client, if the person has expressed too emotionally, do not rush to answer him the same and in no case burn all the bridges after yourself.
Yes, you have already been paid. Yes, you are also tired and it is also unpleasant for you to hear unfounded accusations or even insults. But do not forget that this person paid you. And pay more, perhaps more than once. Therefore, always leave the opportunity for reconciliation, do not refuse to be accompanied, etc. In my practice, it happened more than once, when over time such emotional people called me, apologized for the last incident, after which they gave me new orders, for which we worked even more efficiently.
I hope that this series of articles helped you to present the work of a business consultant in small and medium-sized businesses, its features, pitfalls, nuances. Let me remind you that this niche in our country is still unfilled. There are not enough specialists, and therefore I am ready to answer questions and help with advice to anyone who wishes to become my colleague.
