Jun 29, 2019 - 05:18 PM
Image source: SimpleProgrammer.com
It Is a Tough Problem, Even for those Who Are Technical!
Hiring good developers is a tough problem all around, but doubly so for the non-technical folks, because you basically have no basis to evaluate the competency of the candidates.
In large-enough companies, hiring developers usually involves multiple rounds of technical screens to determine competency, and obviously the screens are done by other technical folks who can assess the results. Some companies like Google and Microsoft are famous for their difficult interview processes.
Such processes reduce the chance of failure (though there are still bad hires), but it's an expensive effort, and it doesn't really solve the problem of how to assess competency for the non-technical folks.
Can You Do Without a Developer? (Using Plugins and Off the Shelf Software?)
Given the challenges involved, my first advice is to rethink the issue and see if there are ways to solve your problems without needing to hire developers.
Are there ready-to-use software that you can buy to solve your problems? When it comes to buy (ready-made software) vs build (writing custom software), you should almost always pick buy if such options exist. Even if the available solution doesn't solve your problem 100%, if it can help reduce scope, it will reduce the competency level you have to hire for, which gives you more room for error.
Assuming that you still have the need to hire afterwards, by going through such an exercise, it will give you better pictures of what effort would be involved in solving the problem, which will inform you questions to ask and answers to expect for your hiring process.
Assign a Small Task to Protect Your Downside
The next step is to structure the hire in a way that protects your down side. Instead of making a full time hire, start with a small contract. Having the contract's scope spelled out (that's where the above exercise will fill in for you), and then structure it in a way that limit your exposure.
Fixed fee structure can help, but just keep in mind that unless you are very clear on the scope and fair with the inevitable changes, many good developers won't even be interested because they have been burned many times in the past.
Be sure to have an out clause in the contract, so that you can terminate the contract quickly if you recognize that you have made a mistake. Hire slow but fire fast is a good mantra to keep.
Ask for a portfolio of previous work from the candidates - at freelancer level, most seasoned ones should have built a portfolio that you can peruse. This will weed out a lot of good developers that don't have portfolios - ones that work for large companies usually don't - but that's okay, you are hiring for small contracts at this time.
Call Client References
Ask for references - be sure that they are client references, and non-technical clients, i.e. people that were in the boat that you are about to get into.
Be sure to call the references! These are the real interviews you would be conducting, since you cannot directly assess skill, you should assess previous outcomes! Be sure to ask for every details that they are willing to share - what type of work was done, what issues the project run into, how does the candidate address issues when they come up, does it feel stressful to work with the candidate, the overall satisfaction levels, and would they hire the candidate again.
Take Detailed Notes and Compare
Be sure to take copious notes from the references and compare them against your own situation. Try to match them to what gaps exist and whether you can live with the gaps. Use that to determine whether or not this candidate would be a hire.
The above should protect your downsides so that you can go try for that initial hire. Hiring is a skill, the only way to get good is if you get to practice a lot, so you should gauge accordingly - until you have hired a lot, you should continue to protect your downside to build up your experiences.
Eventually you will see enough candidates to get a sense of whether a candidate is going to work out, then you can relax some parameters and take more risks to go for some high potential candidates.
Good luck on your journey of hiring good developers.
Jul 04, 2019 - 05:00 PM
Yinso's answer is mostly spot on. A few other thoughts:
- If you using one of the major ecommerce platforms (Shopify, Magento, WooCommerce and BigCommerce) they should have lists of approved or certified development partners. While I am not sure how much vetting these partners go through, you can at least know they have some level of competence. You can then start with a small piece of work to see how they do. The other advantage of doing this is that if they specialize in Shopify, they won't waste time learning on your dime like a random freelancer might. It will be more expensive than hiring a freelancer but lower risk. Here's a partial list:
- Try FreeeUp an outsourcing platform that claims to vet the top 1% of freelancers. They vet for competence as well as verbal and written communication skills and attitude. They might even offer some kind of guarantee and so if you are unhappy with the work, you have recourse.
- Related to the first point, reach out to the developers of any ecommerce plugin that you currently use and are happy with and ask if they would be willing to do some custom work for you. If it is a solo developer or a small dev shop they might agree. This is something I have actually done and it worked out well. They have proven competence by developing a useful plugin and so can likely do what you want. Larger dev shops or very successful plugin developers will likely say no, as their time is better spent on their plugins but it is still worth a try!
Aug 19, 2019 - 12:17 PM
Firstly, review technologies used for software on the internet, read the appropriate Dev Docs to know these technologies in general.
Secondly, ask for a specialist who can review/verify the skills of your hires. By the way, here is the list of possible questions you need to ask an applicant:
- 1. Demonstrate how to design complex solutions using the plugin’s life cycle.
- 2. How do multiple plugins interact, and how can their execution order be controlled?
- 3. How do you debug a plugin if it doesn’t work?
- 4. Identify strengths and weaknesses of plugins.
- 5. What are the limitations of using plugins for customization? In which cases should plugins be avoided?
- 1. Describe cache types and the tools used to manage caches.
- 2. How do you add dynamic content to pages served from the full page cache?
- 3. Describe how to operate with cache clearing.
- 4. How would you clean the cache? In which case would you refresh cache/flash cache storage?
- 5. Describe how to clear the cache programmatically. What mechanisms are available for clearing all or part of the cache?
- 1. When would you create a new theme?
- 2. How do you define theme hierarchy for your project?
- 3. How do you identify which exact theme file is used in different situations? How can you override native files?
Layout and XML:
- 1. How do you use layout XML directives in your customizations?
- 2. Describe how to create a new layout XML file.
- 3. Describe how to pass variables from layout to block.
Products and products types:
- 1. How would you obtain a product of a specific type?
- 2. What tools (in general) does a product type model provide?
- 3. What additional functionality is available for each of the different product types?
- 1. Describe how to modify the price calculation process in the shopping cart.
- 2. Describe how to implement shopping cart rules.
- 3. Describe the difference in the behavior of various product types in the shopping cart.
The list of the questions is taken from here - https://whidegroup.com/blog/how-to-hire-a-magento-developer/