Alex Thurow

Thoughts on (Modern?) Software Development - Observations From a 21-Year Journey

Professional coding is precision guesswork based on unreliable data. A 21-year veteran deconstructs the fallacies and human complexities of modern software development.

Thoughts on (Modern?) Software Development - Observations From a 21-Year Journey
#1about 2 minutes

Understanding the essential and accidental complexity of software

Software development is an inherently complex and young field, requiring developers to manage both the problem's core complexity and the additional complexity introduced by technology choices.

#2about 5 minutes

Embracing failure as a core part of gaining experience

True expertise is built by navigating failures without losing enthusiasm, as illustrated by the journey from novice to expert where one realizes how much there is to learn.

#3about 8 minutes

Applying the Dreyfus model to developer skill acquisition

The Dreyfus model shows how developers progress from needing rigid rules as novices to relying on intuition as experts, which has significant implications for using agile methods and design patterns.

#4about 2 minutes

Recognizing and mitigating cognitive biases in development teams

Hardwired cognitive biases, such as the curse of knowledge, can distort judgment and lead to irrational decisions within development processes like Scrum.

#5about 3 minutes

Balancing contradictory requirements in a real-world environment

Professional software development involves constantly managing trade-offs like quality versus budget and maintainability versus time-to-market, while protecting the core resource of developer imagination from stressors.

#6about 9 minutes

Deconstructing the realities of programming work

The job of a programmer involves precision guesswork with unreliable data, shaped by illogical business rules, organizational communication structures, and the emotional state of the developers.

#7about 2 minutes

Identifying and avoiding the pitfalls of hype-driven development

The software industry often repeats mistakes through technology cycles, highlighting the danger of adopting hyped technologies without considering the appropriate context for their use.

#8about 8 minutes

Critically evaluating AI's impact on programming and productivity

While AI tools like GitHub Copilot offer short-term productivity, they introduce risks like automation bias, data poisoning, and a long-term decline in developer understanding and skill.

#9about 10 minutes

Navigating the micro and macro challenges of the industry

Developers face micro challenges like naming and managing complexity, alongside macro challenges like societal dependence on software and a potential breakdown of the junior talent pipeline due to AI.

#10about 8 minutes

Adopting principles for sustainable and professional software development

Moving forward requires focusing on human-centric solutions like managing cognitive load and team health, while technically prioritizing simple, maintainable tools and code over cleverness.

Related jobs
Jobs that call for the skills explored in this talk.

Featured Partners

Related Articles

View all articles

From learning to earning

Jobs that call for the skills explored in this talk.