Scrum Master Toolbox Podcast: Agile Storytelling from the Trenches
Episode: Software Engineers are Paid to Solve Problems, Not Write Code! | John Crickett
Release Date: May 6, 2025
Host: Vasco Duarte
Guest: John Crickett, Software Engineer and Leader
Introduction
In this insightful episode of the Scrum Master Toolbox Podcast, Vasco Duarte engages in a profound conversation with John Crickett, a passionate software engineer and leader dedicated to empowering one million engineers and managers. John shares his experiences, challenges, and philosophies on the true role of software engineers beyond mere coding.
Empowering Engineers and Managers
John begins by discussing his initiative, Coding Challenges, a platform he developed to help engineers learn new programming languages through real-world projects. He emphasizes the importance of hands-on experience over traditional coding exercises.
[01:58] John Crickett: "You learn it by building real-world software."
Additionally, John runs a newsletter titled Developing Skills, focusing on soft skills and leadership, highlighting his commitment to holistic professional growth.
Solving Problems Over Writing Code
A central theme of the episode is the fundamental misconception that software engineers are primarily paid to write code. John argues that their true purpose is to solve real-world problems for users.
[03:56] John Crickett: "We're not building software because they want to look at the code... we're solving a problem."
He notes that many engineers derive excitement from building and creating, often overlooking the broader impact of their work on users and businesses.
Historical Context: Engineers and Customer Interaction
John reflects on the traditional isolation of engineers from customers, a practice rooted in stereotypes of engineers as unapproachable or overly technical individuals. He shares his transformative experience with Extreme Programming (XP), which advocates for close customer collaboration.
[06:17] John Crickett: "The software team were in the basement... kept out of sight."
Through XP practices, such as having customers "in the room," John experienced firsthand the benefits of immediate feedback and rapid iterations, significantly enhancing project outcomes.
Extreme Programming and Customer Collaboration
John elaborates on the XP principle of having the customer as an integral part of the team. This approach fosters real-time communication, ensuring that the developed software aligns closely with customer needs.
[10:05] John Crickett: "Having the customer as part of the team... you can have that conversation and iterate."
This methodology contrasts sharply with traditional approaches where requirements are static and often misaligned with actual user needs.
The Impact of AI on Software Engineering
Addressing the rise of AI in coding, John expresses skepticism about AI replacing software engineers. He acknowledges AI's ability to handle straightforward coding tasks but emphasizes that understanding and solving complex problems remain irreplaceable human skills.
[13:44] John Crickett: "I don't believe AI will ever replace software engineers... because we still have to tell it what to do."
He argues that AI lacks the nuanced understanding required to capture and address the intricacies of real-world problems fully.
Shifting Focus: From Coding to Problem Solving
John advocates for a paradigm shift where engineers prioritize understanding the problem and the business context over merely writing code. He draws parallels to carpentry, where the focus is on the final product rather than the tools used.
[19:31] John Crickett: "It's about solving those problems. The value is in the solution."
This approach ensures that the software developed delivers genuine value to users, aligning with business objectives.
Hiring Practices: Valuing Domain Knowledge and Soft Skills
John critiques current hiring practices that prioritize technical skills over domain knowledge and soft skills. He argues that leadership roles, such as CTOs, should focus on strategic understanding and customer engagement rather than specific programming languages.
[25:50] John Crickett: "CTO is a strategic call that involves talking to the customers, understanding the strategy..."
He emphasizes that organizational values and effective problem-solving stem from leadership that values these attributes.
Encouraging Curiosity and Cross-Functional Interaction
To foster a problem-solving mindset, John encourages engineers to cultivate curiosity and engage with various departments within their organizations. Building relationships with sales, marketing, and executive teams enhances understanding and collaboration.
[29:48] John Crickett: "Go and talk to the head of sales... they're very happy that a software engineer is interested."
This interdisciplinary interaction builds trust and facilitates better alignment between engineering and business goals.
Overcoming Introversion in Professional Settings
Being an introvert himself, John shares strategies to engage effectively without overwhelming social interactions. He highlights the effectiveness of one-on-one conversations and genuine interest in colleagues' roles and challenges.
[32:03] John Crickett: "I'm still very happy to go and talk to anyone... I'm fascinated by people."
This approach not only aids personal growth but also strengthens team dynamics and mutual understanding.
Recommended Resources
When asked about resources to aid the transition from coder to problem solver, John recommends a Harvard Business Review article titled "The Surprising Power of Questions." He underscores the significance of asking insightful questions and genuine listening as foundational skills for effective problem-solving.
[35:23] John Crickett: "Be curious and ask more questions."
Conclusion
The episode underscores the vital role of software engineers as problem solvers rather than mere coders. John Crickett's experiences and insights advocate for a more integrated, customer-focused approach to software development, emphasizing the importance of understanding the problem domain, fostering cross-functional collaboration, and valuing soft skills in technical roles.
Notable Quotes:
- John Crickett [03:56]: "We're not building software because they want to look at the code... we're solving a problem."
- John Crickett [10:05]: "Having the customer as part of the team... you can have that conversation and iterate."
- John Crickett [13:44]: "I don't believe AI will ever replace software engineers... because we still have to tell it what to do."
- John Crickett [19:31]: "It's about solving those problems. The value is in the solution."
- John Crickett [25:50]: "CTO is a strategic call that involves talking to the customers, understanding the strategy..."
- John Crickett [32:03]: "I'm still very happy to go and talk to anyone... I'm fascinated by people."
Connect with John Crickett:
- LinkedIn: John Crickett
- Coding Challenges: codingchallenges.fyi
- Developing Skills Newsletter: developingskills.fyi
This summary captures the essence of the episode, highlighting the key discussions and insights shared by John Crickett. By emphasizing problem-solving, customer collaboration, and the importance of soft skills, the episode provides valuable guidance for software engineers and managers aiming to enhance their roles within their organizations.
