background preloader

Dan North & Associates

Dan North & Associates
[This article has been translated into Korean by HongJoo Lee, French by Philippe Poumaroux, Spanish by Adrian Moya, Russian by Denis Oleynik, and German by Julia Kadauke.] Behaviour-driven development is an “outside-in” methodology. It starts at the outside by identifying business outcomes, and then drills down into the feature set that will achieve those outcomes. Each feature is captured as a “story”, which defines the scope of the feature along with its acceptance criteria. This article introduces the BDD approach to defining and identifying stories and their acceptance criteria. Introduction Software delivery is about writing software to achieve business outcomes. Usually, the business outcomes are too coarse-grained to be used to directly write software (where do you start coding when the outcome is “save 5% of my operating costs”?) This, then, is the role of a Story. The structure of a story BDD provides a structure for a story. Telling the story The characteristics of a good story 1. Related:  Estimating

Qu’est-ce qu’un storyboard ? Votre scénario est rédigé et vous souhaitez maintenant passer à l’étape supérieure ? Inutile de vous précipiter sur votre caméra immédiatement. De nombreux détails sont à régler avant de passer à l’action sur le tournage. Une préparation sérieuse est nécessaire. Pour cela, il existe un outil pour faciliter le tournage de votre prochain film : le storyboard. D’ailleurs, les plus grands cinéastes comme Ridley Scott ou Hitchcock sont de véritables adeptes de cet outil de travail. Envie de bien vous préparer avant le tournage de votre film ? Georges Mélies, un magicien, s’intéresse de près aux techniques de l’animation et de l’image à l’époque des frères Lumière vers la fin du 19e siècle. À l’origine des premiers effets spéciaux au cinéma (fondus, surimpression, etc), Georges Mélies a l’idée d’utiliser des dessins pour préparer ses films. Savez-vous que Hitchcok était un vrai manique pour l’organisation de ses tournages. À première vue, cela ressemble à une ébauche de Bande dessiné.

Introducing BDD | Dan North History: This article first appeared in Better Software magazine in March 2006. It has been translated into Japanese by Yukei Wachi, Korean by HongJoo Lee, Italian by Arialdo Martini and French by Philippe Poumaroux and most recently into Spanish by Oscar Zárate, Turkish by Selim Öber and Russian. I had a problem. While using and teaching agile practices like test-driven development (TDD) on projects in different environments, I kept coming across the same confusion and misunderstandings. Programmers wanted to know where to start, what to test and what not to test, how much to test in one go, what to call their tests, and how to understand why a test fails. The deeper I got into TDD, the more I felt that my own journey had been less of a wax-on, wax-off process of gradual mastery than a series of blind alleys. My response is behaviour-driven development (BDD). Test method names should be sentences My first “Aha!” renders something like this: I had introduced a bug. and one for the event:

Why I still use use cases XP pretty much banned use cases, replacing them with the similar sounding “user stories” (see A user story is to a use case as a gazelle is to a gazebo (discussion: Re: A user story is to a use case as a gazelle is to a gazebo)}, and as a result agile zealots have been happy to dump use cases in the trash (along with their project managers, estimates, plans, and architectures). Scrum did similar, using the “product backlog” instead of user stories. Yet as I go around projects, I keep running across organizations suffering from three particular, real, painful, and expensive problems: User stories and backlog items don’t give the designers a context to work from – when is the user doing this, and what is the context of their operation, what is their larger goal at this moment? Use cases are, indeed, heavier and more difficult than either user stories or backlog items, but they bring value for that extra weight. As not-Einstein said: “Make things as simple as possible, but no simpler.” s.

Java Behavior-Driven Development with JBehave This video explains how to do Behavior-Driven Development (BDD) with JBehave in a Java software development context. In BDD, Product Owners and team members focus on the problem domain and develop a common language for expressing a product’s desired behavior as stories and acceptance test criteria. Developers can then map the stories and criteria on their test code to verify application behavior. The video presents the concept of BDD and how to write user stories. Video Producer: San Francisco Java User Group Video source and presentation slides Related Posts: 17 Theses on Software Estimation-10x Software Development (with apologies to Martin Luther for the title) Arriving late to the #NoEstimates discussion, I’m amazed at some of the assumptions that have gone unchallenged, and I’m also amazed at the absence of some fundamental points that no one seems to have made so far. The point of this article is to state unambiguously what I see as the arguments in favor of estimation in software and put #NoEstimates in context. 1. My company and I have taught upwards of 10,000 software professionals better estimation practices, and believe me, we have seen every imaginable horror story of estimation done poorly. 2. Estimation done poorly is most often due to lack of estimation skills. 3. I don’t expect most #NoEstimates advocates to agree with this thesis, but as someone who does know a lot about estimation I think it’s clear on its face. (a) Are estimation and forecasting the same thing? (d) Is estimation time consuming and a waste of time? 4. 5. Estimates are used by businesses in numerous ways, including:

Drawing Lessons In 1988, an extraordinary thing happened in the world of animation. The film "Who Framed Roger Rabbit?"( Directed by Robert Zemekis, animation directed by Richard Williams) was released. The film gleefully celebrated the kind of imaginative slapstick cartoon violence that was the staple of the most popular short cartoon classics that were made during the period from around 1940 till the decline in the year that the film takes place,1947. It was also in 1988 that I became associated with the Joe Kubert School of Cartoon Art in Dover, New Jersey. The next year, Milt left the school, but I stayed on as an animation instructor and have since been teaching a course in what the school lists as "life drawing". What follows are the notes for my class. So, are we ready to start drawing? Click on page 1 below!

Mocks Aren't Stubs The term 'Mock Objects' has become a popular one to describe special case objects that mimic real objects for testing. Most language environments now have frameworks that make it easy to create mock objects. What's often not realized, however, is that mock objects are but one form of special case test object, one that enables a different style of testing. In this article I'll explain how mock objects work, how they encourage testing based on behavior verification, and how the community around them uses them to develop a different style of testing. I first came across the term "mock object" a few years ago in the XP community. But as often as not I see mock objects described poorly. This difference is actually two separate differences. (In the earlier version of this essay I had realized there was a difference, but combined the two differences together. Regular Tests I'll begin by illustrating the two styles with a simple example. Tests with Mock Objects Using EasyMock Driving TDD

Applying Use Cases in Agile: Use Case 2.0, Slicing and Laminating To incrementally develop and deliver products using agile software development, requirements are gathered and organized into a product backlog. A requirement technique that is used in agile software development is use cases. Some techniques to apply use cases for managing product requirements in agile are use case 2.0, slicing and laminating. Shobha Rangasamy Somasundaram and Amol Sharma wrote a blog post about can formal requirement methods work for agile in which they compare the usage of requirements between waterfall and agile software development: In traditional software development or waterfall process, the following methods are used during the requirements phase - brain storming, questionnaire, modeling, prototyping, observation, focus group, survey, reverse engineering, interview, document analysis, workshop for joint application development (JAD) - collaboration & domain model creation. Andy Hayward explored different requirement techniques in a series of blog post.

Is there a test case management solution which supports BDD? Hi Everyone, I have been digging all over the web for 2 weeks now and I have yet to find any information on this topic. I come from a more traditional model of software testing. Example: using a tool like HP Quality Center, we would import requirements, then write and link test cases to all requirements. These test cases would then be grouped into test suites then at the time of test execution we would create a test run then pull in X number of the test suites we wanted to run. Then of course each test would have a Pass or Fail, any detected bugs would be logged and the Fix-Build-Test process would loop multiple times time the product was ready to ship. From this perspective, to me BDD really breaks this whole traditional design. If all the "test" are now written in feature files and user story acceptance criteria, NOT inside a test management tool. Using the BDD process, I cannot get an understanding on how I can do this. We are a .Net shop so I want to use a tool like SpecFlow. Thank you,