Thank you to the 17 live attendees. Over 200 people have now watched our conversation a week later.
Talking Points
“Culture fit is the enemy of diversity. You want to hire new people who are different from you to bring new ideas, not forcibly match a diluted down common denominator.”
“High-impact problems in software engineering are custom integrations with constantly changing business contexts. It's important not to assume you know the solution to someone else's problem. Assume all requirements are incorrect.”
“Never hire someone when you think have nothing to learn from [hiring them]. You should always have an open mind. Learn from them. Learn from their mistakes. Learn about your process by virtue of how they fit in or onboard.”
Book recommendation where a hot topic once more. I’m preparing a separate article on that.While hopefully getting around to getting the updated TDD booklet into your hands soon.
“Your processes and team collaboration needs to match the real context, not imagined ideals.“
“You need large open spaces or their digital equivalents for people to self-organise and mentor each other. Nurture information radiators, not isolationist tendencies with solo work.”
“Problem you are solving for the business have nothing to do with your level of framework skills.“
Recordings
Highlights (AI generated)
00:00 Junior developers should focus on cultivating responsibility and mentorship, aiming to work independently within a year, while also expanding their knowledge beyond just programming skills.
The discussion focuses on cultivating responsibility and mentorship for junior engineers, promoting self-management, and the habits and responsibilities of high performing teams.
Junior, mid-level, and senior stages in tech development are defined as beginner, bulk work, and future-focused, with a focus on the importance of the average developer and the realistic goals for juniors.
The goal for a junior developer is to be able to work independently and take on tasks without needing help, which is achievable within a year of experience.
Experience and professionalism are separate from programming skill, with junior developers focused on task-level problems and senior developers expanding into complementary areas of business and leadership.
The barrier of entry for programming is low due to the abundance of Frameworks, but this can lead to a narrow focus on specific frameworks without broader architectural or business knowledge.
Junior developers are often seen as cheap and easy to outsource for menial tasks, but the barrier for non-technical managers is knowing when to give them more challenging tasks.
14:59 Successfully scaling a tech team requires integrating and nurturing junior engineers, transitioning juniors to seniors, hiring the best individuals regardless of experience, and focusing on cultural fit in recruitment.
The challenges of nurturing talent in a growing team are unique to the business, highlighting the differences in recruitment strategies between large companies and small-medium businesses.
To successfully scale a tech team, it is important to have a strategy for integrating and nurturing junior engineers, as adding juniors without a plan can lead to team fragmentation and toxic work environments.
As junior developers transition to senior roles, the challenge arises in finding experienced engineers to fill those positions, leading to cultural and decision-making gaps within the team.
One senior is enough in a team, self-managed individuals need to keep up with latest technologies and learn what the company will use next, and technical skills are acquired on the job.
Hiring A-level players does not necessarily mean only hiring seniors, but rather hiring the best individuals, regardless of their level or experience.
Recruiting should focus on integrating potential candidates into the team and assessing their cultural fit rather than isolating them for solo technical problem-solving.
30:35 Hiring for soft skills and collaboration, avoiding experience level labels, and promoting diversity and mentorship can lead to valuable knowledge and growth in the workplace.
Gregor, a general manager, emphasizes the importance of not letting "I don't know" be a conversation stopper in business, but rather the beginning of a conversation to address real business problems.
Hiring should focus on soft skills and collaborative experiences to determine if a candidate is a good fit and can bring something valuable to the team.
Experience level labels can limit learning opportunities, and working with individuals of different experience levels can lead to valuable knowledge and diversity in the workplace.
Hiring people who are similar to you is lazy and hinders cultural diversity and growth within a company.
Junior developers can help senior developers with their communication skills and mentoring them can also help the senior developers learn and improve.
In software engineering, most problems are custom integrations with constantly changing business contexts, so it's important not to assume you know the solution to someone else's problem.
41:49 Senior software engineers should focus on understanding business processes, mentoring, and embracing a mix of junior and senior developers to ensure continuous learning and productivity.
Senior professionals in software engineering should focus on root cause analysis and understanding the business processes in order to differentiate themselves from those with just senior level programming skills.
Understanding the business processes and solving problems for users is more important than just having technical skills in programming.
Mentoring is important for engineers at all levels, and having seniority in a team is crucial for its growth and development.
The importance of having a mix of junior and senior developers on a team to ensure continuous learning and productivity.
Scaling up and creating demand for a product requires a shift from proving capability to preparing for increased usage, which may lead to resistance from senior team members.
Hiring and mentoring employees who may initially slow you down can ultimately benefit the team and company.
53:04 Junior developers should focus on knowledge sharing and mentoring, while companies should prioritize onboarding and self-management for professional growth in the tech industry.
To grow and improve, it's important to mentor and help others, rather than just focusing on personal development.
Junior developers should focus on knowledge sharing and blogging to accelerate their growth and learning in a tech company.
Helping others grow and constantly learning is essential in a learning-centric organization, and it's important to work with people who challenge and stimulate learning.
Companies should focus on improving their onboarding process and empower new hires to fix any issues, rather than having unrealistic requirements for junior developers.
Mentoring and diversity in the workplace are important for learning and bringing new perspectives, and the next point of the agenda is self-management.
Gabe Newell from Valve Software believes in self-management and that all professionals on the team are capable of managing themselves, their time, and their impulses, which is a key element of seniority in the industry.
01:05:04 Transitioning to self-managed teams requires a cultural shift towards servant leadership, accountability for solutions, agility in forming teams, and a focus on learning and improvement in agile software development.
Transitioning from traditional teams to self-managed teams requires a shift in culture towards servant leadership and shared effort to achieve common goals.
Self-managed teams are accountable for their own solutions and disband after solving a problem, unlike traditional teams formed by seating order in companies.
Teams should intentionally come together for meetings and be open to forming new teams based on the needs of the project, demonstrating agility in the organization.
Stop allowing managers to micromanage and infantilize developers, identify and learn to deal with such environments, and focus on constantly learning and improving in agile software development.
Pair programming and mentoring are often seen as ideal but are constrained by budget limitations in smaller companies, while larger and more successful companies implement pair programming as a standard method despite the higher cost.
Allocate time for mentoring and downtime activities for high performance teams to prevent burnout and ensure optimal efficiency.
01:16:53 Collaborative activities, mentoring, and communication are key in a tech journey, while toxic practices should be replaced with a focus on self-organizing and celebrating achievements.
Collaborative activities, tech talks, improving quality practices, and mentoring others are important in a tech journey, while budgeting and project management practices can lead to toxic culture and should be replaced with a focus on communication and product expertise.
Pair programming can be a form of mentoring and collaboration, and it should be allocated in the budget for senior developers to take care of others.
Toxic heroics and isolation in engineering culture are detrimental, and the ideal of self-organizing and collaborating in a public open space is more effective.
Managers should not micromanage junior engineers, but instead empower them to take on challenging tasks and provide support for their growth.
Continuous learning and being a senior developer means constantly improving yourself, celebrating achievements, and ensuring the team grows and participates, with tools like GA town facilitating open communication and collaboration.
High performing teams nurture mentorship, avoid infantilizing juniors, and promote a collaborative environment by flipping the traditional hierarchy and promoting self-management.
01:31:09 Integrating product and engineering skills, addressing workplace challenges with honesty, and creating a technology culture are key to successful self-managed teams.
Integrate product and engineering skills to address the dysfunction of product and engineering being divorced, and the need for continuous learning and transparency.
Culture is about everyone in the team, and it's important to make hard decisions and work on the culture to create a good environment.
The key to successful self-managed teams is to constantly evaluate and change processes, and for individuals to focus on delivering value to the customer while being mindful of potential conflicts within siloed organizations.
Focus on creating a technology culture and constantly question and improve processes to avoid falling into the trap of mediocre product engineering.
The key to overcoming hurdles and making improvements in a company's culture is to identify who needs to be involved and to continuously learn and adapt.
Archive
You can always find the archive of the Thursday shows on the Stream Recap section and the Wednesday episode on the SnackableCTO. We’re still figuring this out.