HOW TO BUILD AN IN-HOUSE SHOPIFY DEVELOPMENT TEAM FOR YOUR BUSINESS

October 25, 2021
|
Emmanuel Cohen


Every business intending to enter the e-commerce industry eventually comes to the point where they must decide whether to outsource or maintain its e-commerce development in-house.


This is a critical issue that business executives should not take lightly, since the outcome will have a significant impact on their company's success or failure. Some companies prefer to have a dedicated in-house development team handle their e-commerce needs as they arise, while others believe the benefits of outsourcing this service far outweigh the disadvantages.


PROS AND CONS OF IN-HOUSE DEVELOPMENT TEAM

If you’re looking to build an in-house team, here are a few things you should consider


Pros

  • Fast response time

Your e-commerce development goals can be met swiftly if you have an in-house development team on hand. This is especially helpful when issues come on your platform that require immediate attention and rapid fixes before a comprehensive investigation can be conducted. Readily available staff provides a safety net for organizations that wish to ensure that minor concerns are addressed before they become large ones. In this case, you won't have to wait the long haul for an outsourced development team, which can sometimes be busy or take some time to source.


  • Easier communication

Face-to-face communication is easier when your team is in the same office or building. Dealing with developers in person goes a long way toward not just getting them on board with your culture, but also ensuring that your precise requirements are addressed. To avoid costly mistakes and reverts, direct communication with your development staff is critical, and only the in-house team can afford you that opportunity.


  • Total control

Having a specialized team of developers within your organization who are only focused on your company's e-commerce demands ensures that your platform is created to suit your specifications.  Everything that needs to be accounted for with regards to your own business needs can be addressed immediately, with tangible modifications based on your specific direction and business strategy. An in-house team gives you complete control over every aspect of the project, ensuring that they meet your expectations.


  • Being the in-house team's only client should potentially allow you to be more efficient.


  • Depending on how you operate and how much work or projects you're delivering, using an in-house team could be less expensive.


Cons

  • Staff churn

Most developers don't have a high level of staying power with the companies they work for, which is well known in the tech industry. This is due to the industry's high need for specialists, and competent developers are frequently approached by competitors. As a result, you should expect frequent interruptions in your workforce as employees come and go. It takes time to find new developers, and losing a team member at a critical time can be costly. The costs of sourcing, vetting, recruiting, onboarding, and so on must also be considered when choosing an in-house team over outsourcing.


  • In-house team costs more

Putting together a development team to concentrate only on your company's needs full-time is a pricey endeavor, especially for small firms. Developers are well-respected professionals who may earn significant wages from various companies. So, employing these developers to commit to your business alone with a fixed fee is a luxury that very few organizations can afford. Due to the great demand for developers in the tech industry, they must have their compensation requirements satisfied adequately to prevent them from considering other opportunities.


  • It is not time-efficient

It is hard for your development staff to work on high-level projects every minute of the day if they are on board full-time. Although there's nothing wrong with giving them a break, when you're paying expert wages, it becomes a more difficult concept to embrace. In actuality, you'll be charged not only for the work, the major and minor tasks they execute but also for the time they spend away from the office.


  • Businesses relying on the expertise of a few in-house teams don't benefit from having a bigger team all learning from each other as you often find in large agencies.


  • With an in-house team, it's more difficult to foster a culture that values performance, accessibility, and others.


  • With an in-house team, maintaining code quality can be a challenge.


One of the most significant risks of internalizing development is that quality suffers, and you gradually drift away from processes – it's all too easy to fall into the habit of doing ad-hoc releases, lose focus on performance, reduce quality assurance effort, and so on. That is why it's recommended that the product owner oversees the process to enforce quality or appoint a dedicated technical project manager with the expertise to supervise the in-house development team.


IN-HOUSE TEAM STRUCTURE

The team structure will vary depending on the business since the skill set of each team member differs and the level of complexity in other systems, the Shopify site, levels of front-end work, and so on may vary. One of the most important things to do upfront is map out the responsibilities and workload for different areas against your backlog and roadmap tasks. For instance, if you're looking to launch several simple new sites, each with its own theme, you'll have more work for a mid-level front-end developer.


To avoid the codebase being bound to a single person, knowledge-base becoming locked to them, and code standards and quality degrading, you should not depend on a single person for the whole development. Introducing pull requests and code reviewing will help prevent it, but require two or more developers.


If you're looking to create an in-house team, below is a sample structure that is working for many tech companies, and you can adopt it too:


Lead or Senior Shopify Developer

You should begin with a full-stack developer with large-scale project expertise and Shopify knowledge. More emphasis on large-scale project experience because such person will have the expertise of working in a systematic manner, can push for more modernized tooling, and will be capable of creating a development workflow among other things. This Lead Developer would collaborate with the Product Owner or dedicated Project Manager on resource management, deployments, planning, prioritization, and other tasks. They would also serve as the architect for integration, custom apps, and more sophisticated projects.


Front-end Developer (Mid-level or junior Shopify Developer)

Hiring a front-end developer(s) is not always crucial since your full-stack developer can equally take on the front-end task. However, most people prefer to have front-end developers on the team to focus on delivering high-quality, picture-perfect layouts at the front-end. This person might not have the same understanding or experience in some areas as the Senior Developer, but they will be able to produce backlog items related to front-end, apps, basic liquid logic, and so on.


If you pursue the headless route, your skill criteria will almost certainly change to someone with Vue.js or react.js experience being more likely.


Systems Resources

It's also important to have a team dedicated to other internal systems, and they'd be in charge of integrations with these systems.


Overall, you should quantify the amount of work you want to undertake in each area before making this decision — sketching out a longer-term backlog and roadmap can help you determine how much development resource you need and how that will vary over time.


TOOLS AND DEVELOPMENT SKILLSET

It is not enough to hire people on the assumption that they will do a great job just because they have served in that capacity in their previous role. Before setting up your in-house Shopify development team, there are some vital skillsets they should possess and other skillsets that can be an addition to your team if they possess them.


PRIORITY SKILLS

Liquid Syntax

Liquid Syntax is Shopify's frontend templating language and is required for applying logic to Shopify templates.  This can be as sophisticated as developing data-driven product recommendations and can also be as basic as adding a "Sale" label on the product listing page.


While it is not overly difficult for someone with prior knowledge of Ruby or JS to take up this and learn on the job, having firm understanding and some experience ensures that immediate progress can be made and that code quality does not suffer as a result of the learning curve. 


Vanilla Javascript

Javascript will undoubtedly play a role in any Shopify site design; the only question is to what extent. Anything dynamic on the site is powered by Javascript, whether it's animations or forms that don't require the page to be refreshed. A lot of Shopify's key functionality, such as adding to carts, is reliant on Javascript. Understanding Javascript, at the very least in its 'Vanilla' state, will hence be key.


HTML5

A fundamental grasp of excellent markup, including how it affects performance, SEO, and accessibility in addition to simply matching a design visually. Also, an eye for when a design isn't going to lead to the most efficient functionality possible.


SCSS 

Any Frontend developer should be familiar with the CSS pre-processor that is commonly used for creating and maintaining stylesheets.


OTHER SKILLS

Ruby/PHP

One of the best things about Shopify is that we don't have to classify backend skills as important since Shopify doesn't require coding as such. Although there are advantages to having some backend knowledge as they come in handy when executing specific tasks with data that may require app development or middleware, the reality is that with a little tweaking, there's already an app to cover a lot of common requirements, such as business intelligence or moving data in/out of Shopify to an enterprise resource planning.


GraphQL

In addition to reducing the need for code since they have apps for almost anything, Shopify has also made a concerted effort to promote GraphQL as the future of API development. GraphQL is an open-source data query and manipulation language for APIs, and a runtime for fulfilling queries with existing data. So, if data manipulation and additional backend-focused functionality are on your company's agenda, having someone who is familiar with GraphQL on board is a great idea.


React/Vue.js

Whether you have an existing store or want to build one but intend to bring development in-house, one of the first questions you should ask is whether React or Vue.js frameworks were utilized in your store build. Alternatively, if your plan includes the addition of more specialized features, having a thorough understanding of React and Vue.js could be advantageous since they are the two most used frameworks.


DEVELOPMENT PROCESS

Now that you know the required development skillsets, let's also ensure you have got the required development process for your in-house team. Let's discuss how to organize your team's process.


Quality Assurance testing

Once a project has been selected from the backlog and developed, there should be a thorough QA/Testing process in place to guarantee that everything that goes live is of high quality. Using automation as the first line of defense with an internal team is the first step toward achieving this. This may take the form of one or more of the following:


  • Snapshot testing, as the name implies, compares a snapshot of portions of the frontend to detect anything that might be modified incorrectly after a code change.


  • Developers use Pull Requests on GitHub/Bitbucket to review and provide feedback on each piece of code before it is integrated into the codebase.


  • A suite of Javascript tests can be generated using tools like Cypresso.io, Jest, and Circle that run automatically on each code commit and only allow merges when the tests have all passed.


It is also vital that the product owner or technical project manager separate from the developer, and this person should do a sanity check to ensure that the output supplied matches the brief. Returning to task management, the clearer task descriptions are, the fewer pushbacks are likely to be required.


Deployments

To ensure a smooth ride, a specific procedure should be operational and followed systematically. Developers with experience within successful teams will be familiar with most all of these procedures:


  • Large tasks can be done in isolation without affecting other parts of development that are going simultaneously - this is why Shopify has feature-specific themes. Although you will need to document this in git so that merging multiple tasks into the master codebase doesn't cause problems.

  • Deployments should take place within certain parameters. The product owner's viewpoint will always be tested at some point, but to avoid tragedies it is safer for your development team to follow a deployment process.


  • You should always do a sanity check on a staging theme before deploying them on a Live published theme for everyone to see.


Task Management

There are several task management tools that your team can use and Trello comes in handy for me. You can look up more online, but they mostly do the same thing.


You should always start each task someplace in a sorted backlog, which serves as the site's roadmap. A solid process requires consistency and transparency of information, and each task should have at least:


  • Task Title


  • Task description


  • Completion indicator to help you know what it takes for a task to be marked as complete


  • Task Due Date


  • Dependent or related tasks


  • Estimated Time


FINAL THOUGHTS

Choosing between an in-house team and outsourcing development is a tough choice to make. I should also mention that some Merchants have chosen a middle ground by combining both options. They do so by setting up an in-house team to sustain the everyday core projects while outsourcing features that require complex skills.


This allows the merchants to tap into a bigger pool of talent without taking on too many risks. This also helps them cut down on fixed costs but choosing the proper partner to combine in-house and outsourced development is crucial.


Truthfully, there is no answer to the debate of in-house vs. outsource development.  What works for one business may not work for another. To know what will work best for you, it's important that begin by evaluating your needs and resources.

Get Started on Maximising Revenue!

Book a Demo