Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
Evolutionary Design:
Take only one Decision
at a time
Adrian Bolboacă
@adibolb
adrian.bolboaca@mozaicworks.
com
Objectives
◊
Understand Evolutionary Design ideas
◊
Use Baby steps for Evolutionary Design
◊
Have a flow while evolving th...
Evolutionary Design
The art of growing a system by observing its
natural traits and then normalizing and
optimizing its gr...
Evolutionary Design
Evolutionary design is about the
transformations that take place when we add
new behaviors / tests.
Evolutionary Design Ideas
◊
The tests are pressure applied to existing design
◊
The production code is like clay that gets...
Entry Point
The initial batch of steps when starting a
problem
Design Flow
In positive psychology, flow, also known as the zone, is the mental state of
operation in which a person perfo...
Take one decision: mechanics
1)Write one failing test
2)Make it pass in the simplest way
3)Write comments with all the pos...
Coding Time
◊
Problem: Write code Outside-In on the Bank
Kata
Coding Time
◊
Problem: Write code Bottom-Up on Poker
Game
Anti-Patterns
◊
Focus on implementation details and not on
design concepts
◊
Consider that tests are the essential output ...
What’s Next?
◊
Experiment both Deductive and Inductive
approaches during katas or coderetreats
◊
Try both Deductive and In...
#RemotePairProgramming
Join my #RemotePairProgramming Codecasts:
contact me and pair during a recorded
codecast with me
Join Mozaic Works
Software Design School
Join Mozaic Works
Software Design School
◊
Join the level you want:
ҩ Fundamentals
ҩ Paradigms
ҩ Test Driven Design
ҩ Evol...
Thank you!
Ha terminado este documento.
Descárguela y léala sin conexión.
Próximo SlideShare
What to Upload to SlideShare
Siguiente
Próximo SlideShare
What to Upload to SlideShare
Siguiente
Descargar para leer sin conexión y ver en pantalla completa.

Compartir

Evolutionary Design: Take Only One Decision at a Time

Descargar para leer sin conexión

The slides for the workshop organized in Zurich on 01 February 2018 on Evolutionary Design. More info on blog.adrianbolboaca.ro

Audiolibros relacionados

Gratis con una prueba de 30 días de Scribd

Ver todo
  • Sé el primero en recomendar esto

Evolutionary Design: Take Only One Decision at a Time

  1. 1. Evolutionary Design: Take only one Decision at a time Adrian Bolboacă @adibolb adrian.bolboaca@mozaicworks. com
  2. 2. Objectives ◊ Understand Evolutionary Design ideas ◊ Use Baby steps for Evolutionary Design ◊ Have a flow while evolving the design
  3. 3. Evolutionary Design The art of growing a system by observing its natural traits and then normalizing and optimizing its growth
  4. 4. Evolutionary Design Evolutionary design is about the transformations that take place when we add new behaviors / tests.
  5. 5. Evolutionary Design Ideas ◊ The tests are pressure applied to existing design ◊ The production code is like clay that gets molded depending on the pressure applied to it ◊ When evolving the design of a system we observe growth patterns that simplify the resulting system ◊ Evolutionary Design is like helping your plants grow, knowing what measures to take so they will be fruitful
  6. 6. Entry Point The initial batch of steps when starting a problem
  7. 7. Design Flow In positive psychology, flow, also known as the zone, is the mental state of operation in which a person performing an activity is fully immersed in a feeling of energized focus, full involvement, and enjoyment in the process of the activity For Design: ◊ We know next few steps ◊ We understand the direction ◊ We see the directions (options) not to take
  8. 8. Take one decision: mechanics 1)Write one failing test 2)Make it pass in the simplest way 3)Write comments with all the possible next steps 4)Decide pros and cons and choose the best next step 5)Go back to 3 Remember: Only one design decision at a time
  9. 9. Coding Time ◊ Problem: Write code Outside-In on the Bank Kata
  10. 10. Coding Time ◊ Problem: Write code Bottom-Up on Poker Game
  11. 11. Anti-Patterns ◊ Focus on implementation details and not on design concepts ◊ Consider that tests are the essential output of TDD, and not well structured design elements ◊ Consider you know exactly the resulting design, and don’t listen to the design smells ◊ Focus on the solution and not on the problem
  12. 12. What’s Next? ◊ Experiment both Deductive and Inductive approaches during katas or coderetreats ◊ Try both Deductive and Inductive approaches in your production environment ◊ Watch my codecasts on TDD as if you Meant It & more blog.adrianbolboaca.ro/evolutionary-design ◊ Pair with many people and learn from them
  13. 13. #RemotePairProgramming Join my #RemotePairProgramming Codecasts: contact me and pair during a recorded codecast with me
  14. 14. Join Mozaic Works Software Design School
  15. 15. Join Mozaic Works Software Design School ◊ Join the level you want: ҩ Fundamentals ҩ Paradigms ҩ Test Driven Design ҩ Evolutionary Design ҩ Improve Existing Design ҩ Optimize Software Design ◊ From the basics to the most advanced & avant-garde ◊ Want to join? adrian.bolbaca@mozaicworks.com
  16. 16. Thank you!

The slides for the workshop organized in Zurich on 01 February 2018 on Evolutionary Design. More info on blog.adrianbolboaca.ro

Vistas

Total de vistas

125

En Slideshare

0

De embebidos

0

Número de embebidos

0

Acciones

Descargas

2

Compartidos

0

Comentarios

0

Me gusta

0

×