I am a Java engineer by profession. I have been writing code for more than 15 years and starting my own business for more than 10 years. I have outsourced many projects to others and also accepted many outsourced projects. Now I don’t accept them anymore. I only run an e-newsletter sending platform, which has accumulated more than 5,000 corporate users in two years. Being in the entrepreneurial circle, whenever an entrepreneurial friend asks me about it, I will tell him not to accept it if he can (of course, I also know that if it is not for survival, who would be willing to accept it?), because there are too many traps in it. I share the following for your reference: Because you write code quickly Engineers who usually take private jobs usually have some years of experience and have their own common tools and libraries, so they can often complete the work assigned by their supervisors very quickly. They believe that as long as the customer's needs can be met in a very short time, the project will make money. [BUT] The speed of project completion depends on the mood of the client. If he is in a bad mood, the project will be delayed. You thought your code could be reused, but in the end you found that it was your liver that was actually reused. Because you can write code very quickly, whenever a client compares prices, haggles, or puts pressure on you to close a case, you will think to yourself: Well, as long as I try hard, there should be no problem. [BUT], you have virtually sacrificed your profit margin and can only make a small profit. Do you know how accurate the engineers are when estimating the completion time? The higher the accuracy, the higher the chance of making a small profit. Because you can earn annual maintenance fees It's like this when you take private jobs. Once you take them, it will be difficult for subsequent maintenance clients not to come to you for maintenance. As long as you accumulate them slowly, you will earn considerable maintenance fees every year. [BUT], you know that most Taiwanese companies have an unwritten rule that the maintenance budget for the same system is reduced every year. Customers will think: the system should be stable after annual adjustments, and if it is stable, you haven't done anything, why do you have to pay so much? Next, you may think that if the customer wants to add a new function, he will definitely come to you first. Imagine that you are asked to add a new function according to the code structure you wrote three years ago. If you don't vomit blood, it probably means that you haven't made any progress in the past three years. It's okay not to accept it, right? But you have such a sense of responsibility. If you don't accept the customer, you can only tear it down and ask someone else to make a new one. Can you bear it? So do you think this maintenance fee is easy to make? Because you care about your customers. Because you care a lot about the company, you often find that something is missing or the supervisor's planning is wrong during the development process. You will take the initiative to work overtime to make up for the missing parts. The company praises you very much. If you treat your clients with such an attitude when taking private jobs, the feeling of cooperation between both parties will definitely be very good. [BUT], of course your client is happy, because you took the initiative to help him add functions and adjust the system better, and he doesn't have to spend any more money. Add money? The contract was signed at the beginning, how can you tell the client to add money? Besides, it was you who took the initiative to add functions. Can you not add it? Of course, but can you tolerate not making your work better when it can be better? If the original plan was wrong, can it be accepted without adjustment? Because you know what your customers want Because when you are in the company, the supervisor often speaks incoherently, but you can always analyze what the supervisor wants and you can complete it. So when you take private work, even if the other party does not understand the technology, you can complete the functions he needs. [BUT], do you know what the customer wants? No, you don’t, because most of the customers don’t know what they want, and do you know that the customer has a boss? Do you know what the customer’s boss wants? No, you don’t know, because even his boss himself doesn’t know. Is this the scariest thing? No, there’s something scarier. They will tell you that they know what functions they want, but you just can’t make what they want. Because you are good at planning You are a person with good logical thinking. As long as your supervisor tells you his needs, you can quickly draw a system architecture diagram, a code architecture diagram, or even a database architecture diagram with a very high accuracy rate. So when you take private work, as long as the customer tells you the needs, various architectural diagram prototypes will quickly appear in your mind. [BUT], do you know who made the specifications? Yes, it was the customer, because if he didn't make them, you couldn't quote. If he asked you to make them, you would be afraid that he wouldn't accept the quote, which would be a waste of work. Do you think the customer's logic is better than yours? So usually you have to understand the customer's logic first, then find out the contradictions, and then propose a better solution. This back and forth process takes a lot of time. Oh, yes, this part usually doesn't get you paid. The customer will think that if you want to take my project, you should first understand my needs. Because you have a team Because you have certain connections in the industry, you can write code yourself, and then find a business expert and a graphic designer. This way, the smallest unit will be good and everyone can divide the work. This way, there will be fewer problems in taking private jobs and the process will be smoother. [BUT], because you have three people, you can only take projects that can support >= 3 people. Such projects are usually slightly larger. Due to the reasons mentioned above, the cases will be closed very slowly. If the cases are not closed, people will be stuck on this project and cannot get paid, and new projects cannot be taken. What should you do? Yes, add people, so your team becomes 4 people. Then you can only take projects that can support >= 4 people. What if a big project comes at this time? Yes, you will fall into an infinite loop until you can no longer take on larger projects. Because you want to use the client's project to train your troops As Forrest Gump said: Life is like a box of chocolates, you never know what flavor the next one will be. So you never know where the next project is, but when you start to have a team and have to pay salaries every month, it is good to have a project that is neither too big nor too small. Anyway, you don’t know when the next project will come in. This one can just pay the team’s salary and can be used for training. [BUT], one characteristic of taking private jobs is that if you take on a project, your ability to take on the next project will be reduced, because manpower and time are always limited. If you take on a small project and there is no manpower for the big project, do you think everyone will be angry? Unfortunately, the owner of this small project is particularly troublesome (based on the reasons mentioned above, you know that the probability is not small), then you are not honing the team's skills, but honing everyone's body, mind and spirit. Gradually, there will be a voice that the generals are incompetent and the army is exhausted... Why don't you develop a small product yourself to train your troops? Because you have a way to deal with customers You have a very good personality. When you were in the company before, you could get along well with manufacturers and customers. You would take on tasks that could be taken and would block tasks that could not be taken. If you were to take on private work and deal with customers, you would have no problem. [BUT], customers have hundreds of options. You have one set for them, but they have several sets for you. They may bargain, lower the price, press for time, add functions, delay acceptance, the accountant disappears, the boss goes abroad... In the end, they blame you for delaying for so long and deduct money from you, saying: Aren’t you professionals? You are friends during the development stage, but you become Party A and Party B during the acceptance stage. Because you never lack customers You never need to develop unfamiliar customers on your own. All customers come through introductions from friends or clients. This is much better than ordinary companies, which don't even have the customers they want. [BUT], have you ever thought that you have all the advantages mentioned above, and the key point is that you are cheaper than others. If others don’t go to you, I will go to you. So have you made money? Because you have signed a contract In order to avoid the above unnecessary problems, you must sign a contract for each project to protect both parties, and there will be no problem as long as you follow the contract. [BUT], the other party has a legal department, do you have one? The other party has money, do you have one? If you really want to sue, can you afford it? Are you really sure that you are completely right during the cooperation process? Is there a way to regulate all the functional details and operating procedures in the contract? If the contract is a big book, will your client sign it with you? So, can you really follow the contract? When was the last time you had fun writing code? When I had the same abilities as you, I once said: I hope that my last move before I die is to press [Enter]. My motivation for writing code is not to make money (of course, making money is important, but if it was just about making money, I could do direct sales, sell insurance, work for a big company...). To be precise, it is not just about making money. My motivation comes from the fact that the code I write can be used by many people, really help many people, and many people say it is good. (Believe me, if you really do this, you actually make money) But since I started taking private jobs, I could only help my limited customers. To be more precise, maybe only some people who actually use the system, and only these people would say good things about me. Others would only think that it was what you should do, but as long as he resigned or got angry during the final acceptance, all the efforts would be gone. So at that time, I was only happy at two points, one was when I received the deposit, and the other was when I received the final payment. The long period in between was painful. When multiple projects were carried out at the same time, in fact, all the time was painful. I still remember a sentence I often said at that time: When I received your cold check, my heart felt warm. Of course, there must be people who are very good at taking private jobs, but it is difficult to replicate other people's success, but other people's failure can be avoided. Even if you can avoid the traps I mentioned above, it does not guarantee that you will succeed, because this is just the tip of the iceberg. I have not taken private jobs for a long time, and I have forgotten many things and do not want to think about them. I just hope that before you decide to take private jobs, you will think carefully about whether taking private jobs is really your only option? If you can, I would suggest that you should develop your own products and services. |
<<: Write an iOS network request library yourself - reduce coupling
>>: Alternative ideas for hot updating of Node.js Web application code
Early stage of operation : quickly familiarize yo...
Google has been making a series of moves in the f...
Follow the steps below to publish your own cocoap...
"Whatever does not destroy me will make me s...
With the rapid development of the mobile gaming i...
On Christmas Eve, an activity called "Write ...
This article shares with you the SEM promotion ca...
Recently, many friends have been discussing Julia...
The annual Double 11 promotion has arrived as sch...
Introduction to Yang Chao's new film course r...
Biden talks infrastructure Background made in Chi...
2014 is called the "World Cup" year not...
With rapid breathing and spray of water, the gian...
Information feed ads first appeared on Facebook i...
The cross-screen era is coming. Who will become t...