SlideShare a Scribd company logo
1 of 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

More Related Content

What's hot

Practices of agile developers
Practices of agile developersPractices of agile developers
Practices of agile developersDUONG Trong Tan
 
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 ...Bhavin Javia
 
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)Mikalai Alimenkou
 
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 cookbookGabriel Paunescu 🤖
 
Exploratory Testing Explained
Exploratory Testing ExplainedExploratory Testing Explained
Exploratory Testing ExplainedTechWell
 
Kung fu Programming
Kung fu ProgrammingKung fu Programming
Kung fu ProgrammingWisecube AI
 
How does pair programming work?
How does pair programming work?How does pair programming work?
How does pair programming work?Ferdous Pathan
 
Rehan Pair Testing Final
Rehan Pair Testing FinalRehan Pair Testing Final
Rehan Pair Testing FinalRehanShahKhan
 
Pair programming
Pair programmingPair programming
Pair programmingJon Jagger
 
Testers and developers think differently
Testers and developers think differentlyTesters and developers think differently
Testers and developers think differentlyNuthan Kumar
 
Software Project management
Software Project managementSoftware Project management
Software Project managementPeter Brownell
 
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 MapTechWell
 
Test-Driven Development
 Test-Driven Development  Test-Driven Development
Test-Driven Development Amir Assad
 
Pair Programming: overview and concepts
Pair Programming: overview and conceptsPair Programming: overview and concepts
Pair Programming: overview and conceptsLior Kirshner-Shalom
 
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.talkwiseconsultingtalkwiseone
 
The pragmatic programmer
The pragmatic programmerThe pragmatic programmer
The pragmatic programmerNilesh Sharma
 
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 2012Justin Gordon
 

What's hot (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
 

Similar to 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 NakovSvetlin Nakov
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingUtkarsh Khare
 
Topic production code
Topic production codeTopic production code
Topic production codeKavi Kumar
 
Cinci ug-january2011-anti-patterns
Cinci ug-january2011-anti-patternsCinci ug-january2011-anti-patterns
Cinci ug-january2011-anti-patternsSteven Smith
 
Unit testing
Unit testingUnit testing
Unit testingPiXeL16
 
Software Testing Basic Concepts
Software Testing Basic ConceptsSoftware Testing Basic Concepts
Software Testing Basic Conceptswesovi
 
Introduction to test programming
Introduction to test programmingIntroduction to test programming
Introduction to test programmingopenfinanceDev
 
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 developmentEinar Ingebrigtsen
 
Testing & should i do it
Testing & should i do itTesting & should i do it
Testing & should i do itMartin Sykora
 
The View - Lotusscript coding best practices
The View - Lotusscript coding best practicesThe View - Lotusscript coding best practices
The View - Lotusscript coding best practicesBill Buchan
 
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 DevelopmentArin Sime
 
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 onceAlexey (Mr_Mig) Migutsky
 
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 TestingPeter Presnell
 
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 IsRehgan Avon
 
Agile Testing 20021015
Agile Testing 20021015Agile Testing 20021015
Agile Testing 20021015Raghu Karnati
 

Similar to 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
 

More from 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
 

Recently uploaded

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
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?Antenna Manufacturer Coco
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
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.pptxHampshireHUG
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
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 2024The Digital Insurer
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
[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.pdfhans926745
 

Recently uploaded (20)

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
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?
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
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
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
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
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
[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
 

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

Editor's Notes

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