Pragmatic Software Development Solutions

We (yes, still!) offer TDD (test-driven development), design, programming, and agile-related training courses, delivered on site for your convenience at competitive rates. Our classes are taught by real practitioners with hardcore, extensive development-team experience.

Our students leave the classroom jazzed and ready to apply their newfound knowledge. Some of them tell us this is the best training they've ever attended.

We want to make sure you succeed with your development efforts. We believe a strong qualified coach can make the difference, by ensuring firsthand that students retain and ingrain their new skills. We offer hands-on consulting by recognized industry experts, led by Jeff Langr and his partners. We are veterans of the agile community; Jeff has worked to help teams understand and succeed at agile since 2000.

As developers, we've been able to consistently deliver high-quality software. We've helped teach and mentor hundreds of developers how to do the same. We've written highly acclaimed books and over a hundred articles on agile, TDD, pairing, programming in Java and other languages, and OO design.


News: Pragmatic Unit Testing in Java 8 with JUnit in Beta

29 November 2014

Pragmatic Unit Testing in Java with JUnit

Jeff Langr's fifth book, Pragmatic Unit Testing in Java 8 with JUnit, is now available, in beta form, for purchase from the Pragmatic Bookshelf. Get in early and be heard! Readers are encouraged and welcome to help shape the final outcome of the book by providing their feedback.


News: Publication of Modern C++ Programming with TDD

30 October 2013

Modern C++ Programming with Test-Driven Development Jeff Langr's fourth book, Modern C++ Programming with Test-Driven Development: Code Better, Sleep Better, is now available for purchase from the Pragmatic Bookshelf, in both print and eReader formats, as well as retail outlets such as Barnes & Noble and Amazon!


New blog entry, "Running Google Maps in an AVD"

05 July 2013

In "Running Google Maps in an AVD," Jeff provides detailed steps for getting a map-based application to run in an Android Virtual Device (AVD). The steps are for the ADT, but should be adaptable to Android Studio.

Image: By Tom Murphy (Own work) [CC-BY-SA-3.0 (], via Wikimedia Commons

New blog post, "A Story Isn't a Feature"

20 March 2013

User stories are an essential part of agile software development. But are you simply trying to shoehorn your old requirements process into a new terminology? Find out why it's important to understand the definition of the word story in Jeff Langr's new blog post, "A Story Isn't a Feature."

Image source: AJC1, Flickr

New blog post, "C++11: Using Lambdas to Support a Times-Repeat Loop"

06 March 2013

Tired of writing that classic for-loop for (int i = 0; i < total; i++) simply to execute a chunk of code n times? Tired of reading it, and occasionally missing an important detail (such as for (int i = 0; i < total; i++))? In " C++11: Using Lambdas to Support a Times-Repeat Loop," Jeff blogs about how you can use the new C++11 lambda construct to support a simplified and less error prone times-repeat loop.


New blog post, "C++11 Via TFL (Test-Focused Learning): The Range-Based For Loop"

19 February 2013

Jeff Langr posts a new blog article in the TFL series, "C++ 11 Via TFL (Test-First Learning): The Range-Based For Loop," The range-based for loop provides a simplified construct for iterating over a collection of data.

Image source: normanack, Flickr