This year I will tour Europe with my new workshop: Behavior Driven Development for Rich Internet Applications using JavaScript.

Who is this workshop for?

JavaScript developers.  This is a workshop for those developers who already have some experience with TDD and JavaScript. I will not explain what an automated test is, I expect attendees to be familiar with the notion of test-first development. However, you don’t have to be a TDD expert to join the workshop. Some experience with test doubles (mock, stubs…) will help, although we will review them in their JavaScript version.
Attendees must be familiar with dynamic languages and must have a good JavaScript knowledge. Although a deep knowledge of the JavaScript language is not required, it is important to be used to the language, at least practicing code katas. I have prepared these exercises to make sure we all can expect a certain level of JavaScript knowledge. I help with any doubts on those exercises.
Important: Aim of this workshop is to teach developers how to develop rich client applications, not a website with some JavaScript on it. Mobile apps based on JavaScript fall into this category.

Workshop contents

BDD is a full stack methodology. In this other post you can read how I am implementing BDD for RIAs. We will develop several user stories from the ground up, starting from the specification workshop and ending with working software.  This is the table of contents:

  • Communication: some advise for effective communication and productivity.
  • Specification workshop: requirements and business value.
  • Agile JavaScript infrastructure: everything we need to get started.
  • Cucumber and its many flavors: examples with cucumber.js and SpecFlow
  • Event oriented programming.
  • Testing techniques with JavaScript and test doubles.
  • Most common design patterns: ports and adapters, passive view, observer, factory, singleton.
  • Architecture: those other things that don’t emerge from the design but have to be thought upfront.

Everything is practical. Attendees work in pairs, rotating every now and then to be able to pair up with at least four people. Pair programming is explained in the workshop and I am facilitating and helping pairs all the time. We stop after each exercise to add some theoretical notes and recaps.

Why JavaScript?

I used to think that JavaScript was something terrible,  even worse than PHP 🙂 But it is no longer like that (PHP has also improved!). The JavaScript platform is so powerful these days. It’s quite mature and evolving very fast. Mainly because browsers are improving a lot. Even our good friend IE, is negotiation a truce with developers in its latest versions.

Desktop applications were so powerful back in the 90’s regarding the user experience and the programming techniques. The web as it came in the 2000 decade, was a step back in terms of tooling and user experience but it was a huge advantage in terms of deployment. Now we can leverage everything that has been effective in the past 20 years: rich user experience,  powerful programming techniques and tools, agile testing, and high market potential (web and mobile). JavaScript platform means to me the JavaScript language and also CoffeeScript and any other language which compiles into JavaScript.

Is BDD different for JavaScript?

Not really from the high level. However, rich client applications are now easier to test than ever. What in traditional web development are integration tests, now can be turned into unit tests, making maintenance much more efficient. The actual instances of the objects in our application are directly accessible in our tests, there is not need to hit the application through the GUI to run end to end tests.
The amount of glue code or automation code can be reduced or even removed in some cases. It is worth understanding the differences to take advantage of rich client side development.

Should you attend this workshop?

This is a career investment. If you don’t expect to practice any learned lesson from the workshop, better you save your money. On the other hand, if you come to the workshop willing to learn, ask and practice, this workshop will save you a lot of time, effort and mistakes.  Every time I invest my money in training I try to calculate the ROI somehow and have a clear reason as to why am I doing that investment.

In this workshop you will understand the best practices that took me years (and pain) to learn. You will be ready to apply them in your upcoming projects. It is impossible for you to master all the techniques after a single day but you will get a solid foundation to start from and knowledge to avoid critical mistakes.

Is there any sample application developed this way?

Yes there is! 🙂 Check it out for free at, my latest and coolest application for team productivity.

The bonus

When you enroll on the workshop you also get homework and homework help. You can send me any questions you have, anytime. You also get access to a mailing list where you can get new exercises, news, and more. Because I don’t just want attendees for the workshop, I want people to learn so I’ll help you keep on learning.

You can buy your ticket now

The next edition will be in Postdam, Germany. It will be part of AgileDevPractices (March 4, 2013). Following editions will be published here (look in the right-hand sidebar). If you would like to host the workshop in your city, please contact me.
Pricing: Early Bird 750€, Regular 850€.  Buy Now

Tell me more

Do you want to know where and when is the next workshop edition? Join the mailing list. You will not receive any spam, I promise 😉