Daniel Pinho

§ 14 Learning From A Master

Context

Development tools require the development of Adequate Skills to be used effectively. This skill development can be done using knowledge from the community and peers (per It Takes A Village) or from the tool makers and vendors (per Makers' Guidance).

Problem

Different people learn more quickly in various ways. Each learning approach has pros and cons, requiring developers to assess the most effective way to develop their skills and grasp the capabilities and best practices regarding tool usage.

How can we complement our learning process to maximise our proficiency with the tools and processes we use?

Forces

\begin{description}

  • Different developers resonate with different approaches to skill-building, but what works for one developer may not be as effective to another, depending on their background, strengths, or preferences.
  • We can learn from many sources, such as mentors, peers, communities or vendors, but the quality of this knowledge can vary and, as such, so can the impact of this learning.
  • We have more learning opportunities when resources such as time and budget are available, but these opportunities may not align with our immediate needs or we may not be ready to apply what we learn. \end{description}

Solution

Seek guidance and mentorship from their colleagues, other more experienced developers, or instructors, via classes, workshops, or simply by asking questions.

Enrolling in classes or workshops led by seasoned practitioners can provide structured learning experiences tailored to their skill level and goals. These educational settings often offer comprehensive coverage of software development concepts, hands-on exercises, and interactive learning and peer collaboration opportunities. By participating in such programs, developers can gain foundational knowledge, practical skills, and valuable insights into industry best practices.

Depending on the situation, engaging in one-on-one interactions with experienced developers is sufficient to learn more. These exchanges enable developers to receive guidance, feedback, and advice. Their more experienced counterparts can offer insights based on real-world experience, share practical tips and techniques, and help the learning developer navigate challenges and roadblocks. These mentorship relationships foster a supportive learning environment and enable developers to accelerate their skill development and mastery of the tools they use.

The presence of experienced team members offers the advantage of their availability and familiarity with the project’s context, facilitating seamless collaboration and knowledge transfer within the team and bolstering an atmosphere of Team Players.

Examples

  • Onboarding procedures provide companies and organisations with the opportunity to transmit knowledge about operations, practices, and the tools in use to their newest developers, enabling them to get more easily up to speed on the organisation’s daily activities[1]. These procedures can be carried out through a mentorship system, where the new developers are paired up with more senior ones.
  • Workshops provide developers to participate in learning activities facilitated by a facilitator who is more experienced in the subject, enabling the developers to experience a structured approach to learning.
  • Developers can learn from the other members of their team through one-on-one practices and interactions, such as pair programming[2] or by asking for advice.

Consequences

  • Guidance that comes from direct interactions with experienced developers or instructors empowers developers through structure and personalised feedback, improving skill acquisition.
  • Classes and workshops cover software development concepts in a comprehensive way that can be useful to a group of developers, giving them a shared foundation.
  • One-on-one interactions enable an approach that is more specific to the developer’s current context, helping developers overcome individual barriers they would be facing.
  • Relying too much on learning from others can create dependence, making things hard for developers to learn when they have to do it on their own.
  • Guided learning is just a stepping stone for skill building, and should be complemented by other approaches such as Practice Makes Perfect and Written Knowledge to avoid blind spots.

Compare and contrast with §13 Practice Makes Perfect and §15 Written Knowledge, which outline other methods of learning.

The patterns §16 It Takes A Village and §17 Makers' Guidance provide guidance on where to find knowledge.


References

  1. J. Buchan, S. G. MacDonell, and J. Yang, “Effective team onboarding in Agile software development: Techniques and goals,” in 2019 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM), Sept. 2019, pp. 1–11. doi: 10.1109/ESEM.2019.8870189.
  2. A. Cockburn and L. Williams, “The Costs and Benefits of Pair Programming,” Feb. 2000.

Last updated: December 18, 2025