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
Create custom Site Health tasks
Apr 19, 2024
By myq.

This tutorial will guide you through the creation of a new Site Health task

Reusing the same Express entity in multiple associations
Apr 11, 2024
By myq.

How to create and manage multiple associations in Express

Express Form Styling
Apr 11, 2024
By myq.

Different ways to style Express forms

Setting addon/theme version compatibility in the marketplace
Jan 9, 2024

For developers worn out with setting the latest addon or theme version manually across too many core versions, here is a JavaScript bookmarklet to do it for you.

How to get the locale of a page
Jan 8, 2024
By wtfdesign.

Now, why don't we just have a getLocale() method on Page objects beats me, but here's how you work around it

Using a Redis Server
Jun 16, 2023
By mlocati.

How to configure Concrete to use one or more Redis servers to persist the cache.

Improvements?

Let us know by posting here.