In each of these cases, the parties have no reason not to trust each other, since they don’t give anything away for nothing. Money or other valuables are deposited in a smart contract and remain there until the other party fulfills its obligations. If this does not happen, the smart contract returns the values to their original owners.
What to consider when developing smart contracts
Do you need smart contracts at your business. International development company Jelvix, specializing in offshore development, presented a short list of criteria that will help you to understand whether the distribution register and smart contracts will be useful to your business.
Smart contracts have limitations. If you come to the conclusion that your business cannot do without smart contracts, you need to study this issue in more detail. In particular, understand that smart contracts have limitations. It’s about the following things:
1. Smart contracts should be applied only to what can be fully implemented in the digital environment (blockchain). If the contract needs to register or take note of something outside this world, it’s better to use another solution.
2. They act solely on the basis of specific facts - objective truths, and not subjective judgments.
3. Executed in the form "if / else or if / then". For example, if an event A occurred, then we launch action # 1, if an event C occurs, then we launch action # 3.
4. The contract algorithm should be simple and exclude complex discrete functions and probabilities.
5. Contracts cannot operate with real assets, only their “digital” certificates.
Smart contacts can be «bad». Researchers from the UK and Singapore found that about 35,000 existing contracts are vulnerable to hacker attacks. Therefore, during development and after it, you need to pay special attention to testing the final product, since any mistake or vulnerability can lead to loss of money and resources - yours or customers.
Where to look for a smart contract development company
Let's name the most popular sites for searching executors for programming tasks:
- LinkedIn. Social network, customized for the search and establishment of business contacts. Be sure to create an account on this site and use LinkedIn Recruiter (a paid service, but there is a trial period) to search for a company to develop smart contracts. It will not hurt to look for developers on the subject pages of LinkedIn Groups.
- Clutch.co and Goodfirms.co. Portals with information about the most popular development companies. On the first site, the list includes 131 companies, on the second - 177. On these sites you can read reviews about companies and key information about the conditions for cooperation with them.
- Blocktribe.com. Resource where customers publish tasks for blockchain developers. There is a convenient filter that eliminates candidates on the level of professionalism and experience.
- Upwork. Freelance platform for finding and hiring developers. It has been operating since 2003 and is considered one of the most popular in the world.
- Toptal. The main Upwork competitor with similar functionality and goals. Toptal candidates are interviewed, tested, coding tested in real time, and they also perform a mockup for about 30 hours.
- Less popular sites. DREAM, Codementor.io, Xbtfreelancer.com, Cryptojobslist.com, Crypto.jobs, Blocktribe.com, Beincrypto.com, Coinality, BountyOne.
It is also worth looking for developers on social networks Facebook, Instagram, Twitter, Google+, StackExchange and Chinese Qzone, Weibo and Renren. Professional companies are active in social networks to attract potential customers. And they, as a rule, have accounts on the Bitcointalk forum - create an appropriate topic and wait for responses.
TokenFest - the annual two-day event dedicated to the tokenization of business
The site Meetup.com provides information about events (lectures, conferences, press conferences, etc.), affecting the subject matter of the blockchain and smart contracts. Since the developers are the main target audience for such events, it is likely that you will find the right people there. Local blockchain events can be found in a special section of the CoinDes website.
Whom to look for during pre-selection
First, the team you choose must understand specific technologies and tools. For example, if we are talking about smart contracts on the Ethereum blockchain, we need an understanding of how to work with EVM, EBaaS, PaaS, IoT, decentralized technologies, P2P networks, consensus mechanisms and several other tools.
Comparison of platforms for creating smart contracts (Source: GitHub
Secondly, you need to check whether the development company has the necessary knowledge and experience in creating the type of contract you need, and on the blockchain you choose. For example, if you need a contract for the sale of real estate, then you need to choose those who have already done this, and not those who created the best smart contract in the world for mortgage lending.
And the third criterion of primary selection is the outsourcing model. As a rule, when developing smart contracts, choose one of the following models:
1. Fixed Price. Suitable for customers with a limited budget. There is no flexibility, that is, the ability to make changes to the project after the start of development. The contractor does only what is stipulated in the terms of the contract of employment.
2. Captive Unit. A software company hires, trains, and administers a team of programmers. The customer only sets the goal and pays the salary. Best for running complex projects.
3. Professional team. An outsourced company assembles a team of programmers that meets the specifics of the project and will work on it both during the creation and during the maintenance of the final product. Best for launching a complex project that needs to be developed and maintained after deployment, for example, for launching complex online services.
4. BOT (Build — Operate — Transfer). As follows from the decoding of the name, this model involves hiring a team of programmers, creating and launching a product, and then transferring it to a third party. Suitable for launching franchise projects, for example, if you want to deploy a network of payment services in several countries under your brand and these services will be managed by local companies.
What are the criteria to screen out the remaining
After you have completed the initial screening, the remaining smart contract development companies need to be examined in more detail in order to select 3-5 candidates with whom you can interview and test their skills with the help of special testing. You need to study the following things:
- Portfolio. Examine the use cases of candidates, paying attention to the compliance of the initial task and the achieved result, as well as the development time, usability and attractiveness of the final product.
- Comments and reviews. Check out what is written about candidates on the Internet: on pages on social networks, specialized forums and reviewers.
- Geography. If you want to communicate directly and during working hours, the team of performers should be approximately in your time zone (± 6 hours). It is also important that you speak the same language without the help of translators.
- Cost of services. As a rule, performers indicate on their website the cost of services for the development of different types of smart contracts. Make sure they fit your budget.
- Legality. You need to work with a company that is registered under all the rules of local law. To check this point, you can use the GlassDoor, BBB.com and WebChecker, as well as the official websites of local tax and fiscal authorities.
How and what to talk about during the interview
Reaction time. The speed at which smart contract development companies respond to invitations to your interviews is very important. So, if it is several hours (during working hours) - this is an excellent indicator that indicates the presence of a special person to communicate with customers. If the answer came in one day - everything is fine, but if it took more than two days, it is worth thinking.
Videoconferencing. It is better to communicate with candidates via video call (Skype, Viber, Google Hangouts). So you can scope out the person who communicates with you and ask him to conduct a video tour. The representative must be well dressed, be in the office or workplace and understand programming. If the order is accepted by the secretary, end the conversation and proceed to the interview with the next candidate.
During the video tour, pay attention to the number of staff, the availability of appropriate equipment and the employment of people. If you were denied a tour, there should be a good reason for this, for example, programmers work at outsourcing. What to ask:
- Customer contacts so you can get feedback.
- Project Manager Summary. This is the person who will oversee your project, manage the team of coders and give feedback on the development process.
- List of the fleet of devices. If there are several MacBooks and ten smartphones - go to the next candidate.
- If they participated in open source development and / or conferences. This is optional, but can help in choosing the best candidate.
Details of your project. When you start talking about your order, it will be a big plus if a coder or a project manager is connected to the conversation. In this case, there are more chances for an accurate assessment of your order: development time, cost, number of the necessary team and the like. In this case, the more questions you ask, the better. If they just listen to you and tell the time with the price - it is better to try with another team.
How to test candidates
If, after the interview, you are not convinced of the competence of the company to develop smart contracts, you can test it on special services. The best ones are:
- TestDome. Provides samples of real work, a large library of short-term tests, protection against fraud, and the ability to add specific questions to tests.
- Devskiller. It differs from the previous site by its own anti-fraud protection, which checks candidates' work on anti-plagiarism and ID tracker. In addition, you can conduct online testing with recording coding sessions.
- Codility.com. Conducts programming competitions among candidates and checks them for compliance with the customer's brand.
- Saberr. Emphasizes the verification of the psychological, cultural and ethical aspects of the team. This is important if you create and / or maintain an image of an «ethical company».