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.

 

Articles

If you use Maven, or even if you just use Maven repositories for your dependency management, you should be using a Maven Repository Manager.
If you are a NetBeans user working with Maven, you're in luck with NetBeans 6.7.1! This latest release comes with a swathe of cool features to help you work with your Maven projects pretty much out-of-the-box.
Grails is an excellent, highly productive development framework that positively encourages good development and testing practices. This article shows how to set up a Continuous Integration build job to compile and test your Grails application in Hudson, for automated continuous integration.
Want to provide maps in your web application? The Google Maps API is straightforward to call from Java, and with an Ajax-ian approach, you can make it extra user-friendly. John Ferguson Smart shows you how to combine these approaches.
Jabber is a popular and widely supported XML-based API for exchanging instant messages. You could compose the messages by hand, but there's an alternative. John Ferguson Smart introduces the Smack API, which makes it easy to use Jabber services from Java.
Standards are so much easier to adhere to when your tools do it for you. Thanks to JAX-WS and its implementation in application servers like GlassFish, you can write web services as plain ol' Java objects, just by adding a few annotations. John Ferguson Smart shows how it's done.
The best way to integrate in a hurry is to have been doing it all along. This practice of continuous integration is greatly helped by automated tools to check out and build your team's code on a more or less constant basis. Apache Continuum offers a free and open source tool to do continuous...
Oftentimes, your new code replaces an older system whose data must be migrated to the new system. This isn't a process that gets a lot of thought, but John Ferguson Smart says it probably should. In this article, he shows how an iterative, test-driven approach can save you a lot of headaches...

Weblogs

  • Deliver valuable features, faster!
  • Reduce wasted efforts due to...

We have an exciting training schedule lined up for 2014, with the introduction of a new workshop on ...

An essential part of a well-written unit test is a well-written assertion. The assertion states the behavior you expect out of the system. It should tell you at a glance what a test is trying to...

Next week I will be giving a talk at the Sydney Agile Meetup entitled "Automated Functional Testing - The good, the bad and the ugly". Here is the summary:

In the pursuit of...

This article was writen by Simeon Ross, who works in a large government organization. In it, he describes how he sets up parallel testing in JBehave and Thucydides using Bamboo....

Over the next few months, I will be running a new advanced TDD/BDD workshop in cities around Australia, including...

Although they seem simple enough on the surface, test outcomes are actually quite complicated beasts. Traditional unit tests, and basic TDD tests, have just two states, passing or failing,...

BDD reporting: from test results to status reports

Conventional test reports, generated by tools such as JUnit or TestNG, naturally focus on what tests have been executed, and whether...

Bugs are inevitable. Even after you thought you have finished coding your work, another bug creeps in, making you want to wish the bugs were real tangible objects that you could squish with your...

Acceptance Test Driven Development (ATDD) is a method wherein business stakeholders, analysts, testers and developers collectively specify and agree on what needs to be completed in the project....

During the recent JavaOne conference, I was able to share how developers can put their Java codes up a notch by using functional programming...

Earlier this October, I was given the privilege of speaking at JavaOne regarding the fusion of contemporary Continuous Delivery processes and...

Behavior-Driven Development (BDD) is all the buzz now. To contribute to the increasing buzz BDD has been creating, I'm heading off to the Canberra JUG...

Next week holds a lot of exciting events for me at Canberra. Aside from delivering a talk on Behavior-Driven Development for the Canberra Java Users...

Acceptance Test Driven Development (ATDD) is a very effective development practice that essentially involves writing specifications in the form of documented and automated...

A recent study found that projects applying techniques such as Acceptance Test Driven Development and Test Driven Development deliverd 31% faster with ...

Wakaleo Consulting are pleased to announce we will be running a new series of our popular course 'TDD, BDD and Testing Best Practice for JAVA Developers', in the upcoming months. The three-...

I’ve just returned from Ireland, where I was presenting a seminar on Clean Code Practices for Java Developers at the Paddy Power Technology Series. You can...

The latest version of Thucydides (0.7.10) to be released has some great new features! Find out more below:

Web tests are as a rule much slower than other types of tests, but they can be sped up significantly by running them in parallel. However, this is often harder to implement than it sounds.

Hamcrest is a neat little library that lets you write more fluent and readable tests.

Thucydides 0.4.26 has just been released. Some of the new features in this release include HTMLUnit support and the ability to specify the browser you want to run tests in at both the test...

Thucydides is an open source library that lets you use WebDriver/Selenium 2 to write better acceptance tests. . The...

A new version of Thucyides is out - version 0.4.17 - with some exiting new features. These include:

A new version of Thucydides is out - version 0.4.15 - with some exciting new features, updates and...

Thucydides is an open source library designed to help you write better ATDD-style automated...

Thucydides is an open source library designed to help you write better ATDD-style automated acceptance tests with Selenium 2.