After many technical professionals go out to work independently or as freelancers, it is inevitable to rely on some outsourcing projects to maintain income at the beginning. If some problems are not discussed in advance, it is easy to bury holes or unpleasant things happen in the process of cooperation.
Author according to their own blood and tears summed up the experience, also may provide you with a reference, also only for reference rather than guide to action.
Question 1: Don’t know how to evaluate the project?
To answer this question, let’s first make it clear that this is a transaction. Since this is a trade, what is the trade commodity? Ostensibly a product, but actually a specific programmer’s time. So the first thing to do is to put a price on your time.
Here’s a reasonable way to do it. Start by figuring out how much you should be earning for a normal day’s work, which is often referred to as a person’s daily rate. This is the normal 8 hours, not the 12 hours you plan to work overtime.
Here we need a benchmark price, which can be the salary offered by the company before you quit, or the monthly salary offered by someone willing to hire you later. It can be roughly understood as the market price at which you sell your development time, and then float about 50% on this basis, for the following reasons: The company pays you a salary of $1.5, but the actual company pays you about $20; Additional stable job and oneself receive the coefficient of income risk of sheet is different, because this should have certain rise ability is reasonable, because this 50% ~ 70% float is very reasonable.
Therefore, it is not difficult for us to calculate our normal unit price per person per day. For example, our monthly salary before leaving the company was 20,000 yuan. Excluding holidays, we have about 20 working days per month on average.
20000 * 1.5/20 = 1500
With the unit price per person per day, it is necessary to evaluate the project demand and the project working hours, and then estimate a reasonable price. Finally, it is good to adjust the price appropriately according to the difficulty and urgency of the project and the competition situation.
Problem 2: Non-new requirements that require frequent changes during acceptance
If not software development, outsourcing in other industries is expected to encounter many such parties. This is very annoying and one of the reasons why people don’t want to do outsourcing. We are not afraid to change it, but no one can stand it.
Later, I thought of a solution: write the rounds of acceptance stipulated in advance into the contract, for example, three rounds of acceptance, each round of centralized modification, if more than three rounds, the other party still requires changes, extra charge. This can satisfy the other side to a certain degree of dissatisfaction with the place to modify, but not to let oneself too much loss.
Problem 3: There are no dedicated testers and many problems after delivery
This is a disadvantage for indie developers. One of the reasons why so many outsourcing companies do so many projects even though their technology is so bad is that someone else has a decent QA department that controls the best quality, trying to make the code as good as shit, but it just works!
So as an indie developer, you must pay attention to the quality of software delivery, testing is very important, many times you think of a small problem, others will think you are not capable. Don’t be lazy when it comes to unit testing for important processes. Try to arrange an independent tester. Don’t economize on this part of the test.
Problem 4: the ownership of software copyright
Customers generally require that they own the copyright of the source code and software, but it is best to retain the copyright if you can, so that you can package the system later and sell it to others without legal risk.
In addition to this, there is another problem, if the same customer makes a similar system in the future, how to deal with it? Start from scratch code a, this is obviously not practical; In view of this, we are in the contract, currently through the following to avoid risks:
Party B shall not transfer, reuse, modify or disseminate any codes, systems, documents or other materials related to Party A’s intellectual property rights and company secrets under any circumstances other than this Project.
That way, you can reuse most of the code later if you make changes to the other party’s intellectual property or company password.
Question 5: The other party recruited technical personnel and asked them to intervene in the research and development of the project in the middle of the project, how to deal with it?
Please say no! It makes things very complicated, who’s responsible if something goes wrong, do you have to maintain their code as well? There is a lot of wrangling here, and the other party is probably not going to cooperate with you for a long time, I suggest that it is good to execute according to the contract delivery, do not let yourself into passive loss inside.
Problem 6: Bo color, crawler and other possible violations of the product
This is almost always the case if you come out and take orders yourself. My personal advice is to stay away, just to give you a heads up.
Problem 7: Halfway through, the other person doesn’t want to do it
Although there is a contract, but the tail is really hard to catch up. Even within the normal period of cooperation, many party A can drag you into bankruptcy! Do not be embarrassed to talk about money, separated by three difference two kill urge, temporarily put down the lofty technical person is necessary.
Another point is that the payment period should be 442 as far as possible, or at least 352, so that even if it does not come back in the end, it will not be empty.
And line and cherish, and is willing to share with you.
Welcome aspiring freelancers or entrepreneurs can add my Vx exchange (DarcyYe), remarks nuggets.
About me:
Post-90s full-stack independent developer, a freelancer since 18 years ago, founded AgileStudio studio in 19 years, providing reliable software customization services.