This document includes highlights of best practices from Drupal-related organizations that have hired new Drupal developers. It would be almost impossible to create a comprehensive list of best practices for hiring organizations - we strongly encourage you to visit our case studies page to find more detailed information. 

Defining IXP engagement goals

When hiring an IXP, it is recommended that the hiring organization determine a plan to progress the IXP from their initial skill set to a clearly defined finishing skill set in the following three areas:

  • Technical skills development 
  • Mentoring
  • Meaningful community contributions

For each area, a detailed understanding of the IXP's initial skills is required. For the finishing skill set, both the IXP and hiring organization's goals must be considered. 

For example, the hiring organization might have the goal of hiring an IXP to eventually be comfortable performing Drupal core and contrib module updates and testing on client sites by the end of the IXP engagement. This goal can be used to inform the plan for the three areas mentioned above.

Project-focused vs. community-focused engagements

Hiring organizations should determine if IXP engagements are going to be project-focused or community-focused (or a blend of both.)

Project-focused engagements can be designed to have the IXP grow into a productive member of a client- or organization-focused team. This normally means that both their technical skills development and mentoring is focused on skills specific to one or more organization projects.

Community-focused engagements generally have the goal of having the IXP grow into a productive member of the Drupal community, usually focused on supporting community projects that the organization has a vested interest in. In this case, technical skills development and mentoring is focused on Drupal community tools and processes. Community-focused engagements can be extremely useful for hiring organizations that cannot utilize new or junior developers on existing client projects. Additional resources on community-focused engagements are included below.

Technical skill development best practices

  • Clearly define the engagement goals and expectations, aligning with the IXP program framework and setting realistic expectations for skill progression.
  • Implement a competency-based learning approach. Utilize the structured learning paths to guide the IXP's skill development in areas such as foundational web technologies, Drupal basics, site building, and potentially frontend or backend development. Each week, provide a list of online resources for the IXP to complete. These may include screencasts or blog posts that guide the user through a task. Select resources based on the IXP's current skills, the overall engagement goal, ensuring that resources build upon previously learned skills.
    • For example, initial resources may include learning to install and/or utilize existing organization tools (local development environments and project tracking tools.)
  • Integrate the IXP into real-world projects and team workflows. This provides hands-on experience and allows the IXP to apply their learning in a practical context. Assign tasks that are appropriate to their current skill set while also offering opportunities to be challenged and grow. Repetition is invaluable. Encourage (require?) IXPs to perform the same task several times (depending on the task.) Often, it is advantageous to repeat identical (or similar) tasks numerous times, but not-back-to-back. 
  • Provide clear learning resources and a well-defined progression path. Organizations should curate or utilize existing resources to support the IXP's learning journey. 
  • Encourage documentation of the learning journey. Requiring the IXP to publish a blog post summarizing their learning experiences and key contributions helps solidify their understanding and provides a valuable record of their progress.

Mentoring best practices

  • Mentoring can take many forms, including discussions, pair-programming, or realtime online messaging. At each mentor meeting, progress on both technical skill development and community contributions should be discussed. IXPs should also be prompted to ask questions about any project meetings that they attended. 
  • Establish a structured mentorship program with dedicated mentor resources. This involves assigning a primary mentor and optional skill-based mentors who can provide at least 1 hour of mentorship for every 10 hours of paid work. Mentors should be experienced Drupal developers who can guide the IXP's competency track progression and provide regular feedback. Organizations should dedicate resources to mentor training and ensure mentors have the time and support needed.
  • Integrate the IXP into real-world projects and team workflows. Including the IXP in daily standups and team meetings is crucial for understanding project context and team collaboration.
  • Establish regular communication and feedback mechanisms. Utilize progress reports to track skill development, address challenges, and provide constructive feedback. Open communication channels are essential for the IXP to ask questions and receive guidance.
  • Continuously evaluate and adapt the mentorship and learning approach. Regularly assess the effectiveness of the program for the individual IXP and be willing to adjust strategies based on their progress, challenges, and feedback. Learning from the IXP's experience and providing feedback to the broader IXP initiative contributes to the program's ongoing improvement.

Meaningful community contributions best practices

  • Facilitate active contribution to the Drupal community. Guide the IXP in making at least three Drupal.org contributions. This can include tasks like documentation, issue verification, or code contributions. Mentors should review and support these contributions. Understanding Drupal.org workflows and issue queues is a fundamental aspect of community integration.
  • Encouraging a culture of community contributions will help the IXP grow confidence in their skills and provide contribution credits for the hiring organization.
  • Recognize and reward progress and contributions. While the program itself offers recognition and contribution credits, the hiring organization should also acknowledge the IXP's achievements and growth throughout the engagement. This can be through internal recognition or highlighting their contributions.

Community-focused engagements

CivicActions has published information on their internal contrib-first best practice:

…consider first if we are building something that could be of use by more than one project or client. We build it as contributed work first…

This model seems well-suited for an IXP engagement with clear benefits to both the hiring organization and the IXP.

Benefits to IXP 

  • Legitimate experience for the IXP
  • Working on actual issues, with real-life requirements
  • Contribution credits
  • Possible maintanership of a module
  • Fully immersed in participating publicly in the Drupal community and project space.

Benefits supporting organization

  • Working on things actually needed for clients
  • Leading/mentoring new contributors is a great place for experienced developers to learn being a tech lead in a safer environment.
  • Participating in contributed projects is a great way for UX/Design staff to get a better understanding of how to work within Drupal more and get better acquainted with the language and processes of the Drupal community.
  • Contribution credits.
  • Potential for case studies that include work on contributed projects used by real clients.