SlideShare a Scribd company logo
Software development
myths that block
your career
Piotr Horzycki
peterdev.pl
Focus on the
right thing
The 80/20 rule (Pareto principle)
Become a problem solver, not maker!
Sophisticated architecture
+
Hype-Driven Development
Hype-Driven Development
Not every system requires:
● ORM
● CQRS
● Hexagonal Architecture
● Microservices
● Machine Learning
● …
Hype-Driven Development
https://blog.daftcode.pl/hype-driven-development-3469fc2e9b22?gi=a52a6e685546
● You can be the voice of reason
Avoiding sophisticated architecture
Key benefits
● You can be the voice of reason
● Match solutions to problems
Avoiding sophisticated architecture
Key benefits
● You can be the voice of reason
● Match solutions to problems
● Faster development
Avoiding sophisticated architecture
Key benefits
● You can be the voice of reason
● Match solutions to problems
● Faster development
● Save project from missing deadlines and failure
Avoiding sophisticated architecture
Key benefits
● You can be the voice of reason
● Match solutions to problems
● Faster development
● Save project from missing deadlines and failure
● More time for important things
Avoiding sophisticated architecture
Key benefits
● You can be the voice of reason
● Match solutions to problems
● Faster development
● Save project from missing deadlines and failure
● More time for important things
● Reduce costs
Avoiding sophisticated architecture
Key benefits
● You can be the voice of reason
● Match solutions to problems
● Faster development
● Save project from missing deadlines and failure
● More time for important things
● Reduce costs
● Easier team building
Avoiding sophisticated architecture
Key benefits
100% code
coverage
Line coverage is a tool to find untested code.
But it’s not enough to determine the quality of tests.
Know your metrics
Know your metrics
What’s the coverage?
On a scale from 1 to 10,
how much do we trust
these tests?
if (something) {
doThis();
}
doOtherThing();
Know your metrics
100% line coverage
50% branch
coverage
🤷
Mutation testing tells you how precise your tests are
Mutation testing
Too strict unit tests limit the possibility of refactoring.
mock1
.method('doThis')
.expect(times(3))
.withArguments(...);
mock2
.method('doThat')
.expect(times(2))
.withArguments(...);
Make refactoring easier
● Improved quality
● Less bugs
● More stability
● Easier refactoring
Better testing strategy
Better testing strategy: Key benefits
Rewrite everything?!
Old system = old bugs
New system = new bugs
Rewrite might be necessary (like termination of Adobe Flash)
…but usually it’s not
Pros and cons of rewrites
"The project management was not
pleased. (...) two programmers had
spent two days doing work that added
nothing to the many features the
system had to deliver in a few months'
time. The old code had worked just fine.
Yes, the design was a bit more "pure"
and a bit more "clean." But the project
had to ship code that worked, not code
that would please an academic. (...)
Six months later, the project failed."
Pros and cons of rewrites
● Writing tests
Strategies for legacy code
● Writing tests
● Refactoring step by step
Strategies for legacy code
● Writing tests
● Refactoring step by step
● Event Storming
Strategies for legacy code
● Writing tests
● Refactoring step by step
● Event Storming
● Facade
● Strangler Pattern
● Anti-Corruption Layer
Strategies for legacy code
Strategies for legacy code
Action Cost Expected
benefit
Rewrite the shopping cart XL M
Refactor user registration L L
Optimize SQL for listing products M L
Strategies for legacy code
Action Cost Expected
benefit
Rewrite the shopping cart XL M
Refactor user registration L L
Optimize SQL for listing products M L
● Save project from missing deadlines and failure
● Preserve the existing behavior of a system
● More time for important things
Refactoring strategy: Key benefits
● Save project from missing deadlines and failure
● Preserve the existing behavior of a system
● More time for important things
● Small step improvements are visible quickly
● Dopamine shots, avoid burnout
● Small gains accrued give big wins
Refactoring strategy: Key benefits
We must have Scrum…?
Sprints can make people stressed because they believe that:
● They must do all the planned work
● They must not change the scope of the sprint
Wrong!
Nervous Scrum?
New tools for Retrospectives
More color post-its
Better estimates
More bureaucracy
“Fixing” Scrum
Commitment
Focus
Openness
Respect
Courage
https://scrumguides.org/scrum-guide.html#scrum-values
Scrum values: start from there!
https://www.strategypunk.com/leadership-5-dysfunctions-of-a-team-powerpoint-template/
Five dysfunctions of a team
● Team Canvas
● 1 on 1
● “How-to” for other teams
● Invite other teams for your Sprint Review
Improving team performance
● Team Canvas
● 1 on 1
● “How-to” for other teams
● Invite other teams for your Sprint Review
● Conway’s Law
Improving team performance
● Team Canvas
● 1 on 1
● “How-to” for other teams
● Invite other teams for your Sprint Review
● Conway’s Law
● Extreme Ownership
Improving team performance
● Team Canvas
● 1 on 1
● “How-to” for other teams
● Invite other teams for your Sprint Review
● Conway’s Law
● Extreme Ownership
● Scrum alternatives (Kanban, Fast Agile)
Improving team performance
● Improve the company culture
● Reduce stress
● Align around common goals
● Practice soft skills
● Better systems architecture
Key benefits
Meetings are a waste of time…?
“Ok, let’s get back to work”
“Ok, let’s get back to work”
“This could have been an email”
Development is
teamwork
You need to work together,
but also respect each other’s time
Improving meetings
● A meeting should have an agenda
● Do we need everyone on this call?
● Don't be afraid to reject a meeting
Improving meetings
● A meeting should have an agenda
● Do we need everyone on this call?
● Don't be afraid to reject a meeting
● Moderation, getting to the point
● Timeboxing
● Focus (avoid distraction)
Improving meetings
● A meeting should have an agenda
● Do we need everyone on this call?
● Don't be afraid to reject a meeting
● Moderation, getting to the point
● Timeboxing
● Focus (avoid distraction)
● Meeting notes, action points
● Collaboration tools
Improving meetings
● Improve the company culture
● Reduce stress
● Better productivity
● Better alignment, more commitment
Improving meetings
Key benefits
Ticking all the boxes
● Years of experience
● AWS, BDD, DDD, TDD, ABC, XYZ
● Tons of fancy keywords
● Gimmicks
Result: Impostor syndrome
Average IT job offer
As a candidate
You don’t have
to tick all the boxes
You can’t expect people
to tick all the boxes
As a recruiter
Philosophers team
Everyone’s awesome at something different:
● Architecture
● Design
● Management
● Performance
● Security
● Scalability
● Testing
Diverse team
Diverse team
● Fight the impostor syndrome
● Build strong, cross-functional teams
● Better software quality
● Faster onboarding
● Reduce costs
Key benefits
Become a real pro
by focusing on the right things :)
Thank you!
hi@espeo.eu

More Related Content

Similar to Software development myths that block your career

Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme Programming
Utkarsh Khare
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovSvetlin Nakov
 
From Project Manager to Scrum Master
From Project Manager to Scrum MasterFrom Project Manager to Scrum Master
From Project Manager to Scrum Master
LitheSpeed
 
Startup Operating Systems
Startup Operating SystemsStartup Operating Systems
Startup Operating Systems
Dean Haritos
 
Scrum For Developers
Scrum For DevelopersScrum For Developers
Scrum For Developers
Mohamed Meligy
 
Choosing the right agile approach for your organization
Choosing the right agile approach for your organizationChoosing the right agile approach for your organization
Choosing the right agile approach for your organizationInCycle Software
 
Project Management Bootcamp for Event Professionals
Project Management Bootcamp for Event ProfessionalsProject Management Bootcamp for Event Professionals
Project Management Bootcamp for Event Professionals
Social Tables
 
scrum-talk
scrum-talkscrum-talk
Managing software projects & teams effectively
Managing software projects & teams effectivelyManaging software projects & teams effectively
Managing software projects & teams effectively
Ashutosh Agarwal
 
Why Agile? Back to Basics.
Why Agile? Back to Basics.Why Agile? Back to Basics.
Why Agile? Back to Basics.
Lucas Hendrich
 
Software Development Methodologies
Software Development Methodologies Software Development Methodologies
Software Development Methodologies
Frances Coronel
 
Prashant technical practices-tdd for xebia event
Prashant   technical practices-tdd for xebia eventPrashant   technical practices-tdd for xebia event
Prashant technical practices-tdd for xebia event
Xebia India
 
Agile for Business
Agile for BusinessAgile for Business
Rex Sprint 0 - how build the data model with 2 BA and 3 IT architects
Rex Sprint 0 - how build the data model with 2 BA and 3 IT architectsRex Sprint 0 - how build the data model with 2 BA and 3 IT architects
Rex Sprint 0 - how build the data model with 2 BA and 3 IT architects
Jean-François Nguyen
 
Agile Process
Agile ProcessAgile Process
Agile Process
Om Vikram Thapa
 
August: DevOps 101 (in lieu of DevOps Patterns Distilled)
August: DevOps 101 (in lieu of DevOps Patterns Distilled)August: DevOps 101 (in lieu of DevOps Patterns Distilled)
August: DevOps 101 (in lieu of DevOps Patterns Distilled)
TriTAUG
 
Scrum intro
Scrum intro Scrum intro
Scrum intro
Elad Sofer
 
Agile Development MethodologiesThree CommunitiesProjec.docx
Agile Development MethodologiesThree CommunitiesProjec.docxAgile Development MethodologiesThree CommunitiesProjec.docx
Agile Development MethodologiesThree CommunitiesProjec.docx
ADDY50
 
An Introduction To Agile Development
An Introduction To Agile DevelopmentAn Introduction To Agile Development
An Introduction To Agile Developmentelliando dias
 
Indix Engineering Culture Code (2015)
Indix Engineering Culture Code (2015)Indix Engineering Culture Code (2015)
Indix Engineering Culture Code (2015)
Rajesh Muppalla
 

Similar to Software development myths that block your career (20)

Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme Programming
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin Nakov
 
From Project Manager to Scrum Master
From Project Manager to Scrum MasterFrom Project Manager to Scrum Master
From Project Manager to Scrum Master
 
Startup Operating Systems
Startup Operating SystemsStartup Operating Systems
Startup Operating Systems
 
Scrum For Developers
Scrum For DevelopersScrum For Developers
Scrum For Developers
 
Choosing the right agile approach for your organization
Choosing the right agile approach for your organizationChoosing the right agile approach for your organization
Choosing the right agile approach for your organization
 
Project Management Bootcamp for Event Professionals
Project Management Bootcamp for Event ProfessionalsProject Management Bootcamp for Event Professionals
Project Management Bootcamp for Event Professionals
 
scrum-talk
scrum-talkscrum-talk
scrum-talk
 
Managing software projects & teams effectively
Managing software projects & teams effectivelyManaging software projects & teams effectively
Managing software projects & teams effectively
 
Why Agile? Back to Basics.
Why Agile? Back to Basics.Why Agile? Back to Basics.
Why Agile? Back to Basics.
 
Software Development Methodologies
Software Development Methodologies Software Development Methodologies
Software Development Methodologies
 
Prashant technical practices-tdd for xebia event
Prashant   technical practices-tdd for xebia eventPrashant   technical practices-tdd for xebia event
Prashant technical practices-tdd for xebia event
 
Agile for Business
Agile for BusinessAgile for Business
Agile for Business
 
Rex Sprint 0 - how build the data model with 2 BA and 3 IT architects
Rex Sprint 0 - how build the data model with 2 BA and 3 IT architectsRex Sprint 0 - how build the data model with 2 BA and 3 IT architects
Rex Sprint 0 - how build the data model with 2 BA and 3 IT architects
 
Agile Process
Agile ProcessAgile Process
Agile Process
 
August: DevOps 101 (in lieu of DevOps Patterns Distilled)
August: DevOps 101 (in lieu of DevOps Patterns Distilled)August: DevOps 101 (in lieu of DevOps Patterns Distilled)
August: DevOps 101 (in lieu of DevOps Patterns Distilled)
 
Scrum intro
Scrum intro Scrum intro
Scrum intro
 
Agile Development MethodologiesThree CommunitiesProjec.docx
Agile Development MethodologiesThree CommunitiesProjec.docxAgile Development MethodologiesThree CommunitiesProjec.docx
Agile Development MethodologiesThree CommunitiesProjec.docx
 
An Introduction To Agile Development
An Introduction To Agile DevelopmentAn Introduction To Agile Development
An Introduction To Agile Development
 
Indix Engineering Culture Code (2015)
Indix Engineering Culture Code (2015)Indix Engineering Culture Code (2015)
Indix Engineering Culture Code (2015)
 

More from Piotr Horzycki

Serial(ize) killers, czyli jak popsuliśmy API
Serial(ize) killers, czyli jak popsuliśmy APISerial(ize) killers, czyli jak popsuliśmy API
Serial(ize) killers, czyli jak popsuliśmy API
Piotr Horzycki
 
Mity, które blokują Twoją karierę
Mity, które blokują Twoją karieręMity, które blokują Twoją karierę
Mity, które blokują Twoją karierę
Piotr Horzycki
 
Architecture tests: Setting a common standard
Architecture tests: Setting a common standardArchitecture tests: Setting a common standard
Architecture tests: Setting a common standard
Piotr Horzycki
 
Software Composition Analysis in PHP
Software Composition Analysis in PHP Software Composition Analysis in PHP
Software Composition Analysis in PHP
Piotr Horzycki
 
How to count money with Java and not lose it
How to count money with Java and not lose itHow to count money with Java and not lose it
How to count money with Java and not lose it
Piotr Horzycki
 
How to count money using PHP and not lose money
How to count money using PHP and not lose moneyHow to count money using PHP and not lose money
How to count money using PHP and not lose money
Piotr Horzycki
 
New kids on the block: Conducting technical onboarding
New kids on the block: Conducting technical onboardingNew kids on the block: Conducting technical onboarding
New kids on the block: Conducting technical onboarding
Piotr Horzycki
 
Time-driven applications
Time-driven applicationsTime-driven applications
Time-driven applications
Piotr Horzycki
 
Jak zacząć, aby nie żałować - czyli 50 twarzy PHP
Jak zacząć, aby nie żałować - czyli 50 twarzy PHPJak zacząć, aby nie żałować - czyli 50 twarzy PHP
Jak zacząć, aby nie żałować - czyli 50 twarzy PHP
Piotr Horzycki
 

More from Piotr Horzycki (9)

Serial(ize) killers, czyli jak popsuliśmy API
Serial(ize) killers, czyli jak popsuliśmy APISerial(ize) killers, czyli jak popsuliśmy API
Serial(ize) killers, czyli jak popsuliśmy API
 
Mity, które blokują Twoją karierę
Mity, które blokują Twoją karieręMity, które blokują Twoją karierę
Mity, które blokują Twoją karierę
 
Architecture tests: Setting a common standard
Architecture tests: Setting a common standardArchitecture tests: Setting a common standard
Architecture tests: Setting a common standard
 
Software Composition Analysis in PHP
Software Composition Analysis in PHP Software Composition Analysis in PHP
Software Composition Analysis in PHP
 
How to count money with Java and not lose it
How to count money with Java and not lose itHow to count money with Java and not lose it
How to count money with Java and not lose it
 
How to count money using PHP and not lose money
How to count money using PHP and not lose moneyHow to count money using PHP and not lose money
How to count money using PHP and not lose money
 
New kids on the block: Conducting technical onboarding
New kids on the block: Conducting technical onboardingNew kids on the block: Conducting technical onboarding
New kids on the block: Conducting technical onboarding
 
Time-driven applications
Time-driven applicationsTime-driven applications
Time-driven applications
 
Jak zacząć, aby nie żałować - czyli 50 twarzy PHP
Jak zacząć, aby nie żałować - czyli 50 twarzy PHPJak zacząć, aby nie żałować - czyli 50 twarzy PHP
Jak zacząć, aby nie żałować - czyli 50 twarzy PHP
 

Recently uploaded

Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
QuickwayInfoSystems3
 

Recently uploaded (20)

Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
 

Software development myths that block your career

  • 1. Software development myths that block your career Piotr Horzycki peterdev.pl
  • 2. Focus on the right thing The 80/20 rule (Pareto principle) Become a problem solver, not maker!
  • 5. Not every system requires: ● ORM ● CQRS ● Hexagonal Architecture ● Microservices ● Machine Learning ● … Hype-Driven Development
  • 7. ● You can be the voice of reason Avoiding sophisticated architecture Key benefits
  • 8. ● You can be the voice of reason ● Match solutions to problems Avoiding sophisticated architecture Key benefits
  • 9. ● You can be the voice of reason ● Match solutions to problems ● Faster development Avoiding sophisticated architecture Key benefits
  • 10. ● You can be the voice of reason ● Match solutions to problems ● Faster development ● Save project from missing deadlines and failure Avoiding sophisticated architecture Key benefits
  • 11. ● You can be the voice of reason ● Match solutions to problems ● Faster development ● Save project from missing deadlines and failure ● More time for important things Avoiding sophisticated architecture Key benefits
  • 12. ● You can be the voice of reason ● Match solutions to problems ● Faster development ● Save project from missing deadlines and failure ● More time for important things ● Reduce costs Avoiding sophisticated architecture Key benefits
  • 13. ● You can be the voice of reason ● Match solutions to problems ● Faster development ● Save project from missing deadlines and failure ● More time for important things ● Reduce costs ● Easier team building Avoiding sophisticated architecture Key benefits
  • 15. Line coverage is a tool to find untested code. But it’s not enough to determine the quality of tests. Know your metrics
  • 16. Know your metrics What’s the coverage? On a scale from 1 to 10, how much do we trust these tests?
  • 17. if (something) { doThis(); } doOtherThing(); Know your metrics 100% line coverage 50% branch coverage 🤷
  • 18. Mutation testing tells you how precise your tests are Mutation testing
  • 19. Too strict unit tests limit the possibility of refactoring. mock1 .method('doThis') .expect(times(3)) .withArguments(...); mock2 .method('doThat') .expect(times(2)) .withArguments(...); Make refactoring easier
  • 20. ● Improved quality ● Less bugs ● More stability ● Easier refactoring Better testing strategy Better testing strategy: Key benefits
  • 22. Old system = old bugs New system = new bugs Rewrite might be necessary (like termination of Adobe Flash) …but usually it’s not Pros and cons of rewrites
  • 23. "The project management was not pleased. (...) two programmers had spent two days doing work that added nothing to the many features the system had to deliver in a few months' time. The old code had worked just fine. Yes, the design was a bit more "pure" and a bit more "clean." But the project had to ship code that worked, not code that would please an academic. (...) Six months later, the project failed." Pros and cons of rewrites
  • 24. ● Writing tests Strategies for legacy code
  • 25. ● Writing tests ● Refactoring step by step Strategies for legacy code
  • 26. ● Writing tests ● Refactoring step by step ● Event Storming Strategies for legacy code
  • 27. ● Writing tests ● Refactoring step by step ● Event Storming ● Facade ● Strangler Pattern ● Anti-Corruption Layer Strategies for legacy code
  • 28. Strategies for legacy code Action Cost Expected benefit Rewrite the shopping cart XL M Refactor user registration L L Optimize SQL for listing products M L
  • 29. Strategies for legacy code Action Cost Expected benefit Rewrite the shopping cart XL M Refactor user registration L L Optimize SQL for listing products M L
  • 30. ● Save project from missing deadlines and failure ● Preserve the existing behavior of a system ● More time for important things Refactoring strategy: Key benefits
  • 31. ● Save project from missing deadlines and failure ● Preserve the existing behavior of a system ● More time for important things ● Small step improvements are visible quickly ● Dopamine shots, avoid burnout ● Small gains accrued give big wins Refactoring strategy: Key benefits
  • 32. We must have Scrum…?
  • 33. Sprints can make people stressed because they believe that: ● They must do all the planned work ● They must not change the scope of the sprint Wrong! Nervous Scrum?
  • 34. New tools for Retrospectives More color post-its Better estimates More bureaucracy “Fixing” Scrum
  • 37. ● Team Canvas ● 1 on 1 ● “How-to” for other teams ● Invite other teams for your Sprint Review Improving team performance
  • 38. ● Team Canvas ● 1 on 1 ● “How-to” for other teams ● Invite other teams for your Sprint Review ● Conway’s Law Improving team performance
  • 39. ● Team Canvas ● 1 on 1 ● “How-to” for other teams ● Invite other teams for your Sprint Review ● Conway’s Law ● Extreme Ownership Improving team performance
  • 40. ● Team Canvas ● 1 on 1 ● “How-to” for other teams ● Invite other teams for your Sprint Review ● Conway’s Law ● Extreme Ownership ● Scrum alternatives (Kanban, Fast Agile) Improving team performance
  • 41. ● Improve the company culture ● Reduce stress ● Align around common goals ● Practice soft skills ● Better systems architecture Key benefits
  • 42. Meetings are a waste of time…?
  • 43. “Ok, let’s get back to work”
  • 44. “Ok, let’s get back to work” “This could have been an email”
  • 45. Development is teamwork You need to work together, but also respect each other’s time
  • 47. ● A meeting should have an agenda ● Do we need everyone on this call? ● Don't be afraid to reject a meeting Improving meetings
  • 48. ● A meeting should have an agenda ● Do we need everyone on this call? ● Don't be afraid to reject a meeting ● Moderation, getting to the point ● Timeboxing ● Focus (avoid distraction) Improving meetings
  • 49. ● A meeting should have an agenda ● Do we need everyone on this call? ● Don't be afraid to reject a meeting ● Moderation, getting to the point ● Timeboxing ● Focus (avoid distraction) ● Meeting notes, action points ● Collaboration tools Improving meetings
  • 50. ● Improve the company culture ● Reduce stress ● Better productivity ● Better alignment, more commitment Improving meetings Key benefits
  • 52. ● Years of experience ● AWS, BDD, DDD, TDD, ABC, XYZ ● Tons of fancy keywords ● Gimmicks Result: Impostor syndrome Average IT job offer
  • 53. As a candidate You don’t have to tick all the boxes You can’t expect people to tick all the boxes As a recruiter
  • 55. Everyone’s awesome at something different: ● Architecture ● Design ● Management ● Performance ● Security ● Scalability ● Testing Diverse team
  • 57. ● Fight the impostor syndrome ● Build strong, cross-functional teams ● Better software quality ● Faster onboarding ● Reduce costs Key benefits
  • 58. Become a real pro by focusing on the right things :)