Friday 25 February 2005

PRINCE2 Open Exam booking workaround

Attempting to formalise my PRINCE2 knowledge has been frustrated by the fact that the Open Examinations in the UK conducted by APM Group are booked through a web site booking form which which uses some outdated JavaScript to display available booking slots. From my testing this appears to only work on Internet Explorer on a PC, though Internet Explorer on the Mac will display the options even if you can't book them!

I'll see if I can persuade them to fix this, but in the meantime, if you are a user of Firefox or Safari you can circumvent their JavaScript museum by typing the following line (as one long line) into the location bar and hitting Return:

javascript:var str=document.f.T1.value; document.getElementById("Topic").innerHTML=str; document.getElementById("Topic").style.visibility = "visible"; alert("Done!");

Replace "T1" (for Milton Keynes) in the above with "T2" for Winsford or "T3" for York.

Once the dates are displayed you can proceed as normal.

Wednesday 23 February 2005

Getting Things Done

Perhaps I live in the dark ages, but somewhere down the line I’ve missed the “Getting Things Done” (GTD) movement and it appears with recent reading that I’m missing out, so I feel overwhelmingly obliged to read “Getting Things Done: The Art of Stress-free Productivity” by David Allen.

The final straw that lead me to this conclusion was reading one of today’s “Cutting Through” entries, “Prince 2, product and Getting Things Done”, which was about the 10th reference I’ve read to GTD in the last month.

Tuesday 22 February 2005

An incomplete thought on blogging

What is the point of a blog?

It’s an interesting question to which I can personally think of too many answers to consider writing about, but a few short ideas have permeated recently which seem worth noting and provide an amusingly recursive entry, if you get what I mean…

  1. Blogs are about sharing useful information with like minded people
  2. I read blogs because they inform me, so blogs are often about informing people. How do they inform? They inform because they share knowledge, and often they share a learning process. The writer moves from point A to point B in their understanding of a subject area, and the reader, who reads the blog because they feel an affinity for the writer, is also given a stepping stone to move from A to B without having to do all the work involved in discovering the step.

    So, whilst a blog can be anything, in this understanding, a blog is about sharing what you are learning rather than attempting to write some creative or editorial masterpiece.

    This being the case, a blog of this kind is not something that should take a long time to compose, because it doesn’t need too much thought, it just requires the thoughts to be composed on the screen and it doesn’t need to take long for another reason…

  3. Blogs are about progressing knowledge not completing it
  4. Normally writing is constrained by the need to complete things… the need to make something into a whole with a beginning, a middle and an end. From the perspective of a bit of prose this is probably still true if you want your blog to read well, but it doesn’t matter with regard to the thoughts it communicates.

    Forget etiquette, forget the norms of old, blogging is about a conversation separated from time. I blog something and someone blogs a response somewhere else in the world at some time later. Perhaps I never hear the response, but someone else does, and it takes thoughts forward and builds on them.

    What’s the point of completing a thought and wrapping it up in a parcel. For one thing it hits the old 80/20 rule that applied here says that wrapping up a thought takes 80% of the time and probably contributes 20% or less of the substance. It’s perhaps hard to admit that a thought isn’t complete and that we don’t have the final answer, but I know as a reader of blogs that I would be sorely disappointed if all the blogs I read had censored by the ‘completed thought’ police.

Funnily enough a blog could be described as agile publishing. Perhaps I should register that definition. Anyway, I could go on but…

Monday 21 February 2005

Mind mapping with FreeMind

From time to time, when I have a problem to solve I like to get out pen and paper and start drawing out ideas and thoughts and connecting them together. Using some random variation on mind mapping and Goldratt’s “Current Reality Trees”, I try to make order out of some disparate thoughts and often find the whole processes extremely helpful.

It’s hard to tell whether it’s the process or the product that matters, perhaps it’s both. Anyway, pen and paper and getting hard to use nowadays so from time-to-time I try to find a more appropriate tool to aid the process.

In the last few days I’ve taken another look at the free open-source application FreeMind. It’s a Java application so it works across platforms, and it currently has a new version 8 pre-release tucked away which takes away a number of the serious issues with the current full-release and makes this a real appealing application.

It’s a simple tool for ‘mind mapping’, designed to allow large mind maps to be created and navigated with minimal fuss. It has a ‘fairly’ intuitive interface and shortcuts that make the building process sufficiently quick to be really useful. Some serious bonuses include the ability to export to a nice selection of formats including PDF, and the fact that the underlying file format is XML, so there are endless ways by which the resulting maps can be repurposed, or by which other things can be converted into mind maps.

I will try it out some more and see how it stands the test of time.

Wednesday 16 February 2005

Multi-platform VNC based automated testing

Following the automated software testing theme I've just run across Eggplant an automated testing package which uses VNC to remotely control and watch a computer system under test. This allows it to work across a range of platforms. It can even record movies of the test taking place for later review.

For those unfamiliar with VNC, it is a cross platform solution to controlling and viewing the screen of another computer across a network connection.

There are two issues. Firstly, they don't give any pricing away on their web site, so it could be ridiculously expensive, but that said they do claim it is "affordable", so there's a basis on which to beat them down! The other issue is that it only runs from a Mac OS X based system, so development teams without Macs may have to fork out an additional £500 to buy a testing machine. Given the price of some other testing packages, this may not matter much, and at least it won't required daily patching to render it virus free!

Tuesday 8 February 2005

Automated Acceptance Testing

Yesterday I managed to get a long to the Agile Scotland meeting, here in Edinburgh which was looking at automated acceptance testing, and in particular, FIT and Extractor.

Although the talk was interesting, I wasn't entirely convinced by some of the points made.

The idea of automating acceptance testing seems extremely valuable. Acceptance testing is a chore and in reality the customer often fails to do it or to do it effectively. Indeed, in the worst cases the developer relies on the customer failing to do the acceptance testing properly! So, providing an automated tool for doing this testing allows the customer to fulfil their role with the minimum of effort, and provides the developers with a tool to guarantee that their code is up to the test, whenever they want to check it.

The distinction between unit testing and acceptance testing is a little ambiguous. Unit testing is distinguished in that it should be testing smaller units very quickly so that it can be performed as part of every compilation/build cycle. Acceptance testing should be testing the entire package (including the interface) to ensure that everything works together in the way that the customer expects. Acceptance tests do not have to be carried out all the time so they can take longer to perform. In reality a quick test that exercises the whole application would be a useful unit test, and automated acceptance testing is not always easy to do, so it is sometimes necessary to exercise units in isolation: perhaps bypassing the interface, or directly injecting data to provide as test input.

So one of the main advantages of FIT and Exactor is that they present the tests in a form that is more user-readable than your average bit of unit testing code. This allows customers to see and understand the tests as well as seeing and understanding the test results. In theory it also allows customers to write tests, but it was acknowledged that this rarely happens in practice.

Despite some of the ways in which the information was presented, it would appear that these acceptance testing tools are basically layered on top of jUnit, with Exactor being an abstraction of FIT to provide plain text entry of tests rather than using HTML tables as FIT requires.

My main concern is that this solution fails to acknowledge reality. If customers are not really going to write tests themselves, but may do so with the help and assistance of professional testers or developers, then it makes more sense to provide tools which automatically present automated tests and their results in a user friendly way, rather than asking programmers to use yet another entry syntax to code the tests. Having said this, I can see genuine value in the way that these tools enable customers to subtly amend existing tests directly.

Ultimately I think that Apple's scripting technologies provide a nice analogy that is worth looking into.

For many years Apple has provided end users with a scripting language called AppleScript which was designed to allow users (not programmers) to script and automated repeated or complex tasks. The language had a very plain English feel to it that made it easy to understand existing scripts, but gave the illusion that you could write scripts by writing plain English when in reality it was just as demanding of syntax and structure and was very bad at explaining your coding errors when you went wrong.

Apple is just about to release a new version of their operating system (Mac OS 10.4, code-named 'Tiger') which contains a new application called "Automator". This provides a GUI for building scripts which allows you to drag and drop linked operations in such a way that the interface will only allow you to link compatible operations and will only allow you to link them in a suitable order. It doesn't stop you doing pointless or stupid things, but it ensures that you produce a 'script' which works.

Automated Acceptance Testing involving the customer directly will really come into its own when the developer community spends the considerable time involved in making a friendly user interface that will hand-hold customers through the process and allow them to create and edit tests without having to understand any kind of syntax at all.


I almost forgot to mention that there was a reference made to Selenium - a tool for automated testing of web applications directly through a range of browsers. I haven't had time to look into how the tests are defined, but it looks very useful in principle.

 
Google Analytics Alternative