SlideShare uma empresa Scribd logo
1 de 30
SOFTWARE
DEVELOPERS
DESTROY
BUSINESS
VALUE
And what to do about it!
ABOUT ME
12 years experience leading startup
technology companies:
• Maintainer of Akka.NET project for 10
years (100+ contributors)
• Delivered products in SaaS, payments
processing, marketplaces, components,
and more.
• 9 years of consulting experience across
manufacturing, defense, healthcare,
sports betting, finance, banking, and
more.
SOME OF THE CHARACTERS WE’RE
GOING TO MEET TODAY
The Pet Technologist “I’m just gonna code”
SOME OF THE CHARACTERS WE’RE
GOING TO MEET TODAY
The Precautionist The Futurist
REST OF THE CAST
The Cargo Cultist The Frameworker
WHAT IS “BUSINESS VALUE” FOR
SOFTWARE DEVELOPERS?
• Create value for customers:
• Bug fixes
• Experience improvements
• Performance improvements
• New features
• Create value for employer:
• Expanding access to markets
• Reducing costs
• Resolving customers’ sales objections
• Create products from nothing
WHO IS RESPONSIBLE FOR WHAT?
What our talk is about
REASONING ABOUT PERSONNEL
• Attitude – does this developer have the right outlook / values to
do this role?
• Aptitude – does this developer have the right skills and abilities
to do this role?
• “Right seat” – is this developer best suited for this role given
their preferences, skills, career aspirations, and track record?
• We’re going to try to address fixable Attitude and Aptitude
problems today.
A NOTE ABOUT COACHABILITY
•“You can’t save anyone who doesn’t want to save
themselves”
•Developers who aren’t coachable aren’t savable
•Skip this presentation and fire them
•For everyone else, read on
“VALUE DESTRUCTION”
• Destruction of options:
• Hindering company’s agility to respond to new opportunities
• “Blind alleys” – building the right thing the wrong way
• Demolishing profit margin:
• Inability to translate software to unit economics
• Poor understanding of cost-drivers
• Poor understanding of performance
• Increasing opportunity costs:
• “False starts” – building the wrong thing entirely
• Frameworkism – indefinitely work around soft edges of hard problem
DESTRUCTION OF OPTIONS
Rapid Technical Debt Accumulation
HOW DO OPTIONS GET
DESTROYED?
Attitude Issues
• Insufficient interest or consideration to
business requirements in the first place
• Overfitting design of software to
today’s requirements at the expense of
likely future requirements
• Making software design choices
independently from business
requirements
Aptitude Issues
• Not able to accurately assess technical
risks and trade-offs within domain
• Difficulty socializing trade-offs, options
with non-technical stakeholders
“
”
ALL OF OUR WEAKNESSES ARE OUR STRENGTHS
TAKEN TO AN EXTREME
“I’M JUST GONNA CODE”
• Attitude: “coding is what I do – I’m just
going to stick to the spec and code”
• Communication Breakdown: feedback
on the non-technical requirements will
be non-existent; zero planning
• Impact: misalignment between output
and business needs – immediate
technical debt or missed opportunities.
DEALING WITH “I’M JUST GONNA
CODE”
• Attitude - disempowerment:
• “The requirements are going to change anyway, so why bother learning them”
• “This domain is complicated and I’m never going to learn anything like it again on
another job”
• Attitude – inexperience and misunderstanding:
• Doesn’t understand that modeling the domain is the where the value is truly created,
not the code that executes the model.
• Will spend months coding to avoid hours of planning.
• “I’m paid to code - I’ll just do that until told otherwise”
• Teach: learning how business domains work is immensely valuable to developers’
future marketability
Teach: software engineering is more than mere coding – this is an “uplevel”
opportunity
“YOU AIN’T GONNA NEED IT”
(YAGNI)
• YAGNI == get product out the door in
the short run
• Delivery-oriented heuristic
• Gets abused by developers as an
excuse not to consider what might
happen in the future
• Pain avoidance
• Laziness
• “You can’t predict any specific future
change, but you know for certain there
will be future changes”
DEALING WITH “YOU AIN’T GONNA
NEED IT”
• YAGNI is the result of short termism
• Teach: YAGNI makes sense under certain conditions:
• Preventing “frameworkism”
• Fighting scope creep
• Avoiding over-engineering on unimportant details
• Teach: YAGNI destroys options when we’re not careful:
• Dependency lock-in
• Database lock-in
• Vendor lock-in (i.e. payment processors)
• Self-fulfilling prophecies
• The longer the time horizon, the more likely “you will need it”
• “Show your work” – why won’t we definitely need this over N years?
“SHOW YOUR WORK”
• Have an engineering spec template that developers have to fill out for “bigger”
projects
• i.e. https://gist.github.com/Aaronontheweb/25e131e06d6ac22b23fc1f4a2c9ff42f
PET TECHNOLOGISTS
• “Whatever the question is, the answer is
‘MongoDb.’”
• Explicit bias towards 1 or more
technologies due to:
• Comfort;
• CV-driven development; or
• Thoughtlessness.
• Alignment problem – developers’
choices driven by personal preference,
not business needs
DEALING WITH PET TECHNOLOGISTS
• Pet technologists are intensely passionate and curious: rare + valuable, don’t
discourage
• Attitude problem is tunnel vision – overly focused on using the technology
• “Show your work”
• Have the developer prepare a presentation for just you on why {technology} is a good fit
for {project} given its requirements
• If the case is good, have them make it to the entire team and achieve buy-in
• If the case is not good, work with them to agree.
• Then have them use their passion to research / PoC alternatives. Make the passion a
productive positive.
PRECAUTIONISTS
• The reason .NET Framework 3.5 is still
used in production
• Will fight the introduction of new
technologies
• Will fight for standards, councils of
elders, aimed at limiting freedoms of
other developers
• Will establish a preferred vendor list
and exclude everyone on it
• All in the same of keeping things
“stable,” “secure,” and “safe”
DEALING WITH PRECAUTIONISTS
• Precautionists care deeply about the health of the business + product, fight to
defend it
• Aptitude problem: primitive risk management that works by eliminating options
• Need to train on trade-off evaluation + risk management techniques
• CI/CD + Automated testing
• Bulk heading (“containing the potential blast radius of failures”)
• Feature flags
• Process / product isolation
• OSS health checking + CVE management
• Approval gates and workflow management
FUTURISTS
• Polar opposite of Precautionist
• Windows Insiders
• Uses “Cloud Native” unironically
• Shiny object syndrome: wants to use
the latest thing, regardless of fit or
suitability
• Especially vulnerable to CV-driven
development
DEALING WITH FUTURISTS
• Similar in spirit to Pet Technologists, but not focused on a single technology
• Attitude problem: shiny object syndrome
• Aptitude problem: doesn’t understand dependency risk management + stability
• Take page out of Precautionists’ playbook here:
• Add some processes to enforce a minimum degree of maturity (i.e. we don’t use beta
packages in production)
• Establish agreement with team
• “Show your work”
• Have developer write out a maintenance plan for dependencies stretching out 2-3 years
• Require explicit contingency plans and cost-benefits analysis
CARGO CULTING
• There is a “one true way” to do software
• Technical purity is its own reward
• Lots of external influences, especially
on architecture choices
• Success on one project means
imposing that project’s design on
everything else
• “Expert beginner”
DEALING WITH CARGO CULTISTS
• Cargo cultists are often formula-driven developers
• Attitude: analysis paralysis on projects without crutch of a “proven” formula; doesn’t trust
their own judgement
• Aptitude: might not know how to deliver without the formula
• Pairing: this developer needs to pair with someone, preferably a patient one who disagrees
with them
• “Walk the plank”
• Ban any use of reference architectures or templates
• Have this developer build a throw-away proof of concept without one, preferably paired
• Dissect and discuss
• Repeat if failure
• Do not give them too much rope
FRAMEWORKISM
• It’s easier to work around the edges of
a problem than on the problem itself.
• “Rather than build our app, I’ll build a
framework for making our app”
• Applications require specificity;
frameworks don’t
• Total time-waster for 99% of corporate
software
DEALING WITH FRAMEWORKISM
• Aptitude: developer wants to stick with DRY, but at the expense of high coupling –
an experience issue
• Attitude: this is also pain avoidance – much easier to deal with abstractions
indefinitely than it is to make decisive domain choices.
• Teach: task decomposition
• Break the domain modeling problem down into smaller parts
• No “Blue Ocean” problems
• Makes decision making on individual parts of the domain less overwhelming
• Teach: DRY, like all things, must be done in moderation
• Frameworks are for infrastructure typically, not domains
PARTING THOUGHTS – COACHING
YOUR TEAM
• Comfort-seeking is the norm for most people
• Teach your team to take smart risks
• Mitigate + isolate side effects
• Scope decisions around duration + term
• Slow down to speed up
• “Show your work”
• “Write it down”
• “If you can’t explain it, you can’t code it”
• All of our weaknesses are our strengths taken to an extreme
• Too much DRY, YAGNI, etc will lead bad outcomes
• Discuss trade-offs frequently
THANK YOU
• Twitter / GitHub: @Aaronontheweb
• Blog: https://aaronstannard.com
• Company: https://petabridge.com/ - we do training and consulting!

Mais conteúdo relacionado

Semelhante a How Software Developers Destroy Business Value.pptx

Arch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best PracticesArch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best Practices
Igor Moochnick
 
50500113 spiral-model
50500113 spiral-model50500113 spiral-model
50500113 spiral-model
asidharath
 
Couples Counseling for Software Development by Joe Stage
Couples Counseling for Software Development by Joe StageCouples Counseling for Software Development by Joe Stage
Couples Counseling for Software Development by Joe Stage
GROWtalks
 
Andrew Hay - Chris Nickerson - Building Bridges - Forcing Hackers and Busine...
Andrew Hay  - Chris Nickerson - Building Bridges - Forcing Hackers and Busine...Andrew Hay  - Chris Nickerson - Building Bridges - Forcing Hackers and Busine...
Andrew Hay - Chris Nickerson - Building Bridges - Forcing Hackers and Busine...
Source Conference
 
Final spiralmodel97
Final spiralmodel97Final spiralmodel97
Final spiralmodel97
akshay8835
 

Semelhante a How Software Developers Destroy Business Value.pptx (20)

What do the "Cool Kids" know about DevOps?
What do the "Cool Kids" know about DevOps?What do the "Cool Kids" know about DevOps?
What do the "Cool Kids" know about DevOps?
 
Arch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best PracticesArch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best Practices
 
Evaluating Blockchain Companies
Evaluating Blockchain CompaniesEvaluating Blockchain Companies
Evaluating Blockchain Companies
 
Technical debt as asset
Technical debt as assetTechnical debt as asset
Technical debt as asset
 
A brief introduction to Enterprise and Industrial UX
A brief introduction to Enterprise and Industrial UXA brief introduction to Enterprise and Industrial UX
A brief introduction to Enterprise and Industrial UX
 
How BDD enables True CI/CD
How BDD enables True CI/CDHow BDD enables True CI/CD
How BDD enables True CI/CD
 
50500113 spiral-model
50500113 spiral-model50500113 spiral-model
50500113 spiral-model
 
"How do I Architect?" - Quick Introduction to Architecture for Salesforce Ad...
"How do I Architect?"  - Quick Introduction to Architecture for Salesforce Ad..."How do I Architect?"  - Quick Introduction to Architecture for Salesforce Ad...
"How do I Architect?" - Quick Introduction to Architecture for Salesforce Ad...
 
Product is Hard - Marty Cagan
Product is Hard - Marty CaganProduct is Hard - Marty Cagan
Product is Hard - Marty Cagan
 
Agile and Lean Software Development
Agile and Lean Software DevelopmentAgile and Lean Software Development
Agile and Lean Software Development
 
Couples Counseling for Product Development
Couples Counseling for Product DevelopmentCouples Counseling for Product Development
Couples Counseling for Product Development
 
Joe Stump
Joe StumpJoe Stump
Joe Stump
 
GROWtalks - Couples Counseling for Software Development - Joe Stump Sprint.ly
GROWtalks - Couples Counseling for Software Development - Joe Stump Sprint.lyGROWtalks - Couples Counseling for Software Development - Joe Stump Sprint.ly
GROWtalks - Couples Counseling for Software Development - Joe Stump Sprint.ly
 
Digitization solutions - A new breed of software
Digitization solutions - A new breed of softwareDigitization solutions - A new breed of software
Digitization solutions - A new breed of software
 
Couples Counseling for Software Development by Joe Stage
Couples Counseling for Software Development by Joe StageCouples Counseling for Software Development by Joe Stage
Couples Counseling for Software Development by Joe Stage
 
Resilient Enterprise Design (Craig Villamor at Enterprise UX 2017)
Resilient Enterprise Design (Craig Villamor at Enterprise UX 2017)Resilient Enterprise Design (Craig Villamor at Enterprise UX 2017)
Resilient Enterprise Design (Craig Villamor at Enterprise UX 2017)
 
Andrew Hay - Chris Nickerson - Building Bridges - Forcing Hackers and Busine...
Andrew Hay  - Chris Nickerson - Building Bridges - Forcing Hackers and Busine...Andrew Hay  - Chris Nickerson - Building Bridges - Forcing Hackers and Busine...
Andrew Hay - Chris Nickerson - Building Bridges - Forcing Hackers and Busine...
 
Final spiralmodel97
Final spiralmodel97Final spiralmodel97
Final spiralmodel97
 
10 bezcennych lekcji dla software developera stającego się szefem firmy
10 bezcennych lekcji dla software developera stającego się szefem firmy10 bezcennych lekcji dla software developera stającego się szefem firmy
10 bezcennych lekcji dla software developera stającego się szefem firmy
 
Technical and Product Debt Management
Technical and Product Debt ManagementTechnical and Product Debt Management
Technical and Product Debt Management
 

Mais de Aaron Stannard

Consuming REST in .NET
Consuming REST in .NETConsuming REST in .NET
Consuming REST in .NET
Aaron Stannard
 
How to Design Applications People Love
How to Design Applications People LoveHow to Design Applications People Love
How to Design Applications People Love
Aaron Stannard
 

Mais de Aaron Stannard (9)

The Coming OSS Sustainability Crisis
The Coming OSS Sustainability CrisisThe Coming OSS Sustainability Crisis
The Coming OSS Sustainability Crisis
 
Startup Product Development
Startup Product DevelopmentStartup Product Development
Startup Product Development
 
NoSQL Shootout: RavenDB vs MongoDB
NoSQL Shootout: RavenDB vs MongoDBNoSQL Shootout: RavenDB vs MongoDB
NoSQL Shootout: RavenDB vs MongoDB
 
Building Web Apps with Express
Building Web Apps with ExpressBuilding Web Apps with Express
Building Web Apps with Express
 
Intro to Node
Intro to NodeIntro to Node
Intro to Node
 
Location Services and Bing Maps in Windows Phone 7
Location Services and Bing Maps in Windows Phone 7Location Services and Bing Maps in Windows Phone 7
Location Services and Bing Maps in Windows Phone 7
 
Consuming REST in .NET
Consuming REST in .NETConsuming REST in .NET
Consuming REST in .NET
 
MVVM for n00bs
MVVM for n00bsMVVM for n00bs
MVVM for n00bs
 
How to Design Applications People Love
How to Design Applications People LoveHow to Design Applications People Love
How to Design Applications People Love
 

Último

Último (10)

Principles of Management analyze how Zara manage
Principles of Management analyze how Zara managePrinciples of Management analyze how Zara manage
Principles of Management analyze how Zara manage
 
Presentation On "Yusuf Ibn Tashfin" a true leader (1061 to 1106)_ prepared by...
Presentation On "Yusuf Ibn Tashfin" a true leader (1061 to 1106)_ prepared by...Presentation On "Yusuf Ibn Tashfin" a true leader (1061 to 1106)_ prepared by...
Presentation On "Yusuf Ibn Tashfin" a true leader (1061 to 1106)_ prepared by...
 
Create the recognition your teams deserve.pptx
Create the recognition your teams deserve.pptxCreate the recognition your teams deserve.pptx
Create the recognition your teams deserve.pptx
 
UX in an Agile World - Scrum Gathering
UX in an Agile World -   Scrum GatheringUX in an Agile World -   Scrum Gathering
UX in an Agile World - Scrum Gathering
 
TEST BANK for Operations Management, 14th Edition by William J. Stevenson,.pdf
TEST BANK for Operations Management, 14th Edition by William J. Stevenson,.pdfTEST BANK for Operations Management, 14th Edition by William J. Stevenson,.pdf
TEST BANK for Operations Management, 14th Edition by William J. Stevenson,.pdf
 
Team Dynamics: A Journey to Excellence
Team Dynamics: A Journey to ExcellenceTeam Dynamics: A Journey to Excellence
Team Dynamics: A Journey to Excellence
 
Risk Management in Banks - Overview (May 2024)
Risk Management in Banks - Overview (May 2024)Risk Management in Banks - Overview (May 2024)
Risk Management in Banks - Overview (May 2024)
 
Project Management Professional (PMP)® from PMI
Project Management Professional (PMP)® from PMIProject Management Professional (PMP)® from PMI
Project Management Professional (PMP)® from PMI
 
Leading People - Harvard Manage Mentor Certificate
Leading People - Harvard Manage Mentor CertificateLeading People - Harvard Manage Mentor Certificate
Leading People - Harvard Manage Mentor Certificate
 
Travis Hills of Minnesota Leads Livestock Water and Energy in Sustainable Inn...
Travis Hills of Minnesota Leads Livestock Water and Energy in Sustainable Inn...Travis Hills of Minnesota Leads Livestock Water and Energy in Sustainable Inn...
Travis Hills of Minnesota Leads Livestock Water and Energy in Sustainable Inn...
 

How Software Developers Destroy Business Value.pptx

  • 2. ABOUT ME 12 years experience leading startup technology companies: • Maintainer of Akka.NET project for 10 years (100+ contributors) • Delivered products in SaaS, payments processing, marketplaces, components, and more. • 9 years of consulting experience across manufacturing, defense, healthcare, sports betting, finance, banking, and more.
  • 3. SOME OF THE CHARACTERS WE’RE GOING TO MEET TODAY The Pet Technologist “I’m just gonna code”
  • 4. SOME OF THE CHARACTERS WE’RE GOING TO MEET TODAY The Precautionist The Futurist
  • 5. REST OF THE CAST The Cargo Cultist The Frameworker
  • 6. WHAT IS “BUSINESS VALUE” FOR SOFTWARE DEVELOPERS? • Create value for customers: • Bug fixes • Experience improvements • Performance improvements • New features • Create value for employer: • Expanding access to markets • Reducing costs • Resolving customers’ sales objections • Create products from nothing
  • 7. WHO IS RESPONSIBLE FOR WHAT? What our talk is about
  • 8. REASONING ABOUT PERSONNEL • Attitude – does this developer have the right outlook / values to do this role? • Aptitude – does this developer have the right skills and abilities to do this role? • “Right seat” – is this developer best suited for this role given their preferences, skills, career aspirations, and track record? • We’re going to try to address fixable Attitude and Aptitude problems today.
  • 9. A NOTE ABOUT COACHABILITY •“You can’t save anyone who doesn’t want to save themselves” •Developers who aren’t coachable aren’t savable •Skip this presentation and fire them •For everyone else, read on
  • 10. “VALUE DESTRUCTION” • Destruction of options: • Hindering company’s agility to respond to new opportunities • “Blind alleys” – building the right thing the wrong way • Demolishing profit margin: • Inability to translate software to unit economics • Poor understanding of cost-drivers • Poor understanding of performance • Increasing opportunity costs: • “False starts” – building the wrong thing entirely • Frameworkism – indefinitely work around soft edges of hard problem
  • 11. DESTRUCTION OF OPTIONS Rapid Technical Debt Accumulation
  • 12. HOW DO OPTIONS GET DESTROYED? Attitude Issues • Insufficient interest or consideration to business requirements in the first place • Overfitting design of software to today’s requirements at the expense of likely future requirements • Making software design choices independently from business requirements Aptitude Issues • Not able to accurately assess technical risks and trade-offs within domain • Difficulty socializing trade-offs, options with non-technical stakeholders
  • 13. “ ” ALL OF OUR WEAKNESSES ARE OUR STRENGTHS TAKEN TO AN EXTREME
  • 14. “I’M JUST GONNA CODE” • Attitude: “coding is what I do – I’m just going to stick to the spec and code” • Communication Breakdown: feedback on the non-technical requirements will be non-existent; zero planning • Impact: misalignment between output and business needs – immediate technical debt or missed opportunities.
  • 15. DEALING WITH “I’M JUST GONNA CODE” • Attitude - disempowerment: • “The requirements are going to change anyway, so why bother learning them” • “This domain is complicated and I’m never going to learn anything like it again on another job” • Attitude – inexperience and misunderstanding: • Doesn’t understand that modeling the domain is the where the value is truly created, not the code that executes the model. • Will spend months coding to avoid hours of planning. • “I’m paid to code - I’ll just do that until told otherwise” • Teach: learning how business domains work is immensely valuable to developers’ future marketability Teach: software engineering is more than mere coding – this is an “uplevel” opportunity
  • 16. “YOU AIN’T GONNA NEED IT” (YAGNI) • YAGNI == get product out the door in the short run • Delivery-oriented heuristic • Gets abused by developers as an excuse not to consider what might happen in the future • Pain avoidance • Laziness • “You can’t predict any specific future change, but you know for certain there will be future changes”
  • 17. DEALING WITH “YOU AIN’T GONNA NEED IT” • YAGNI is the result of short termism • Teach: YAGNI makes sense under certain conditions: • Preventing “frameworkism” • Fighting scope creep • Avoiding over-engineering on unimportant details • Teach: YAGNI destroys options when we’re not careful: • Dependency lock-in • Database lock-in • Vendor lock-in (i.e. payment processors) • Self-fulfilling prophecies • The longer the time horizon, the more likely “you will need it” • “Show your work” – why won’t we definitely need this over N years?
  • 18. “SHOW YOUR WORK” • Have an engineering spec template that developers have to fill out for “bigger” projects • i.e. https://gist.github.com/Aaronontheweb/25e131e06d6ac22b23fc1f4a2c9ff42f
  • 19. PET TECHNOLOGISTS • “Whatever the question is, the answer is ‘MongoDb.’” • Explicit bias towards 1 or more technologies due to: • Comfort; • CV-driven development; or • Thoughtlessness. • Alignment problem – developers’ choices driven by personal preference, not business needs
  • 20. DEALING WITH PET TECHNOLOGISTS • Pet technologists are intensely passionate and curious: rare + valuable, don’t discourage • Attitude problem is tunnel vision – overly focused on using the technology • “Show your work” • Have the developer prepare a presentation for just you on why {technology} is a good fit for {project} given its requirements • If the case is good, have them make it to the entire team and achieve buy-in • If the case is not good, work with them to agree. • Then have them use their passion to research / PoC alternatives. Make the passion a productive positive.
  • 21. PRECAUTIONISTS • The reason .NET Framework 3.5 is still used in production • Will fight the introduction of new technologies • Will fight for standards, councils of elders, aimed at limiting freedoms of other developers • Will establish a preferred vendor list and exclude everyone on it • All in the same of keeping things “stable,” “secure,” and “safe”
  • 22. DEALING WITH PRECAUTIONISTS • Precautionists care deeply about the health of the business + product, fight to defend it • Aptitude problem: primitive risk management that works by eliminating options • Need to train on trade-off evaluation + risk management techniques • CI/CD + Automated testing • Bulk heading (“containing the potential blast radius of failures”) • Feature flags • Process / product isolation • OSS health checking + CVE management • Approval gates and workflow management
  • 23. FUTURISTS • Polar opposite of Precautionist • Windows Insiders • Uses “Cloud Native” unironically • Shiny object syndrome: wants to use the latest thing, regardless of fit or suitability • Especially vulnerable to CV-driven development
  • 24. DEALING WITH FUTURISTS • Similar in spirit to Pet Technologists, but not focused on a single technology • Attitude problem: shiny object syndrome • Aptitude problem: doesn’t understand dependency risk management + stability • Take page out of Precautionists’ playbook here: • Add some processes to enforce a minimum degree of maturity (i.e. we don’t use beta packages in production) • Establish agreement with team • “Show your work” • Have developer write out a maintenance plan for dependencies stretching out 2-3 years • Require explicit contingency plans and cost-benefits analysis
  • 25. CARGO CULTING • There is a “one true way” to do software • Technical purity is its own reward • Lots of external influences, especially on architecture choices • Success on one project means imposing that project’s design on everything else • “Expert beginner”
  • 26. DEALING WITH CARGO CULTISTS • Cargo cultists are often formula-driven developers • Attitude: analysis paralysis on projects without crutch of a “proven” formula; doesn’t trust their own judgement • Aptitude: might not know how to deliver without the formula • Pairing: this developer needs to pair with someone, preferably a patient one who disagrees with them • “Walk the plank” • Ban any use of reference architectures or templates • Have this developer build a throw-away proof of concept without one, preferably paired • Dissect and discuss • Repeat if failure • Do not give them too much rope
  • 27. FRAMEWORKISM • It’s easier to work around the edges of a problem than on the problem itself. • “Rather than build our app, I’ll build a framework for making our app” • Applications require specificity; frameworks don’t • Total time-waster for 99% of corporate software
  • 28. DEALING WITH FRAMEWORKISM • Aptitude: developer wants to stick with DRY, but at the expense of high coupling – an experience issue • Attitude: this is also pain avoidance – much easier to deal with abstractions indefinitely than it is to make decisive domain choices. • Teach: task decomposition • Break the domain modeling problem down into smaller parts • No “Blue Ocean” problems • Makes decision making on individual parts of the domain less overwhelming • Teach: DRY, like all things, must be done in moderation • Frameworks are for infrastructure typically, not domains
  • 29. PARTING THOUGHTS – COACHING YOUR TEAM • Comfort-seeking is the norm for most people • Teach your team to take smart risks • Mitigate + isolate side effects • Scope decisions around duration + term • Slow down to speed up • “Show your work” • “Write it down” • “If you can’t explain it, you can’t code it” • All of our weaknesses are our strengths taken to an extreme • Too much DRY, YAGNI, etc will lead bad outcomes • Discuss trade-offs frequently
  • 30. THANK YOU • Twitter / GitHub: @Aaronontheweb • Blog: https://aaronstannard.com • Company: https://petabridge.com/ - we do training and consulting!

Notas do Editor

  1. This all comes from the “Entrepreneurs Operating System” originally
  2. The Island and the Hoarder from https://aaronstannard.com/the-taxonomy-of-terrible-programmers/
  3. https://gist.github.com/Aaronontheweb/25e131e06d6ac22b23fc1f4a2c9ff42f
  4. This is fundamentally an alignment problem