SlideShare ist ein Scribd-Unternehmen logo
1 von 54
Preocupações de um
Desenvolvedor Ágil
Paulo Igor
Não é apenas CÓDIGO
impacta a vida de milhares de pessoas
transforma a vida das pessoas
“Grandes poderes trazem grandes
responsabilidades” (Ben Parker)
Comodidade
Qualidade de Vida
Tempo
…
#FAIL
Programar é uma arte!
Qualidade
“Programar é um
processo criativo e
que exige
aperfeiçoamento”

Programar é uma arte!
…é necessário praticar!
DNA do programador
Preguiçoso e criativo!!!
“Simplicidade: a arte de maximizar a
quantidade de trabalho que não
precisou ser feito”
...mas funciona!!!
Passa a encarar os problemas com naturalidade…
Pragmatic Programmer
The Pragmatic Programmer
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.

Care about your craft
Think! About your work
Provide options, don’t make lame excuses
Don’t live with broken windows
Be a catalyst for change
Remember the Big Picture
Make a quality a requirements issue
Invest regularly in your knowledge portfolio
Critically Analyze What You Read and Hear
It's Both What You Say and the Way You Say It
DRY—Don't Repeat Yourself
Make It Easy to Reuse
Eliminate Effects Between Unrelated Things
There Are No Final Decisions
Use Tracer Bullets to Find the Target
Prototype to Learn
Program Close to the Problem domain
Estimate to Avoid Surprises
Iterate the Schedule with the Code
Keep Knowledge in Plain Text
Use the Power of Command Shells
Use a Single Editor Well
Always Use Source Code Control
Fix the Problem, Not the Blame
Don't Panic
"select" Isn't Broken
Don't Assume It—Prove It
Learn a Text Manipulation Language
Write Code That Writes Code
You Can't Write Perfect Software
Design with Contracts
Crash Early
If It Can't Happen, Use Assertions to Ensure That It Won't
Use Exceptions for Exceptional Problems
Finish What You Start

36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.

Minimize Coupling Between Modules
Configure, Don't Integrate
Put Abstractions in Code Details in Metadata
Analyze Workflow to Improve Concurrency
Design Using Services
Always Design for Concurrency
Separate Views from Models
Use Blackboards to Coordinate Workflow
Don't Program by Coincidence
Estimate the Order of Your Algorithms
Test Your Estimates
Refactor Early, Refactor Often
Design to Test
Test Your Software, or Your Users Will
Don't Use Wizard Code You Don't Understand
Don't Gather Requirements—Dig for Them
Work with a User to Think Like a User
Abstractions Live Longer than Details
Use a Project Glossary
Don't Think Outside the Box—Find the Box
Listen to Nagging Doubts—Start When You're Ready
Some Things Are Better Done than Described
Don't Be a Slave to Formal Methods
Expensive Too Do Not Produce Better Designs
Organize Around Functionality, Not Job Functions
Don't Use Manual Procedures
Test Early. Test Often. Test Automatically.
Coding Ain't Done 'Til All the Tests Run
Use Saboteurs to Test Your Testing
Test State Coverage, Not Code Coverage
Find Bugs Once
Treat English as Just Another Programming Language
Build Documentation In, Don't Bolt It On
Gently Exceed Your Users' Expectations
Sign Your Work

70 Tips
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.

Care about your craft
Think! About your work
Provide options, don’t make lame excuses
Don’t live with broken windows
Be a catalyst for change
Remember the Big Picture
Make a quality a requirements issue
Invest regularly in your knowledge portfolio
Critically Analyze What You Read and Hear
It's Both What You Say and the Way You Say It
DRY—Don't Repeat Yourself
Make It Easy to Reuse
Eliminate Effects Between Unrelated Things
There Are No Final Decisions
Use Tracer Bullets to Find the Target
Prototype to Learn
Program Close to the Problem domain
Estimate to Avoid Surprises
Iterate the Schedule with the Code
Keep Knowledge in Plain Text
Use the Power of Command Shells
Use a Single Editor Well
Always Use Source Code Control
Fix the Problem, Not the Blame
Don't Panic
"select" Isn't Broken
Don't Assume It—Prove It
Learn a Text Manipulation Language
Write Code That Writes Code
You Can't Write Perfect Software
Design with Contracts
Crash Early
If It Can't Happen, Use Assertions to Ensure That It Won't
Use Exceptions for Exceptional Problems
Finish What You Start

36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.

Minimize Coupling Between Modules
Configure, Don't Integrate
Put Abstractions in Code Details in Metadata
Analyze Workflow to Improve Concurrency
Design Using Services
Always Design for Concurrency
Separate Views from Models
Use Blackboards to Coordinate Workflow
Don't Program by Coincidence
Estimate the Order of Your Algorithms
Test Your Estimates
Refactor Early, Refactor Often
Design to Test
Test Your Software, or Your Users Will
Don't Use Wizard Code You Don't Understand
Don't Gather Requirements—Dig for Them
Work with a User to Think Like a User
Abstractions Live Longer than Details
Use a Project Glossary
Don't Think Outside the Box—Find the Box
Listen to Nagging Doubts—Start When You're Ready
Some Things Are Better Done than Described
Don't Be a Slave to Formal Methods
Expensive Too Do Not Produce Better Designs
Organize Around Functionality, Not Job Functions
Don't Use Manual Procedures
Test Early. Test Often. Test Automatically.
Coding Ain't Done 'Til All the Tests Run
Use Saboteurs to Test Your Testing
Test State Coverage, Not Code Coverage
Find Bugs Once
Treat English as Just Another Programming Language
Build Documentation In, Don't Bolt It On
Gently Exceed Your Users' Expectations
Sign Your Work

1 – Care about your craft
Técnicas e Práticas
Pair Programming
Qualidade do Código
“Clean Code” (Uncle Bob)
Ta uma bagunça, mas funciona!
Agora sim! 
Refatoração
“Refactoring: Improving the Design of
Existing Code” (Martin Fowler)
Testes
Testes Manuais
Testes Automáticos
JUnit, JBehave, TestNG, Rspec, Cumcuber, Test::Unit, …
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.

Care about your craft
Think! About your work
Provide options, don’t make lame excuses
Don’t live with broken windows
Be a catalyst for change
Remember the Big Picture
Make a quality a requirements issue
Invest regularly in your knowledge portfolio
Critically Analyze What You Read and Hear
It's Both What You Say and the Way You Say It
DRY—Don't Repeat Yourself
Make It Easy to Reuse
Eliminate Effects Between Unrelated Things
There Are No Final Decisions
Use Tracer Bullets to Find the Target
Prototype to Learn
Program Close to the Problem domain
Estimate to Avoid Surprises
Iterate the Schedule with the Code
Keep Knowledge in Plain Text
Use the Power of Command Shells
Use a Single Editor Well
Always Use Source Code Control
Fix the Problem, Not the Blame
Don't Panic
"select" Isn't Broken
Don't Assume It—Prove It
Learn a Text Manipulation Language
Write Code That Writes Code
You Can't Write Perfect Software
Design with Contracts
Crash Early
If It Can't Happen, Use Assertions to Ensure That It Won't
Use Exceptions for Exceptional Problems
Finish What You Start

36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.

Minimize Coupling Between Modules
Configure, Don't Integrate
Put Abstractions in Code Details in Metadata
Analyze Workflow to Improve Concurrency
Design Using Services
Always Design for Concurrency
Separate Views from Models
Use Blackboards to Coordinate Workflow
Don't Program by Coincidence
Estimate the Order of Your Algorithms
Test Your Estimates
Refactor Early, Refactor Often
Design to Test
Test Your Software, or Your Users Will
Don't Use Wizard Code You Don't Understand
Don't Gather Requirements—Dig for Them
Work with a User to Think Like a User
Abstractions Live Longer than Details
Use a Project Glossary
Don't Think Outside the Box—Find the Box
Listen to Nagging Doubts—Start When You're Ready
Some Things Are Better Done than Described
Don't Be a Slave to Formal Methods
Expensive Too Do Not Produce Better Designs
Organize Around Functionality, Not Job Functions
Don't Use Manual Procedures
Test Early. Test Often. Test Automatically.
Coding Ain't Done 'Til All the Tests Run
Use Saboteurs to Test Your Testing
Test State Coverage, Not Code Coverage
Find Bugs Once
Treat English as Just Another Programming Language
Build Documentation In, Don't Bolt It On
Gently Exceed Your Users' Expectations
Sign Your Work

61 – Don’t use Manual Procedures
Automatização
Especificação Testável
Concordion / FitNesse
TDD / BDD
“TDD - Kent Beck / BDD - Dan North”
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.

Care about your craft
Think! About your work
Provide options, don’t make lame excuses
Don’t live with broken windows
Be a catalyst for change
Remember the Big Picture
Make a quality a requirements issue
Invest regularly in your knowledge portfolio
Critically Analyze What You Read and Hear
It's Both What You Say and the Way You Say It
DRY—Don't Repeat Yourself
Make It Easy to Reuse
Eliminate Effects Between Unrelated Things
There Are No Final Decisions
Use Tracer Bullets to Find the Target
Prototype to Learn
Program Close to the Problem domain
Estimate to Avoid Surprises
Iterate the Schedule with the Code
Keep Knowledge in Plain Text
Use the Power of Command Shells
Use a Single Editor Well
Always Use Source Code Control
Fix the Problem, Not the Blame
Don't Panic
"select" Isn't Broken
Don't Assume It—Prove It
Learn a Text Manipulation Language
Write Code That Writes Code
You Can't Write Perfect Software
Design with Contracts
Crash Early
If It Can't Happen, Use Assertions to Ensure That It Won't
Use Exceptions for Exceptional Problems
Finish What You Start

36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.

Minimize Coupling Between Modules
Configure, Don't Integrate
Put Abstractions in Code Details in Metadata
Analyze Workflow to Improve Concurrency
Design Using Services
Always Design for Concurrency
Separate Views from Models
Use Blackboards to Coordinate Workflow
Don't Program by Coincidence
Estimate the Order of Your Algorithms
Test Your Estimates
Refactor Early, Refactor Often
Design to Test
Test Your Software, or Your Users Will
Don't Use Wizard Code You Don't Understand
Don't Gather Requirements—Dig for Them
Work with a User to Think Like a User
Abstractions Live Longer than Details
Use a Project Glossary
Don't Think Outside the Box—Find the Box
Listen to Nagging Doubts—Start When You're Ready
Some Things Are Better Done than Described
Don't Be a Slave to Formal Methods
Expensive Too Do Not Produce Better Designs
Organize Around Functionality, Not Job Functions
Don't Use Manual Procedures
Test Early. Test Often. Test Automatically.
Coding Ain't Done 'Til All the Tests Run
Use Saboteurs to Test Your Testing
Test State Coverage, Not Code Coverage
Find Bugs Once
Treat English as Just Another Programming Language
Build Documentation In, Don't Bolt It On
Gently Exceed Your Users' Expectations
Sign Your Work

47 – Refactor Early, Refactor Often
Blindagem do Código
Design Evolutivo
“TDD - Kent Beck / BDD - Dan North”
Continuous
TDD / BDD
Integration

“TDD - Kent Beck / BDD - Dan North”
(Martin Fowler)
Continuous Delivery
(Jez Humble e David Farley)
Continuous Delivery
(Jez Humble e David Farley)
da qualidade não se abre mão
“Arte de
Programar”
“controle a força”
“Treinar pra quê?”
BOM SENSO!!!
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.

Care about your craft
Think! About your work
Provide options, don’t make lame excuses
Don’t live with broken windows
Be a catalyst for change
Remember the Big Picture
Make a quality a requirements issue
Invest regularly in your knowledge portfolio
Critically Analyze What You Read and Hear
It's Both What You Say and the Way You Say It
DRY—Don't Repeat Yourself
Make It Easy to Reuse
Eliminate Effects Between Unrelated Things
There Are No Final Decisions
Use Tracer Bullets to Find the Target
Prototype to Learn
Program Close to the Problem domain
Estimate to Avoid Surprises
Iterate the Schedule with the Code
Keep Knowledge in Plain Text
Use the Power of Command Shells
Use a Single Editor Well
Always Use Source Code Control
Fix the Problem, Not the Blame
Don't Panic
"select" Isn't Broken
Don't Assume It—Prove It
Learn a Text Manipulation Language
Write Code That Writes Code
You Can't Write Perfect Software
Design with Contracts
Crash Early
If It Can't Happen, Use Assertions to Ensure That It Won't
Use Exceptions for Exceptional Problems
Finish What You Start

36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.

Minimize Coupling Between Modules
Configure, Don't Integrate
Put Abstractions in Code Details in Metadata
Analyze Workflow to Improve Concurrency
Design Using Services
Always Design for Concurrency
Separate Views from Models
Use Blackboards to Coordinate Workflow
Don't Program by Coincidence
Estimate the Order of Your Algorithms
Test Your Estimates
Refactor Early, Refactor Often
Design to Test
Test Your Software, or Your Users Will
Don't Use Wizard Code You Don't Understand
Don't Gather Requirements—Dig for Them
Work with a User to Think Like a User
Abstractions Live Longer than Details
Use a Project Glossary
Don't Think Outside the Box—Find the Box
Listen to Nagging Doubts—Start When You're Ready
Some Things Are Better Done than Described
Don't Be a Slave to Formal Methods
Expensive Too Do Not Produce Better Designs
Organize Around Functionality, Not Job Functions
Don't Use Manual Procedures
Test Early. Test Often. Test Automatically.
Coding Ain't Done 'Til All the Tests Run
Use Saboteurs to Test Your Testing
Test State Coverage, Not Code Coverage
Find Bugs Once
Treat English as Just Another Programming Language
Build Documentation In, Don't Bolt It On
Gently Exceed Your Users' Expectations
Sign Your Work

30 – You Can’t Write Perfect Software
Deixe seu legado!!!
Obrigado!
Paulo Igor

Weitere ähnliche Inhalte

Was ist angesagt?

Testers and developers think differently
Testers and developers think differentlyTesters and developers think differently
Testers and developers think differently
Nuthan Kumar
 
Extreme programming talk wise consulting - www.talkwiseconsulting
Extreme programming   talk wise consulting - www.talkwiseconsultingExtreme programming   talk wise consulting - www.talkwiseconsulting
Extreme programming talk wise consulting - www.talkwiseconsulting
talkwiseone
 

Was ist angesagt? (20)

Practices of agile developers
Practices of agile developersPractices of agile developers
Practices of agile developers
 
Productive Programmer - Using IDE effectively and various small practices to ...
Productive Programmer - Using IDE effectively and various small practices to ...Productive Programmer - Using IDE effectively and various small practices to ...
Productive Programmer - Using IDE effectively and various small practices to ...
 
Pragmatic programmer 2
Pragmatic programmer 2Pragmatic programmer 2
Pragmatic programmer 2
 
Development without Testers: Myth or Real Option? (ConfeT&QA conference)
Development without Testers: Myth or Real Option? (ConfeT&QA conference)Development without Testers: Myth or Real Option? (ConfeT&QA conference)
Development without Testers: Myth or Real Option? (ConfeT&QA conference)
 
30% faster coder on-boarding when you have a code cookbook
30% faster coder on-boarding when you have a code cookbook30% faster coder on-boarding when you have a code cookbook
30% faster coder on-boarding when you have a code cookbook
 
Exploratory testing workshop
Exploratory testing workshopExploratory testing workshop
Exploratory testing workshop
 
Exploratory Testing Explained
Exploratory Testing ExplainedExploratory Testing Explained
Exploratory Testing Explained
 
Kung fu Programming
Kung fu ProgrammingKung fu Programming
Kung fu Programming
 
Design Sprints
Design SprintsDesign Sprints
Design Sprints
 
How does pair programming work?
How does pair programming work?How does pair programming work?
How does pair programming work?
 
Rehan Pair Testing Final
Rehan Pair Testing FinalRehan Pair Testing Final
Rehan Pair Testing Final
 
Pair programming
Pair programmingPair programming
Pair programming
 
Testers and developers think differently
Testers and developers think differentlyTesters and developers think differently
Testers and developers think differently
 
Software Project management
Software Project managementSoftware Project management
Software Project management
 
The Test Coverage Outline: Your Testing Road Map
The Test Coverage Outline: Your Testing Road MapThe Test Coverage Outline: Your Testing Road Map
The Test Coverage Outline: Your Testing Road Map
 
Test-Driven Development
 Test-Driven Development  Test-Driven Development
Test-Driven Development
 
Pair Programming: overview and concepts
Pair Programming: overview and conceptsPair Programming: overview and concepts
Pair Programming: overview and concepts
 
Extreme programming talk wise consulting - www.talkwiseconsulting
Extreme programming   talk wise consulting - www.talkwiseconsultingExtreme programming   talk wise consulting - www.talkwiseconsulting
Extreme programming talk wise consulting - www.talkwiseconsulting
 
The pragmatic programmer
The pragmatic programmerThe pragmatic programmer
The pragmatic programmer
 
xUnit and TDD: Why and How in Enterprise Software, August 2012
xUnit and TDD: Why and How in Enterprise Software, August 2012xUnit and TDD: Why and How in Enterprise Software, August 2012
xUnit and TDD: Why and How in Enterprise Software, August 2012
 

Ähnlich wie Preocupações Desenvolvedor Ágil

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
Svetlin Nakov
 
Driving application development through behavior driven development
Driving application development through behavior driven developmentDriving application development through behavior driven development
Driving application development through behavior driven development
Einar Ingebrigtsen
 
The View - Lotusscript coding best practices
The View - Lotusscript coding best practicesThe View - Lotusscript coding best practices
The View - Lotusscript coding best practices
Bill Buchan
 
I Smell A RAT- Rapid Application Testing
I Smell A RAT- Rapid Application TestingI Smell A RAT- Rapid Application Testing
I Smell A RAT- Rapid Application Testing
Peter Presnell
 

Ähnlich wie Preocupações Desenvolvedor Ágil (20)

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
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme Programming
 
Best pratice
Best praticeBest pratice
Best pratice
 
Topic production code
Topic production codeTopic production code
Topic production code
 
Tdd
TddTdd
Tdd
 
Cinci ug-january2011-anti-patterns
Cinci ug-january2011-anti-patternsCinci ug-january2011-anti-patterns
Cinci ug-january2011-anti-patterns
 
Unit testing
Unit testingUnit testing
Unit testing
 
Automated tests
Automated testsAutomated tests
Automated tests
 
Software Testing Basic Concepts
Software Testing Basic ConceptsSoftware Testing Basic Concepts
Software Testing Basic Concepts
 
Code Retreat
Code RetreatCode Retreat
Code Retreat
 
Introduction to test programming
Introduction to test programmingIntroduction to test programming
Introduction to test programming
 
Driving application development through behavior driven development
Driving application development through behavior driven developmentDriving application development through behavior driven development
Driving application development through behavior driven development
 
Testing & should i do it
Testing & should i do itTesting & should i do it
Testing & should i do it
 
The View - Lotusscript coding best practices
The View - Lotusscript coding best practicesThe View - Lotusscript coding best practices
The View - Lotusscript coding best practices
 
5 reasons you'll love to hate Agile Development
5 reasons you'll love to hate Agile Development5 reasons you'll love to hate Agile Development
5 reasons you'll love to hate Agile Development
 
Software engineering 101 - The basics you should hear about at least once
Software engineering 101 - The basics you should hear about at least onceSoftware engineering 101 - The basics you should hear about at least once
Software engineering 101 - The basics you should hear about at least once
 
I Smell A RAT- Rapid Application Testing
I Smell A RAT- Rapid Application TestingI Smell A RAT- Rapid Application Testing
I Smell A RAT- Rapid Application Testing
 
Agile
AgileAgile
Agile
 
Amanda Cinnamon - Treat Your Code Like the Valuable Software It Is
Amanda Cinnamon - Treat Your Code Like the Valuable Software It IsAmanda Cinnamon - Treat Your Code Like the Valuable Software It Is
Amanda Cinnamon - Treat Your Code Like the Valuable Software It Is
 
Agile Testing 20021015
Agile Testing 20021015Agile Testing 20021015
Agile Testing 20021015
 

Mehr von Paulo Igor Alves Godinho

Mehr von Paulo Igor Alves Godinho (13)

Pequenas Ações para Revolucionar sua Carreira
Pequenas Ações para Revolucionar sua CarreiraPequenas Ações para Revolucionar sua Carreira
Pequenas Ações para Revolucionar sua Carreira
 
Kanban - Mais que um quadro na parede
Kanban - Mais que um quadro na paredeKanban - Mais que um quadro na parede
Kanban - Mais que um quadro na parede
 
Melhorando o Fluxo de Trabalho com Kanban
Melhorando o Fluxo de Trabalho com KanbanMelhorando o Fluxo de Trabalho com Kanban
Melhorando o Fluxo de Trabalho com Kanban
 
Small Acts - Pequenas ações geram grandes revoluções
Small Acts - Pequenas ações geram grandes revoluçõesSmall Acts - Pequenas ações geram grandes revoluções
Small Acts - Pequenas ações geram grandes revoluções
 
Buscando Agilidade sem Rótulos
Buscando Agilidade sem RótulosBuscando Agilidade sem Rótulos
Buscando Agilidade sem Rótulos
 
JRuby - Explorando um mundo de possibilidades
JRuby - Explorando um mundo de possibilidadesJRuby - Explorando um mundo de possibilidades
JRuby - Explorando um mundo de possibilidades
 
Facetas do desenvolvedor agil
Facetas do desenvolvedor agilFacetas do desenvolvedor agil
Facetas do desenvolvedor agil
 
Palestra agile brazil (versão atualizada)
Palestra agile brazil (versão atualizada)Palestra agile brazil (versão atualizada)
Palestra agile brazil (versão atualizada)
 
Palestra tdd-completa
Palestra tdd-completaPalestra tdd-completa
Palestra tdd-completa
 
Carreira2 0
Carreira2 0Carreira2 0
Carreira2 0
 
Palestra scrum
Palestra scrumPalestra scrum
Palestra scrum
 
Metodos ageis thinkingdifferent
Metodos ageis thinkingdifferentMetodos ageis thinkingdifferent
Metodos ageis thinkingdifferent
 
TDD - Test Driven Development com JAVA
TDD - Test Driven Development com JAVATDD - Test Driven Development com JAVA
TDD - Test Driven Development com JAVA
 

Kürzlich hochgeladen

Kürzlich hochgeladen (20)

Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

Preocupações Desenvolvedor Ágil

  • 2.
  • 3. Não é apenas CÓDIGO
  • 4. impacta a vida de milhares de pessoas
  • 5. transforma a vida das pessoas
  • 6.
  • 7. “Grandes poderes trazem grandes responsabilidades” (Ben Parker)
  • 8.
  • 10.
  • 11. #FAIL
  • 12.
  • 15. “Programar é um processo criativo e que exige aperfeiçoamento” Programar é uma arte!
  • 19. “Simplicidade: a arte de maximizar a quantidade de trabalho que não precisou ser feito”
  • 21. Passa a encarar os problemas com naturalidade…
  • 24. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. Care about your craft Think! About your work Provide options, don’t make lame excuses Don’t live with broken windows Be a catalyst for change Remember the Big Picture Make a quality a requirements issue Invest regularly in your knowledge portfolio Critically Analyze What You Read and Hear It's Both What You Say and the Way You Say It DRY—Don't Repeat Yourself Make It Easy to Reuse Eliminate Effects Between Unrelated Things There Are No Final Decisions Use Tracer Bullets to Find the Target Prototype to Learn Program Close to the Problem domain Estimate to Avoid Surprises Iterate the Schedule with the Code Keep Knowledge in Plain Text Use the Power of Command Shells Use a Single Editor Well Always Use Source Code Control Fix the Problem, Not the Blame Don't Panic "select" Isn't Broken Don't Assume It—Prove It Learn a Text Manipulation Language Write Code That Writes Code You Can't Write Perfect Software Design with Contracts Crash Early If It Can't Happen, Use Assertions to Ensure That It Won't Use Exceptions for Exceptional Problems Finish What You Start 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. Minimize Coupling Between Modules Configure, Don't Integrate Put Abstractions in Code Details in Metadata Analyze Workflow to Improve Concurrency Design Using Services Always Design for Concurrency Separate Views from Models Use Blackboards to Coordinate Workflow Don't Program by Coincidence Estimate the Order of Your Algorithms Test Your Estimates Refactor Early, Refactor Often Design to Test Test Your Software, or Your Users Will Don't Use Wizard Code You Don't Understand Don't Gather Requirements—Dig for Them Work with a User to Think Like a User Abstractions Live Longer than Details Use a Project Glossary Don't Think Outside the Box—Find the Box Listen to Nagging Doubts—Start When You're Ready Some Things Are Better Done than Described Don't Be a Slave to Formal Methods Expensive Too Do Not Produce Better Designs Organize Around Functionality, Not Job Functions Don't Use Manual Procedures Test Early. Test Often. Test Automatically. Coding Ain't Done 'Til All the Tests Run Use Saboteurs to Test Your Testing Test State Coverage, Not Code Coverage Find Bugs Once Treat English as Just Another Programming Language Build Documentation In, Don't Bolt It On Gently Exceed Your Users' Expectations Sign Your Work 70 Tips
  • 25. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. Care about your craft Think! About your work Provide options, don’t make lame excuses Don’t live with broken windows Be a catalyst for change Remember the Big Picture Make a quality a requirements issue Invest regularly in your knowledge portfolio Critically Analyze What You Read and Hear It's Both What You Say and the Way You Say It DRY—Don't Repeat Yourself Make It Easy to Reuse Eliminate Effects Between Unrelated Things There Are No Final Decisions Use Tracer Bullets to Find the Target Prototype to Learn Program Close to the Problem domain Estimate to Avoid Surprises Iterate the Schedule with the Code Keep Knowledge in Plain Text Use the Power of Command Shells Use a Single Editor Well Always Use Source Code Control Fix the Problem, Not the Blame Don't Panic "select" Isn't Broken Don't Assume It—Prove It Learn a Text Manipulation Language Write Code That Writes Code You Can't Write Perfect Software Design with Contracts Crash Early If It Can't Happen, Use Assertions to Ensure That It Won't Use Exceptions for Exceptional Problems Finish What You Start 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. Minimize Coupling Between Modules Configure, Don't Integrate Put Abstractions in Code Details in Metadata Analyze Workflow to Improve Concurrency Design Using Services Always Design for Concurrency Separate Views from Models Use Blackboards to Coordinate Workflow Don't Program by Coincidence Estimate the Order of Your Algorithms Test Your Estimates Refactor Early, Refactor Often Design to Test Test Your Software, or Your Users Will Don't Use Wizard Code You Don't Understand Don't Gather Requirements—Dig for Them Work with a User to Think Like a User Abstractions Live Longer than Details Use a Project Glossary Don't Think Outside the Box—Find the Box Listen to Nagging Doubts—Start When You're Ready Some Things Are Better Done than Described Don't Be a Slave to Formal Methods Expensive Too Do Not Produce Better Designs Organize Around Functionality, Not Job Functions Don't Use Manual Procedures Test Early. Test Often. Test Automatically. Coding Ain't Done 'Til All the Tests Run Use Saboteurs to Test Your Testing Test State Coverage, Not Code Coverage Find Bugs Once Treat English as Just Another Programming Language Build Documentation In, Don't Bolt It On Gently Exceed Your Users' Expectations Sign Your Work 1 – Care about your craft
  • 28. Qualidade do Código “Clean Code” (Uncle Bob)
  • 29. Ta uma bagunça, mas funciona!
  • 31. Refatoração “Refactoring: Improving the Design of Existing Code” (Martin Fowler)
  • 34. Testes Automáticos JUnit, JBehave, TestNG, Rspec, Cumcuber, Test::Unit, …
  • 35. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. Care about your craft Think! About your work Provide options, don’t make lame excuses Don’t live with broken windows Be a catalyst for change Remember the Big Picture Make a quality a requirements issue Invest regularly in your knowledge portfolio Critically Analyze What You Read and Hear It's Both What You Say and the Way You Say It DRY—Don't Repeat Yourself Make It Easy to Reuse Eliminate Effects Between Unrelated Things There Are No Final Decisions Use Tracer Bullets to Find the Target Prototype to Learn Program Close to the Problem domain Estimate to Avoid Surprises Iterate the Schedule with the Code Keep Knowledge in Plain Text Use the Power of Command Shells Use a Single Editor Well Always Use Source Code Control Fix the Problem, Not the Blame Don't Panic "select" Isn't Broken Don't Assume It—Prove It Learn a Text Manipulation Language Write Code That Writes Code You Can't Write Perfect Software Design with Contracts Crash Early If It Can't Happen, Use Assertions to Ensure That It Won't Use Exceptions for Exceptional Problems Finish What You Start 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. Minimize Coupling Between Modules Configure, Don't Integrate Put Abstractions in Code Details in Metadata Analyze Workflow to Improve Concurrency Design Using Services Always Design for Concurrency Separate Views from Models Use Blackboards to Coordinate Workflow Don't Program by Coincidence Estimate the Order of Your Algorithms Test Your Estimates Refactor Early, Refactor Often Design to Test Test Your Software, or Your Users Will Don't Use Wizard Code You Don't Understand Don't Gather Requirements—Dig for Them Work with a User to Think Like a User Abstractions Live Longer than Details Use a Project Glossary Don't Think Outside the Box—Find the Box Listen to Nagging Doubts—Start When You're Ready Some Things Are Better Done than Described Don't Be a Slave to Formal Methods Expensive Too Do Not Produce Better Designs Organize Around Functionality, Not Job Functions Don't Use Manual Procedures Test Early. Test Often. Test Automatically. Coding Ain't Done 'Til All the Tests Run Use Saboteurs to Test Your Testing Test State Coverage, Not Code Coverage Find Bugs Once Treat English as Just Another Programming Language Build Documentation In, Don't Bolt It On Gently Exceed Your Users' Expectations Sign Your Work 61 – Don’t use Manual Procedures
  • 38.
  • 39.
  • 40. TDD / BDD “TDD - Kent Beck / BDD - Dan North”
  • 41. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. Care about your craft Think! About your work Provide options, don’t make lame excuses Don’t live with broken windows Be a catalyst for change Remember the Big Picture Make a quality a requirements issue Invest regularly in your knowledge portfolio Critically Analyze What You Read and Hear It's Both What You Say and the Way You Say It DRY—Don't Repeat Yourself Make It Easy to Reuse Eliminate Effects Between Unrelated Things There Are No Final Decisions Use Tracer Bullets to Find the Target Prototype to Learn Program Close to the Problem domain Estimate to Avoid Surprises Iterate the Schedule with the Code Keep Knowledge in Plain Text Use the Power of Command Shells Use a Single Editor Well Always Use Source Code Control Fix the Problem, Not the Blame Don't Panic "select" Isn't Broken Don't Assume It—Prove It Learn a Text Manipulation Language Write Code That Writes Code You Can't Write Perfect Software Design with Contracts Crash Early If It Can't Happen, Use Assertions to Ensure That It Won't Use Exceptions for Exceptional Problems Finish What You Start 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. Minimize Coupling Between Modules Configure, Don't Integrate Put Abstractions in Code Details in Metadata Analyze Workflow to Improve Concurrency Design Using Services Always Design for Concurrency Separate Views from Models Use Blackboards to Coordinate Workflow Don't Program by Coincidence Estimate the Order of Your Algorithms Test Your Estimates Refactor Early, Refactor Often Design to Test Test Your Software, or Your Users Will Don't Use Wizard Code You Don't Understand Don't Gather Requirements—Dig for Them Work with a User to Think Like a User Abstractions Live Longer than Details Use a Project Glossary Don't Think Outside the Box—Find the Box Listen to Nagging Doubts—Start When You're Ready Some Things Are Better Done than Described Don't Be a Slave to Formal Methods Expensive Too Do Not Produce Better Designs Organize Around Functionality, Not Job Functions Don't Use Manual Procedures Test Early. Test Often. Test Automatically. Coding Ain't Done 'Til All the Tests Run Use Saboteurs to Test Your Testing Test State Coverage, Not Code Coverage Find Bugs Once Treat English as Just Another Programming Language Build Documentation In, Don't Bolt It On Gently Exceed Your Users' Expectations Sign Your Work 47 – Refactor Early, Refactor Often
  • 43. Design Evolutivo “TDD - Kent Beck / BDD - Dan North”
  • 44. Continuous TDD / BDD Integration “TDD - Kent Beck / BDD - Dan North” (Martin Fowler)
  • 47. da qualidade não se abre mão
  • 52. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. Care about your craft Think! About your work Provide options, don’t make lame excuses Don’t live with broken windows Be a catalyst for change Remember the Big Picture Make a quality a requirements issue Invest regularly in your knowledge portfolio Critically Analyze What You Read and Hear It's Both What You Say and the Way You Say It DRY—Don't Repeat Yourself Make It Easy to Reuse Eliminate Effects Between Unrelated Things There Are No Final Decisions Use Tracer Bullets to Find the Target Prototype to Learn Program Close to the Problem domain Estimate to Avoid Surprises Iterate the Schedule with the Code Keep Knowledge in Plain Text Use the Power of Command Shells Use a Single Editor Well Always Use Source Code Control Fix the Problem, Not the Blame Don't Panic "select" Isn't Broken Don't Assume It—Prove It Learn a Text Manipulation Language Write Code That Writes Code You Can't Write Perfect Software Design with Contracts Crash Early If It Can't Happen, Use Assertions to Ensure That It Won't Use Exceptions for Exceptional Problems Finish What You Start 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. Minimize Coupling Between Modules Configure, Don't Integrate Put Abstractions in Code Details in Metadata Analyze Workflow to Improve Concurrency Design Using Services Always Design for Concurrency Separate Views from Models Use Blackboards to Coordinate Workflow Don't Program by Coincidence Estimate the Order of Your Algorithms Test Your Estimates Refactor Early, Refactor Often Design to Test Test Your Software, or Your Users Will Don't Use Wizard Code You Don't Understand Don't Gather Requirements—Dig for Them Work with a User to Think Like a User Abstractions Live Longer than Details Use a Project Glossary Don't Think Outside the Box—Find the Box Listen to Nagging Doubts—Start When You're Ready Some Things Are Better Done than Described Don't Be a Slave to Formal Methods Expensive Too Do Not Produce Better Designs Organize Around Functionality, Not Job Functions Don't Use Manual Procedures Test Early. Test Often. Test Automatically. Coding Ain't Done 'Til All the Tests Run Use Saboteurs to Test Your Testing Test State Coverage, Not Code Coverage Find Bugs Once Treat English as Just Another Programming Language Build Documentation In, Don't Bolt It On Gently Exceed Your Users' Expectations Sign Your Work 30 – You Can’t Write Perfect Software

Hinweis der Redaktion

  1. SOLID, DRY, Reuse, …
  2. Para nãoirpara o lado negro da força
  3. Missão dada émissãocumprida – BOM SENSO!!!