Helpful hints for selecting a Concrete CMS developer

This is a community-contributed tutorial. This tutorial is over a year old and may not apply to your version of Concrete CMS.
Dec 30, 2016

1. Review the developer's portfolio and projects

  • When reviewing a portfolio, check specifically for projects created with Concrete CMS.
  • Do the projects demonstrate the skills you require for your project, such as:
    • experience with a specific technology
    • knowledge of a particular industry and standards
    • ecommerce
    • responsive design
    • designing for performance and with performance budgets in mind
    • security best practices
    • theme development
    • custom blocks
    • custom add-ons
    • integration of a third party library or service
    • experience with a specific version of concrete (5.6, 5.7, 8)
  • Look for:
    • live projects, avoid portfolios that consist of screenshots only
    • real projects done for real businesses
    • project case studies that explain how a project was planned, what it needed to accomplish, and how it was executed.

2. Avoid copy and paste job post replies

  • Be cautious of replies that are generic, repetitive, and ignore the requirements posted in the job description.
  • Does the developer post the same response to each job post?

3. Check the developer's profile for community involvement

  • Reviewing community involvement can be an effective way to gauge a developer's knowledge and skill with concrete.
  • Check how long the developer has been registered on concretecms.org.
  • Is the developer active in the concrete Slack team channels or IRC channel?
  • Is the developer active in the forums?
    • Does the developer demonstrate their knowledge by assisting others and answering questions?
    • Sample messages that the developer has posted:
      • Does the developer conduct themselves in a professional manner?
      • Does the developer only post to the forums to reply to job listings?
  • Look for concrete certifications:
    • They help to establish that the developer has knowledge in a particular area.
    • Check for certifications that cover topics that will be required in your project.
  • Is the developer a concrete certified agency partner?
  • Does the developer have add-ons or themes in the concrete marketplace?
    • Check if the add-on or theme is PRB (Peer Review Board) approved.
      • PRB approval requirements of an add-on/theme:
        • passes automated and PRB member testing
        • has basic documentation
        • installs/uninstalls correctly
        • does not interfere with other marketplace items or the dashboard
        • does not cause errors or breaks a site if mistakes are made in its use
        • has a minimum of usability
    • Review the support page for the add-on or theme:
      • Does the developer respond quickly to support tickets?
      • Are support tickets resolved in a timely manner?
  • Does the developer have a GitHub (github.com) account showing code contribution to concrete?
  • Has the developer written tutorials or documentation on documentation.concretecms.org?

4. Request customer testimonials

  • Ask for contact information of satisfied clients.
  • Make sure to follow up with these clients to discuss their experiences working with the developer.

5. Language proficiency

  • Consider language proficiency when a developer does not speak the same native language.
  • Look for limited working proficiency and full professional proficiency.

6. Long term projects

  • If you are hiring for a long term project, arrange an in person meeting or video interview to determine if this is someone you can see yourself working with.
  • You can get a much better idea of personality, temperment, and attitude through voice and video than email exchanges.

7. Project scope

  • A successful project will have clear requirements and goals that you and the developer can agree on.
  • Projects with changing goals and requirements will be hard to price, schedule, and execute.
  • Will the project require ongoing support and maintenance?
    • If so, how long will ongoing services be required?

8. Project budget and developer rates

  • Be cautious of developers working for far less than the market rate for their region of the world.
  • Consider the phrase "you get what you pay for" when setting your budget and evaluating developer rates.
  • Avoid the temptation to hire a developer based soley on them being the cheapest.

9. Project timeline

  • Communicate the desired start date and when you need the project finished.
  • Once a budget and scope have been determined, it can be helpful to set development milestones for when certain project tasks should be done.

10. Project communication

  • There should be regular updates with the developer.
    • Agree on the update frequency (daily, bi-weekly, weekly, etc.).
    • Agree on the method of update (Skype, Google Hangouts, telephone, e-mail, etc.).

11. Payment terms

  • Will the payment be based on an hourly rate or a fixed price?
  • What will the payment schedule be?
  • How will payment be made (PayPal, check, wire transfer, etc.)

12. Work that requires a design

  • Who is responsible for the design?
    • Will you provide a design for the developer?
    • Will the developer do the design work?
    • Will a third party create a design?

This guide does not cover contracts or dealing with offshore development agencies. Both are important topics and require specific legal advice from a lawyer. Consulting a lawyer adds to the cost of a project, but should be considered a required part of doing business, especially when dealing with medium to large projects.

Recent Tutorials
Customize locale icons
Oct 29, 2024
By myq.

How to customize locale (language region) flags

Concrete CMS Caching Guide
Oct 16, 2024

An overview of types of caching in Concrete and considerations when using them.

Redirect all requests to HTTPS
Oct 9, 2024
By myq.

How to follow best practices for a secure web

Upgrade Concrete versions 9.3.1 and 9.3.2
Sep 10, 2024
By myq.

How to get past a bug in versions 9.3.1 and 9.3.2 that prevents upgrading the Concrete core through the Dashboard

How to use Composer with Marketplace extensions
Aug 22, 2024

Composer can be used to manage third-party extensions from the marketplace

Controlling Google Tag Manager Tags Based on Concrete CMS Edit Toolbar Visibility
Aug 13, 2024

This document provides a step-by-step guide on how to control the firing of Google Tag Manager (GTM) tags based on the visibility of the Concrete CMS edit toolbar. It explains how to create a custom JavaScript variable in GTM to detect whether the edit toolbar is present on a page and how to set up a trigger that ensures GTM tags only fire when the toolbar is not visible. This setup is particularly useful for developers and marketers who want to ensure that tracking and analytics tags are not activated during content editing sessions, thereby preserving the accuracy of data collected.

Improvements?

Let us know by posting here.