Skip to main content

John Ferguson Smart

John is a freelance consultant specialising in Enterprise Java, Web Development, and Open Source technologies, currently based in Wellington, New Zealand. Well known in the Java community for his many published articles, John helps organisations to optimize their Java development processes and infrastructures and provides training and mentoring in open source technologies, SDLC tools, and agile development processes. John is principal consultant at Wakaleo Consulting, a company that provides consulting, training and mentoring services in Enterprise Java and Agile Development.


johnsmart's blog

JavaOne: Getting Serious About Build Automation: Using Maven in the Real World

Posted by johnsmart on May 22, 2009 at 4:25 PM PDT

This year, I'll be talking at JavaOne about

CI, Branching and Release strategy for a medium-size project - a case study

Posted by johnsmart on May 21, 2009 at 3:17 PM PDT

Someone recently asked me about how I organised releases in our Subversion repository. So I decided to write up the response as a blog entry.

A whimsical ode to JavaOne

Posted by johnsmart on May 20, 2009 at 4:01 PM PDT

To the tune of 'Money for nothing', by Dire Straits.

CI Adoption Stories (5/8): Optimizing Continuous Integration to push build artifacts

Posted by johnsmart on May 19, 2009 at 12:22 PM PDT

This case study is the fifth of an 8-part blog series about why so many developers adopt continuous integration, and originally published on the Atlassian blogs.

Where To Now With Build Automation

Posted by johnsmart on May 15, 2009 at 12:56 PM PDT

Just posted a new article about Continuous Integration and Build Automation on InfoQ, that I wrote in collaboration with my mates at Atlassian:

CI Adoption Customer Stories (4/8): Driving quality with hyper complex distributed builds

Posted by johnsmart on May 15, 2009 at 1:42 AM PDT

Sophie is a technical project manager in a large insurance firm. She manages the development of a web-based calculator for car insurance premiums. The calculations are done dynamically, using a sophisticated AJAX-based web interface. Car insurance premiums use complex algorithms, and it is vital that the web calculator results match those coming from the mainframe back-end to the cent.

Making Agile Real: the Agile2009 conference

Posted by johnsmart on May 14, 2009 at 4:42 PM PDT

The official Agile2009 is out, and

Changing ports with Grails

Posted by johnsmart on May 5, 2009 at 12:24 PM PDT

When you run a Grails application from the command line (using grails run-app, for example), it will run on port 8080 by default. This also applies when Grails runs web tests such as Selenium, Canoo webtest or HTMLUnit. If you have web tests in your application, Grails will automatically start up the application before running the tests, which is just what you want.

Micro-iterative development practices

Posted by johnsmart on May 4, 2009 at 3:44 PM PDT

Reflections on iterative development in terms of state transitions

Iterative development is all about state transitions. In a nutshell, iterative development is about moving from one stable state to another in very small steps. This obviously applies to team iterations or sprints, but it also applies to daily development practices.

An introduction to easyb at Devoxx

Posted by johnsmart on April 21, 2009 at 4:11 PM PDT

Most people would agree that testing your code is a good thing.