• Save
The Behaviour-Driven Programmer
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

The Behaviour-Driven Programmer

on

  • 3,278 views

An introduction to Behaviour-Driven Development, the second-generation agile methodology that aims at delivering software that matters. ...

An introduction to Behaviour-Driven Development, the second-generation agile methodology that aims at delivering software that matters.

Most of us know that BDD has something to do with tests and the way code is produced. But what is it exactly? How does it differ from Test-Driven Development?

We'll discover the technical principles and practices lying at the heart of BDD, as experienced from a naive programmer perspective.

But BDD is not only about writing better tests and code. It really holds higher purposes...

Statistics

Views

Total Views
3,278
Views on SlideShare
3,263
Embed Views
15

Actions

Likes
10
Downloads
0
Comments
0

3 Embeds 15

http://www.linkedin.com 12
https://twitter.com 2
http://twitter.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

The Behaviour-Driven Programmer Presentation Transcript

  • 1. v0 .1- al ph a !"B"#$v%&r-Dr%v"( Pr&)r$**"rThe first steps of a Behaviour-Driven Developer
  • 2. Julien Biezemans @jbpros
  • 3. Who?
  • 4. You happen to write code...
  • 5. useless,
  • 6. delivered (too) late,
  • 7. fragile,
  • 8. difficult to deploy,
  • 9. impenetrable,
  • 10. hard to maintain.
  • 11. BDD
  • 12. Dan North@tastapod
  • 13. “BDD is a second-generation, outside-in, pull-based, multiple-stakeholder,multiple-scale, high-automation,agile methodology.”
  • 14. “It describes a cycle of interactionswith well-defined outputs, resulting inthe delivery of working, testedsoftware that matters.”
  • 15. Test-DrivenDevelopment
  • 16. Red, Green, Refactor
  • 17. Where to start?
  • 18. What to test?
  • 19. Behaviour
  • 20. From Test to Behaviour
  • 21. Most important missing behaviour today?
  • 22. Business value
  • 23. Story
  • 24. As ...I want ...So that ...
  • 25. Estimation
  • 26. Acceptance criteria
  • 27. Scenario
  • 28. Context ➔ Event ➔ Outcome
  • 29. Given ➔ When ➔ Then
  • 30. Ubiquitous Language
  • 31. BDD in Ruby/Rails
  • 32. Stories + Scenarios =Cucumber features
  • 33. Cucumberhttp://github.com/cucumber
  • 34. Full-stack, deliverable
  • 35. Outside-in
  • 36. Acceptance testsUnit testsCode
  • 37. Run feature
  • 38. Missing step definition #fail
  • 39. Write step definition
  • 40. features/step_definitions/tamagotchi_steps.rb
  • 41. bin/app.rb
  • 42. Run feature
  • 43. Missing code #fail
  • 44. RSpechttp://github.com/rspec
  • 45. Write spec
  • 46. spec/lib/tamagotchi_spec.rb
  • 47. Run spec
  • 48. Missing code #fail
  • 49. Make it pass
  • 50. lib/tamagotchi.rb
  • 51. Refactor
  • 52. Repeat until the feature passes
  • 53. Design
  • 54. spec/lib/tamagotchi_spec.rb
  • 55. spec/lib/tamagotchi_spec.rb
  • 56. lib/tamagotchi.rb
  • 57. lib/tamagotchi.rb
  • 58. spec/lib/tamagotchi_spec.rb
  • 59. Stubs
  • 60. spec/lib/tamagotchi_spec.rb
  • 61. lib/tamagotchi.rb
  • 62. spec/lib/tamagotchi_spec.rb
  • 63. spec/lib/tamagotchi_spec.rb
  • 64. Spec everything yourstep definitions need
  • 65. spec/lib/tamagotchi_spec.rb
  • 66. lib/tamagotchi.rb
  • 67. spec/lib/tamagotchi_spec.rb
  • 68. lib/tamagotchi.rb
  • 69. features/step_definitions/tamagotchi_steps.rb
  • 70. Living documentation
  • 71. Ruby on Rails
  • 72. View ➔ Controller ➔ Model
  • 73. From Programmer to Developer
  • 74. program v.To provide (a machine) witha set of coded workinginstructions.
  • 75. develop v.To bring out the capabilitiesof; bring to a more advancedor effective state.
  • 76. Deliberate discovery
  • 77. Know whatyou don’t know
  • 78. Know whatyou don’t knowyou don’t know
  • 79. Learn the domains
  • 80. Learn the tools
  • 81. Know the people
  • 82. Feedback
  • 83. Real options
  • 84. Practice
  • 85. Your code is now...
  • 86. useful,
  • 87. delivered on time,
  • 88. robust,
  • 89. easily deployable,
  • 90. intelligible,
  • 91. maintainable,
  • 92. A piece of software that matters.
  • 93. Don’t deliver features
  • 94. Shipcapabilities!