As a Java engineer, I have written code for more than 15 years and started my own business for more than 10 years. I have outsourced many projects to others and accepted many outsourcing projects, but now I don’t accept them. I only run the e-newspaper sending platform, which has been used by more than 5,000 enterprise users in two years. In the startup world, whenever a startup friend asks me, I always tell him not to pick up the phone if you can’t. (Of course, I also know that if it’s not for survival, who would pick up the phone?) , because there are too many traps, I share the following for your reference:

Startup trap for programmers: Taking private jobs

Click to read the original article

Startup trap for programmers: Taking private jobs

Released 1 day ago, source: mp.weixin.qq.com

(Click the blue word at the top to follow us quickly)

Source: Electronic Leopard blog

http://blog.newsleopard.com/2015/05/31/ software engineer trap – receive case/entrepreneurship

If you have a good article to contribute, please click → here for details

As a Java engineer, I have written code for more than 15 years and started my own business for more than 10 years. I have outsourced many projects to others and accepted many outsourcing projects, but now I don’t accept them. I only run the e-newspaper sending platform, which has been used by more than 5,000 enterprise users in two years. In the startup world, whenever a startup friend asks me, I always tell him not to pick up the phone if you can’t. (Of course, I also know that if it’s not for survival, who would pick up the phone?) , because there are too many traps, I share the following for your reference:

Because you write code fast

Usually, the engineers who do the private work are relatively old and have their own tools and library, so they can finish the work assigned by the supervisor quickly, thinking that the project will make money as long as the customer needs can be completed in a very short time.

【BUT】 The speed at which a project can be completed depends on the mood of the client. As long as the client is in a bad mood, take it slow. You think you can reuse your Code, and then you realize it’s really your liver.

Because you write code very quickly, as soon as the client compares prices, negotiates prices, presses you to close the case, you think to yourself: Well, if I only try to hurry, I should be ok.

Do you know how accurate engineers are at estimating the completion time? As high as the accuracy is, the probability of making a small profit is as high.

Because you can earn an annual maintenance fee

Pick up private work is such, as long as you pick up, after the maintenance of the customer is also difficult not to find you to maintain, as long as the accumulation of slowly, there will be considerable maintenance costs can earn every year.

【BUT】, you know, most Taiwan companies have an unwritten rule that the maintenance budget of the same system is decreasing every year. The client will think: The system should be stable after the annual adjustment. Why do you need to take so much money even though you haven’t done anything? Next, you might be tempted to say that if a client wants to add a new feature, they will come to you first. Imagine if you were asked to add a new feature based on a code framework you wrote three years ago. If you didn’t vomit blood, you probably didn’t make any progress in those three years. Not the head office, right? It happened that you are so responsible, you do not pick up customers can only be knocked off to ask others to make a new set, you have the heart? So you think the upkeep is easy?

Because you’re very considerate of your clients

Because you are very considerate of the company, you often find something missing in the development process or the supervisor’s planning is wrong, you will take the initiative to work overtime to fix these missing parts, the company praised you, if you take private work with such an attitude to treat their customers, then both sides must feel very good cooperation.

【BUT】 Your customer is a good customer because you take the initiative to add functions to make the system better, and they don’t have to pay any more money. With the money? The contract was signed at the beginning, how to tell the customer to add money? Besides, it’s your own initiative to add features. Can I leave it out? Yes, but can you live with your work not making it better when it could be better? If the original planning is wrong, can not adjust acceptance?

Because you know what the customer wants

You can always figure out what he wants and get it done, so you can still get the job done even if he doesn’t know the technology.

【BUT】 Do you know what the customer wants? No, you don’t, because most clients don’t know what they want, and did you know that clients have bosses above them? Do you know what the client’s boss wants? No, you don’t, because his boss doesn’t know, and that’s the scariest part? No, worse, they’ll tell you they know what features they want, but you just can’t make them.

Because you’re good at planning

You are a logical person, as long as the supervisor tells you his requirements, you can quickly draw system architecture diagram, code architecture diagram and even database architecture diagram, the accuracy is very high, so when taking private work as long as the customer tells you the requirements, you will soon appear in your mind all kinds of prototype architecture diagram.

【BUT】 Do you know who makes the spec? Yes, it is the customer, because he does not open you can not quote, if he wants you to open, you are afraid that after opening the quotation he does not accept it is equal to work in vain. Do you think the client logic is any better? So usually what you need to do is to understand the customer’s logic first, and then find out the contradiction, and then come up with a better solution, and this part of the back and forth takes quite a bit of time, oh right, this part usually doesn’t pay, the customer will think that you want to take over my project, you should first understand my needs.

Because you have a team

Because you have certain contacts in the industry, they will write code, and then find a business master, art master, so the smallest unit is good, we can divide the labor, so the problem of private work becomes less, more smoothly.

[BUT], because you have three people, you can only take on projects that can support >= 3 people, and these projects are usually slightly larger. Because of the reasons mentioned above, the case will be closed very slowly. What if the people who are not closed can not get money in this project and the new project can not be accepted? Yes, add people, so your team becomes 4 people, and then you can only take on projects that can support >= 4 people. What if a big project comes along at this point? Yeah, you go back and forth until you can’t take on any bigger projects.

Because you want to use your client’s project for training

As Forrest Gump once said, life is like a box of chocolates, you never know what you’re gonna get. So you never know where the next project is going to be, but when you have a team and you have to pay a salary every month, it’s nice to have a modest project that you don’t know when the next project is going to come in, and it pays the team and you can use it for training.

[BUT] One of the characteristics of taking on private work is that when you take on this project, your ability to take on the next project will be reduced because of the limited manpower and time. If you take on a small project and no manpower takes on the big project, do you think people will be angry? Unfortunately, the owner of this small project is particularly troublesome (based on the above reasons, you know the probability is not small), then you hone the team is not their technology, you hone but everyone’s body and mind ah, slowly there will be a will be incompetent, tired three army voice coming out… Why don’t you develop your own gadget for training?

Because you have a way with clients

Your personality is very good, before in the company can and manufacturers or customers get along very well, can pick up, can not pick up will block, if you come out to pick up private work and customers to deal with the right there will be no problem.

[BUT], the customer hundreds of, you have a set of customers, customers to you BUT have several sets, he can negotiate, bargaining, pressure time, add functions, drag acceptance, accounting missing, boss abroad… . “, finally blame you why drag so long again buckle you a sum of money, said 1: you are not professional? During the development phase, you are friends. During the acceptance phase, you become both parties.

Because you’re never short of clients

You never need to go to strange development, customers are introduced by friends or customers, which is much better than the general company, others want customers are not yet.

【BUT】, have you ever thought, you have all the advantages mentioned above, the point is that you are cheaper than others, others do not look for you, I want to look for you. So did you make any money?

Because you have a contract

To avoid these unnecessary problems, make sure you sign a contract with each project to protect both parties.

[BUT] does the other side have legal services do you? Do you have any money? Can you afford a real lawsuit? Are you sure you’re doing everything right? Is there a way to specify all the functional details and operational procedures in the contract? It’s a huge contract, and your client will sign it with you? So, are you really gonna walk away from the deal?

When was the last time you had fun writing code

When I was as capable as you, I used to say that I wanted my last act before I died to be “Enter.” My motivation for writing code was not to make money. (Sure, making money is important, but if it was just making money, I could have gone into direct sales, insurance, a big company…) I’m motivated by the fact that I can write code that can be used by as many people as possible, and that can really help as many people as possible, and as many people as possible are good at it. (Trust me, if you do this, you’ll make money, too.)

But since I took private work, I can only help a limited number of my customers, to be precise, maybe only some people who actually use the system, and only these people will say that I am good, and other people will just think that you should do it, but as soon as the final acceptance of his resignation, he is angry, all efforts are gone. Therefore, I was happy only at two points at that time, one was to receive the deposit and the other was to receive the balance payment, and a long period of time in the middle was painful. When multiple projects were carried out at the same time, in fact, all the time was painful. I still remember that I often said a word: received your cold check, my heart felt warm.

Avoid to meet someone to pick up the good, of course, only the success of others is very difficult to copy, but someone else’s failure can be avoided, if you can avoid the trap that I mentioned above there is no guarantee that you will be successful, because this is just the tip of the iceberg, I have to leave to avoid congestion state for a long time, a lot of things forget to also don’t want to think about it, just want you in the decision to avoid before, think about it carefully, Are you really the only option you have? If you can, I would suggest that you develop your own products and services.