📜 ⬆️ ⬇️

Notes for playing business

Is business a game or not? I think yes. And any game should have rules.

Hi Habr, my name is Alexander. Today I would like to share with you about how it should or should not be running an IT business. These notes I learned from my own experience. I will not write here with books and at the same time, often with empty and boring phrases. There will only be what I learned for myself by working on the field of independent work, that is, not on my uncle. The whole article will be divided into parts. In all parts except the first, the material will be presented in the form of notes, after each note I will give an example from my work, so as not to be unfounded. Go!


Part 1. My short story.


I have been working only for 5 years for myself. First, a freelancer, then founded his company. I started from the Russian freelance market, while still a student, without even a remote idea of ​​business. At first I did very small projects, then I moved to a higher level. And then he moved to Western freelance exchanges. For all this time I have completed more than 100 projects for sure, maybe a little more. I worked with clients from many countries: USA, UK, Australia, Brazil, Poland, Sweden, Spain, Russia, Italy, Japan, South Africa, Israel, etc. All I will not list, because I do not remember all. As you can see, the customers' geography is vast, which means that I can draw some conclusions about working with clients, projects, employees and, I hope, they will be useful for you.
Yes, by the way, I specialize in OCR, OMR, recently I have been increasing my capacity in the field of workflow.
')

Part 2. Organization of work


1. Plan.

Trite, but true. Planning is one of the components of a successful business. Without planning your business will be like a ball of thread, which you will constantly unravel, and someone from the side will throw even more of these threads. And it will turn into endless routine work. Try every day to make a list of tasks for the next day.
From my experience: Certain time when I worked with one or two clients, I did not keep any records, plans, did not make schedules. But over time, clients and tasks became more and more, but I persistently tried to rely on my memory. In the end, this led to the fact that I forgot about some negotiations, did not prepare for them and, as a result, failed them. There was also a funny moment when I forgot the name of the client. But there everything was okay, since the client was with a sense of humor.
After such failures, I began to keep daily plans, began to write down the names of clients, budgets, etc.

2. Do not make large lists of tasks.

Do not try to load yourself with tasks for the day with which you can not cope. For example: You set yourself the task to write a class, the development of which takes 8 hours, that is, a whole working day. Do not attempt to put a parallel task on this list, for example, negotiations. Since you and the class do not write, and the negotiations will be crumpled. Motivation is killed first of all by unsolved wandering tasks. If you set yourself a task, for example, on March 1, and she stays with you until May 1, it kills. Such tasks as nomads, wander from one day to another. Get rid of them.
From my experience: At first, as I began to plan my schedule, I tried to stuff many tasks on one day. At first I was proud of it, they say I am so busy. And then I noticed that I still had nomadic tasks that I assigned a month ago, but did not fulfill them. And it began to kill motivation to work. Therefore, I try to plan my day adequately. Commensurate with my strength and capabilities.

3. Separate tasks by importance.

As much as you would like to work on an interesting task, be able to prioritize your business. First of all, solve critical and urgent tasks, not the ones you want. Since without solving a critical task today, you may no longer have to solve an interesting problem tomorrow. For example, make 4 categories of tasks: “Very urgent”, “Normal”, “Low by priority”, “Someday”. And it will simplify your life.
From my experience: In working with a client from the US, we tried to indulge his requirements, and went far away from serious things. He (the client) was interested only in the appearance of the program, and we, having made concessions, lost a lot of time for the program to be stylized to the colors of the company, instead of dealing with serious tasks, such as developing the core of the program. The bottom line: deadlines, loss of money and very tense relations with the client.

4. Do not delay urgent tasks.

Urgent tasks are those tasks that very often decide the fate of the whole project, company, relationship with the client.
From my experience: We were contacted by a potential client, he offered us the development of one interesting project. We discussed the approximate budget, deadlines and came to a preliminary agreement. He said that he would send a detailed TZ so that we could talk substantively. We said OK. After receiving the TK, we safely forgot about it, because at that moment we were working on another project and the tasks there were less priority. As a result, our potential client was tired of waiting, and he went to other developers. We lost a promising project due to the fact that we had postponed the solution of an urgent task.

5. Do not assign negotiations with a small interval.

An excellent negotiator is a person who in a short time can win over a client to his side. But sometimes very capricious customers come across, who repeatedly ask and drag out time. Therefore, in order to avoid conflicts with your other clients, investors, partners, assign negotiations with an interval of at least 3 hours. And you will relax and will not have to frantically look at the clock.
From my experience: I have appointed talks with two clients. With one at 16.00 with another at 17.00. I thought that with the first one we will finish quickly and I will go to the second client with peace of mind. But it was not there! The first client, as luck would have it, turned out to be a lot of questions that he wanted to ask on that particular day. And the second client had a window only from 17.00 to 18.00. As a result: I negotiated with the first one normally, and with the second we began to have misunderstandings, which we subsequently settled. But henceforth I do not appoint negotiations with such a small interval.

6. Delegate.

Everyone knows the well-known principle of delegation of authority, tasks and other things, for some reason, not all people
is welcome. Learn to delegate your tasks, or the tasks of a company to other people. Since this leads to "multi-threading", we all know that multithreaded problem solving is better than single-threaded. If you learn how to delegate tasks correctly to other people, you can do business more efficiently.
From my experience: I initially delegated all legal and accounting issues to other people for two reasons: firstly, I didn’t have time to understand the law and accounting, and secondly, I just don’t like law and boo. accounting And believe me, it’s so much easier, I don’t need to make reports, contracts and lose valuable time.

7. Do not share the skin of a not dead bear.

The big mistake of all business start-ups is to count the profits that they haven’t earned yet. And not just counting, but its distribution among team members. Learn to restrain yourself from predictions. If you have just started negotiating a project, you should not immediately assume that you will spend such and such amount on an office or car repair. Just work, do not pay attention to the numbers in the contract. Imagine that they are not. The amount worth paying attention to when the project is 85% complete. Only after that. As it often happens that the payment on the project may be delayed and your plans will fail.
From my experience: On one of the projects we discussed the amount with the client, signed an agreement and I began to consider where to spend this money, but I did not take into account the fact that this money is not yet available. And, as usual, the payment was delayed, the plans collapsed.

8. Concentrate on current, not follow-up tasks.

Give priority to current tasks, not to subsequent ones. Since current tasks are almost always associated with subsequent ones, you cannot jump from one task from an earlier stage to a task from a later stage. If these two tasks are interrelated. As you know, you can not first have a baby, but only after that to conceive.
So here too, carry out the tasks according to stages and timelines, sequentially.
From my experience: When I first started working as a freelancer, I often read TK through a word. I wanted to make a deal as soon as possible and get down to the project. It did so. The deal was concluded, and then I read the TZ more carefully and understood that there were problems. Fortunately, I know how and I was able to quickly find solutions, therefore projects were made on time. But I jumped from the current task (Reading TK) to the next (the conclusion of the contract). And this led to embarrassment.

Part 3. Clients


1. The client is not always right.

Many who worked with clients, faced with a situation where the client imagines himself to be God. This is especially true of project managers. Clients sometimes do not put specialized employees to supervise a project, and they hire or appoint managers who, in turn, rarely have specialized IT-education. But for some reason, these people most often consider themselves to be the gods of IT business. Especially at points related to the technical side of the project. Be able to defend your point of view. Resist the pressure of such gods.
From my experience: at the moment we have an open project with a client from the USA, he is supervised by a young manager. Or rather, a very young and not very smart manager. And he constantly argues personally with me on all the little things, starting with the name of the project and ending with the use of languages ​​and technologies. I defend my point of view and do it as I see fit, because this manager is far from being developed in principle. If I go with him, then I will have to redo 80 percent of the project, which means that we do not fit into the budget and incur losses.

2. Perceive customers not as your superiors, but as partners.

Do not let the client feel power over themselves. In essence, you have a partnership. He is not your boss - he is your client. And the point. Many clients work on the principle that the one who pays is the one who orders the music. Do not let do so. Because he will sit on your neck.
From my experience: One of the clients tried to prove to me that I should do everything he ordered at any time of the day and without payment. At first, I succumbed and tried to perform tasks in this vein, but as soon as I realized that this client was taking my time (and therefore money) and nerves, we had to part. And I do not regret it at all.

3. Keep calm.

Remember, not all your customers understand IT. Try very calmly to explain this or that. Since there are very stupid and narrow-minded clients in our IT field, but they are very smart and advanced in theirs. With very good budgets.
From my experience: In my memory there was one client from Spain who made an order for a project. The man himself owned a logistics company and was very far from the IT sphere. At each stage, we very intelligibly explained to him “What? What for? How?". As a result, we developed software that, firstly, brought us money, and secondly, pushed us to a new stage in the development of the company.

4. Follow promises, deadlines and do not look for excuses.

There is nothing to explain. Keeping promises, deadlines is one of the pillars of the IT business. This is what forms your image, what your customers pay attention to. Do everything to achieve this. If you have broken the deadlines, then there is no need to make excuses - this will not help, but only aggravate the situation. Try to explain to the client why you frustrated the deadline. But only without excuses.
From my experience: We broke deadlines on one project. Or rather not. Not this way. We are very! frustrated deadlines on one project. We tried to justify ourselves, saying that the situation was incorrectly assessed, it is necessary to rewrite DAL, BLL again (although this was not the case in TK). It did not help - it was our mistake, and the client insisted on penalties. As a result, we offered the client to do some of the functionality for free in order to make amends. He agreed. But the sediment has already remained.

5. Try to communicate more with the client.

I am not at all adherent of chatting, using mail, etc. I try to communicate by voice either personally, in order to more easily and quickly agree on something. In voice communication or in person, you can hear or see how the mood changes, the intonation of your interlocutor, and you can adjust to it.

6. Know how to say no.

This item is a "stumbling block" for many young businessmen. Trying to please the client, young IT businessmen do not know how to say "No", but this ultimately leads to a sad result. Businessmen lose money, time, and sometimes customers, because of the inability to say "no."
From my experience: On one of the projects, there was a funny incident, we completed the project, the money was transferred, the technical assignment was completed in full. Everything seems to be a closed project, but it was not there! After a week and a half at the end of the project, I received a letter on the soap, with an attached PDF file. In this file were specified the specifications of the new functionality. And this functionality should be implemented for free! I was just shocked by this, since the specifications for the new functionality were comparable with the TK. That is, with paid work. Naturally, I refused, explaining to the client that this was a new job, not related to the original TK. He was indignant for a long time, but in the end refused to develop this functionality. Bugs and omissions we corrected for free.

7. Refuse "embarrassing" customers.

If you don’t like the client, your intuition tells you that you shouldn’t work with it - believe it. If at the very early stages of communication with customers you have doubts, it is better to refuse such a customer.
From my experience: I refused to work with clients for various reasons, but I will mention a few of them: inability to properly express thoughts, inappropriate bargaining, dismissive attitude, refusal to write TK, very long feedback, arrogance.
And in these cases I was always right that I refused. Since I did not get a headache from these customers and performed new tasks.

8. Close the client on yourself.

If you started working with a client, then try to keep with him only positive moments from working with you. Since in the future he will come to you rather than look for another artist.

Part 4. Projects


1. Select a niche.

Many small companies and individual freelancers sin because they do everything. From my point of view, this is a dead end path of development. Since it is impossible to do everything. You will not be able to compete with a niche company or an individual developer, if you do everything. It is impossible to sit on 5 chairs at the same time.
From my experience: As I wrote above, my main specialization is recognition. Before choosing a niche, I did everything. But this did not work very well, as I had to study the technologies, tools and aspects of this task in a new project. In fact, the choice of a niche I had by chance, after writing a thesis. And she was on the topic "Recognition of text using the Hopfield and Hamming neural networks." After that I began to use my library in projects. I began to take more projects related to recognition. And subsequently concentrated only on them. Naturally, I work on projects in which recognition is only a small part. But still. I sharpen my skills from project to project, and since this is a business, I use my work in new projects, which significantly reduces development time and get more profit in less time.

2. Simplicity.

Simplify everything to the max. Starting from the interface to the architecture. No one needs to be confused. The simpler the better.
From my experience: the best project in terms of interface, usability and architecture, I consider the project that was designed for a Spanish client, I wrote about it above. I spent two weeks developing the architecture, but I don’t regret it. Since I still use this engine in other projects and sometimes I just sell it. And the simplicity that I laid at the very beginning, she helped me adapt the engine to my needs in the shortest possible time. Although the Spanish project was very difficult.

3. From larger to smaller.

When designing a more or less large project, do not try to cover everything. It's useless! You can not take into account all the nuances. Concentrate on the main parts of the system. Describe the main points and objectives. And start developing. This approach is comparable to the approach of the sculptors. From the block they first form an approximate silhouette, and then, moving from one part to another, make the silhouette more similar to a real object. And only at the end they detail their sculpture. So it should be with you. Make large parts of the program, and then break and refine them, make them more similar to reality.
From my experience: When I start developing a new project, I first divide it into several logical parts. Then proceed to the development. During development, I divide these logical parts into smaller ones and implement them. And I repeat it at each stage, making the parts smaller. I repeat the stages to the indivisible state of these parts.

4. Modularity and scalability.

Make all your projects so that later they can be very easy to scale. And also make them modular. That is, divided into several logical modules.
Scalability will allow you to easily expand the functionality of the system, and modularity will provide an opportunity to allocate some functionality, for example, in a separate library and use it in other projects, thereby reducing development time.
From my experience: in principle, I always divide the project into small parts, which I later use in other developments. So I do everywhere, so I will not write about a specific case.

Conclusion


I have described several important parts of any IT business. "Organization of work", "Clients", "Projects". I did not inflate the “Projects” section, since the article was quite large. If the respected Habr community wants to continue the article, then I will write it with pleasure and share my experience. To be honest, I did not include the clauses “Employees and partners”, “Financial aspect” in this article, and as I wrote above, I didn’t inflate the item “Projects” just because I don’t know how Habr would perceive my article.
I hope you found something useful in this article and learned some new knowledge from it and spent your time for a good reason.

Thanks for attention.

Respectfully,
Alexander

Source: https://habr.com/ru/post/179039/


All Articles