The Small Business Consultancy

Archive: July 2004

High Performance Outlook Searching

If you're new here, you may want to subscribe to our RSS newsfeed so you don't miss out on all the information, news, tips and tricks.
Thanks for visiting!

Tim Munro of Usable Solutions sent this information to us and we thought you’d like to know about it.

He found an amazing Outlook plugin called “Lookout”, after having read an article that stated how Microsoft were buying the company. At the moment the tool is free and works with Outlook (not Outlook express) on Windows 2000 or later. It is an incredibly quick (virtually instantaneous), rich search syntax tool for Outlook.

RSL have given it a try and it really is a high performance, useful tool. Highly recommended.

It also requires the .NET framework, freely available from Microsoft.

Please note: As always use this information and the links at your own risk.

Trumped by Andy

Comments Off

You may recall the card game of the 70’s and 80’s called “Trumps”. We played a version of it last night!

Abdel pulled out the Refactoring bible. I also have a copy, but mine has been signed by the man himself - Martin Fowler. John trumps Abdel. But Andy trumps John with a signed copy of Kent Beck’s White book.

Damn! Kent! Oh Kent! Would you mind …..

I see there is an online car version of this classic game.

NOTE: As always use the links at your own risk.

A Solution to Pair Programming for One

Comments Off

During this week’s eXtreme Wednesday get together we got into an analysis of pair programming, or more correctly how to be disciplined with TDD when you are a lone developer.

Without developing multiple personality disorder and having a pairing session with your alter ego, a possible solution was to explain the code to an inanimate object. Brian told us the story of a developer who would talk through the code with a rubber duck that sat on his monitor. Ducky, the pair programming buddy for all occasions!

By explaining the code, rather than just looking it over, the developer had to structure his thought processes as if he was informing a peer how everything worked. This process caught many more issues than a quick glance over the code could do alone.

Ducky - a pair programming buddy for any occasion

Developer [to Duckie]: “What ya think?”


Duckie: “Are you serious? That quacks me up! Wait till you get my bill for this session!”

[Sorry folks but I couldn't resist it]

Making a Mockery of TDD

Usual weekly update on the activities of the eXtreme Wednesday Club. This week was going to be a short one due to other commitments, well it WAS until I started to write it up!

Mr Roundtrip was fashionably late, as usual one of the last to arrive. The group welcomed a new member Colin Mackay, aka “The Hard Rock Cafe” T-shirt man. Obviously he had been reading the blog entry from last week, and not wanting to have the same stood up look as Jon Mountjoy he describe himself in advance:

“I’ll be the one in the Hard Rock Cafe T-shirt standing at the bar. My colleagues comment on how I always wear these T-shirts!”

Which got me to thinking, I wonder if he has more than one? I guess so. So how many would you need…

One: not enough.
Two: danger of yesterday’s T-shirt not being dry yet after being washed.
Three: just right. One on the back, one in the wash and one drying.

I must ask him how many T-shirts it takes to work on a daily Hard Rock rotation.

The usual introduction done, we got talking about XP and TDD. Colin told us how his team were doing TDD, but on further examination we discovered they are infact only using NUnit for testing: they write the application code and then the tests. We agreed this was an excellent idea for development houses not doing it eXtreme. Better to have an efficient test suite that can be called upon at a moments notice, which can be run time and time again, than relying on developers doing “some form” of testing post-changes.

For those people who know Andy Swan the following tale may be hard reading. There are a number of things in Andy’s value system, on the minus column stands the notion of using Mock Objects in any code, anywhere, at anytime! I’ll need to para-phrase here, but statements Andy is likely to say about them may look something like:

“Most developers just use them as stubs. The Mock Object guys will tell you they are much more! But in most cases they are just stubs.”


“Its the lazy man’s way of doing TDD!”


“Mock objects are a code smell that something else is wrong with your design!”

Having not looked too much at mock objects I’m still undecided. However, Andy and Brian are usually pretty close to the mark. One of their mates, Rich (welcome to Rich), showed up a little later on. Did I hear Andy fumbly apologising for using mock graphic objects or did my ears deceive me? So how did we use them? I’ll try to describe this, but the lack of code on hand may well hamper my feeble attempts. Actually the code may not help me out here! Surely Andy will blog about it. Andy blog about it please!

We watched as Andy created a MockGraphic class that would track graphic (and text) objects drawn on the MindMap canvas e.g. drawing a central idea saw two objects being tracked: a circle (actually make that an arc in Java terms) and some text. The tests would then check that the MockGraphic log contained the expected details about the GUI element. Later on the mock graphic class and its tests can hopefully be replaced with real tests that will actually look at what is happening on the screen. Result, we had some tests for graphics.

Alas, our feelings of elation turned to dismay when it was discovered that resizing the frame resulted in multiple central ideas, but only when resizing the frame to be smaller. Strange! Suggestions flew fast and furious on how to adapt the code to fix this “feature”. I nearly wrote refactor instead of adapt, but it wasn’t refactoring, it was more like controlled hacking. We had a laugh about being nothing more than hacks! [Note to oneself: must remember to revisit the whole topic of XP coding and when it turns to hacking out lines of code]

After a few minutes we abandoned Andy and Rich to figure out the problem, latching onto Brian and his eXactor automated acceptance testing framework. When I say his, I do mean his! He and one other developer from exoftware are working on its development. Even although it is still “under development” it already looks to be very useful. We were all well impressed, especially Abdel who is currently looking for that one panacea that can see the whole concept of XP being adopted within his organisation. Perhaps he has found it. Only time will tell.

It was just about this time that Andy was starting to tidy the laptop away! Hold on one god, damn minute! “Did you get it fixed?”, was the call from me. Oh yeah of little faith, of course he and Rich had figured it out. The resizing problem had been due to using JComponent. Perhaps this is a problem with JComponent? They had replaced JComponent usage with JFrame (or was it something else - only a few hours and already the memories are fading). Kudos again to Andy and to Rich.

Laptops away, we got the chance to chill-out and relax. Talk turned to Agile books worth reading, which led onto a discussion on version control systems.

  • SourceSafe - blah!
  • CVS - mmmm!
  • Subversion - Anyone used it?
  • Perforce - The dog’s bollocks!

Rich gave us the low down on Perforce, which incidently has a two developer free license model. Let me see if I can get this correct:

“It is an atomic transactional VCS systems that allows developers to link to any version, blah, blah, blah!”

Go see their site, it is all there!

We had a wee discussion on how we should use the Wiki, since I don’t want to see it becoming a mess from day one. Abdel did try to impart the notion that this is what they are for, but I negated his line of argument by the following, simple statement:

“But we don’t want to see it just becoming ssspluuurp!”

[It was actually more of a morning after a good curry and a drinking session noise!]

Talk turned once again to one of our favourite blogs, The Bile Blog. Andy informed us of the advice Hani once gave on increasing traffic to your blog. It went something along the lines of take someone or something and take the exact opposite view to what ever the community thinks. Did I mention that we are really lucky to have Andy and Brian as our mentors. They just know so, so much :-).

We played a game of “trumps” but that’s another story for another posting…. see the next posting.

Abdel attempted to make a few exits over the course of the next hour, but our banter and joviality where just too much of a draw. Almost sure that I heard Abdel saying something along the lines of,

“I keep trying to get out, but they keep PULLING me back in!”

or was that Al Pacino in Godfather III?

Good job done, it was up to Mr Roundtrip to act as chaffeur for Abdel and Colin. Dumped Abdel off in the middle of Stockbridge. Wonder if we can try ejecting him while the car is still moving? This could make it interesting! Maybe we’ll let him get married before try it.

Colin and I then discussed how he had found the evening. Now he is a pretty smart guy, but even his head was hurting attempting to get to grips with the paradigm shift called “eXtreme Programming”. The first steps had been taken down the road to enlightenment and he seemed to have a new glow! We have a new convert my friends, long live the revolution!

This weeks lesson: Mock Objects do have a place and time.

Feel like your missing out? Like to come along? Come on you know you want to! We’d love to see more people coming along.

Let the Features Drive You

Comments Off

Went along to the Feature Driven Development talk being run by Agile Scotland. An excellent session, by one of the FDD leaders David J Anderson, who talked for nearly two hours about his experience of building software and how FDD helps. He went on for a further thirty minutes answering questions, one of which was from me on tool support, before we all retired to a local drinking establishment where the I.T. talk continued.

It would also appear that a week is a very long time in I.T. and software development. On Monday, David had no idea of any available tools for FDD, but today saw the Agile Alliance announcing a tool designed for just this task:

FDD Management Tool

What to do when your system is compromised?

Comments Off

Microsoft have a couple on articles of interest that goes into system compromise.

Help: I Got Hacked. Now What Do I Do?

Help: I Got Hacked. Now What Do I Do? Pt II

Bottom line is that any system that has been compromised must be rebuilt from scratch if you want to ensure the system is restored to safe working order.

Making systems absolutely secure is inversely proportional to usability and usefulness. It is possible to make a computer completely 100% secure: leave it switched off, never to be used and ensure it is placed in a vault!

The Prince, the Priest & the Painted Breast

Comments Off

Prince Joe's initation photo

We’ve all had those SCAM emails from people purporting to be the Prince of this or Minister of that. They tell us about millions of pounds waiting to be transferred into your account. All we have to do is send them details of our bank account and maybe some money to handle the transaction costs. Ever thought about what would happen if you actually took them up on their offer?

You can find out by reading this story from 419 Eater. It is a long but fantastic tale - highly recommended.

RssReader on Tosh

A few months back my Toshiba notebook was rebuilt after about twelve months of use. Most developers and I.T. professionals find the need to rebuild their systems on a regular basis, sometimes far more frequently than annually. It had been running slow, appearing to freeze and took forever to switch between applications.

It was running a treat until the usual set of applications was installed and loaded up. The problem was back and on a fresh build! You probably heard the screams of pain all over Fife. The problem lay with one of the applications, but the usual Windows system tools didn’t reveal any single application that was loading the system. I’d been threatening for weeks to get this sorted but it could be a time consuming operation and I never seemed to have the time to get down to fixing the issue. Today saw it fixed.

It would appear that RssReader is causing the problem. As soon as it is started the system becomes sluggish, unload it and the system goes back to a rocket ship. Looks like all the news feeds will now need to be transferred over to another news aggregator. SharpReader is being favoured at the moment. In fact, it was while testing it that the problem with RssReader was discovered.

Anyone got any other suggestions for a news aggregator for Windows XP Pro?

A Not So eXtreme Wednesday

Trundled along to the regular eXtreme Wednesday meeting last night, slightly late as usual! Abdel was already sitting there with his head in the purple book. For those not familiar with the book terminology used in XP circles, there is a series of books published by Addison Wesley that are the defacto standard for XP. The books are referred to not by their title, but by their colour.

It appeared that Abdel and I were the only attenders on this evening. Andy Swan had given his apologies last week, mumbling something about being in Japan. Still not sure what this had to do with him being missing, but I’m sure he’ll explain his lack of committment at next week’s meeting. Pete has now moved over to Glasgow where he is going to be starting up another XP group, all based on a suggestion I made on Scottish Developers. It is encouraging to see such enthusiasm for XP in the developer community wherever they may reside. Andy Cooke is away on a holiday which I suppose is a semi-decent excuse. As for the others, I don’t know - I can feel a Spanish Inquisition coming on!

With the lack of any mentors, with a lack of Java Swing knowledge, with a lack of XP knowledge for such situations, well all I can say is we sat and twiddled our thumbs for a few moments! What can we do? Let’s get the story cards out and have a look. Mmmm! Still no luck. All the stories for the first and second release plan are heavy GUI tasks! Perhaps this idea for a Mind Mapper isn’t such a great idea with so many newbies.

I suspect if this was a real world, commercial project, a number of us probably wouldn’t have made it onto the team. This is a common observation made by many observers of Agile methodologies! However this is a group for learning, a group for personal development, so it looks like we will survive, well for the time being.

It was during this analysis session that we were approached by a guy who had made his way over from the bar. I remember seeing him standing at the bar while I was ordering a drink: a poor soul who looked as if they had been stood-up! But no, he hadn’t been stood up! He was waiting for the geeks with laptops to appear, and only once Adbel had actually pulled it out onto the table was he able to identify the eXtreme Wednesday crowd. At last I had met Jon Mountjoy, someone I had corresponding with, via email, for the last few weeks. Great we now had an excuse reason for not doing any programming: we had to introduce Jon to the group, our structure, philosophy and what we were doing. Likewise, he introduced himself to us.

During these discussions we identified some items from our wishlist for the group and our new member was instrumental in providing information that allowed us to go do. One of the items near the top of our wish list was the creation of a Wiki, but none of us had a familiarity with any php & mySQL based framework that would happily run on a LAMP (Linux, Apache, mySQL and PHP) hosting solution. We discussed various possiblities, but Jon strongly recommended MediaWiki, which is used on such projects as WikiPedia.

The discussions went onto a generic talk on software development and more inparticularly how Agile was changing the landscape for developers. A comment was made on how Test Driven Development / Design (TDD) was the practice most commonly adopted first within organisations transitioning to XP. Now comes the quote of the week, perhaps the month, maybe the year:

“Test driven development can save your marriage!”

After the chuckles had died down, Jon was queried what he meant by this statement.

“Well with TDD you can sleep at night! You know the code you’ve just written hasn’t broken anything because your tests still pass.”

This was most interesting to Abdel, who is only three weeks away from a marriage ceremony where he will be a principle. I suspect he may well use this in future debates with his better half when she charges that he is spending too much time on the computer. I can already hear the words from him,

“But honey! I’m trying to save our marriage using TDD!”

Side note: Let’s hope that he doesn’t think that going on honeymoon is a legitimate excuse for missing eXtreme Wednesday weekly gatherings.

I wonder if Relate and other relationship counselling organisation know about TDD. Maybe I’m missing the point!

However, we all recognised the simple fact that the test had to be well constructed for such blind confidence in our coding to be taken as a given. The writing of acceptance test was considered to be easier than writing the code tests. As a developer the acceptance tests should be easier since they should be delegated to the on-site customer.

There are many XP experts who advocate the development environment should be the same on all development systems. This is something we have so far not been able to achieve since some people preference IntelliJ IDEA, some prefer Eclipse, some prefer EMACS! Jon enlightened us with his experience within a real world XP project, where developers were allowed to have different environments and tools so long as the person they were pairing with also had familiarity and knowledge of the chosen environment. Coding standards was one of the only things that wasn’t open for negotiation: a case of here is the standard, follow it or else! This is also a pet principle that Andy rants about on an almost weekly basis.

Last night didn’t see much XPing, but it did move the eXtreme Wednesday group forward:

  • A Wiki has been set-up and is now running as a mechanism for collaboration and as part of the documentation for our projects. It only took minutes to get MediaWiki set-up and running on our webspace
  • A decision was made to get the mailing list into use by all the members
  • A very worthwhile and experienced new member was welcomed to the group

What lessons did we learn from the evening?

  • XP advocates an experienced team - now we can see why
  • A back-up project for such situations, one that the newbies can work on without having extensive Java experience and knowledge, would be a good idea

A good evening by any standards.

Book Arrives Ready for Next Week

Comments Off

Agile Management for Software Engineering book by David J. Anderson

In preparation for next week’s Agile Scotland event, a copy of Agile Management for Software Engineering by David J. Anderson has been duly purchased. By this time next week it will have been autographed by the man himself and we will all be much the wiser on using the Theory of Constraints (ToC) to build software systems.

Clarke Ching is the regular Agile Scotland Theory of Constraints advocate and expert. He has presentated on this very subject to both Agile Scotland and the Tayside branch of The British Computer Society.

Thanks go to Computer Manuals for a very efficient delivery service and the special offers they currently are running.

Another Agile Event Not To Be Missed

Comments Off

Hubert Smits has announced another well known speaker from the international agile world is coming to Scotland. David Anderson will be visiting us at 7pm on July 19th to talk about Feature Driven Design. Many thanks go to Clarke Ching, who managed to persuade him to come and speak for the Agile Scotland group.

The meeting is in the usual venue: the offices of Currie & Brown (ground floor), the address of which is:
1 Osborne Terrace
Edinburgh
EH12 5HG

Route description: 2 minutes “out of town” from Haymarket Station, turn left, the office is app. 200 yards down the road just before Donaldson’s School/College.

Subject: Feature Driven Development (FDD).

Speaker: David Anderson

Author of “Agile Management for Software Engineering - Applying the Theory of Constraints for Business Results” will be discussing Feature Driven Development and where it fits in the agile world.

Biography -
David Anderson’s Online Bio

David has 22 years experience in the software development business. Until April 2004, he held the position of Director of Emerging Technology at 4thpass Inc - a Motorola subsidiary in Seattle, WA. David was a member of the team which created the agile software development method known as Feature Driven Development in Singapore between 1997 and 1999. David introduced FDD at Sprintpcs.com, the Internet business unit of Sprint PCS in Kansas City, MO, where he reported to John Yuzdepski, VP & GM. He was one of a core team of 8 senior managers and junior execs who created the technical product offer for the launch of PCS Vision. He also launched the Sprint Application Developer program for wireless data applications in October 2001. David had brief spells working as a consultant for Nokia USA in Irving TX, and Eircell in Dublin Ireland.

Earlier in his career he held managerial positions in two startups in the UK - Rombo, a video imaging company - and MDi Systems, a document imaging company. Prior to starting college, David was a leading computer games developer with Ocean Software in the UK with over 20 titles published including the game of the Sylvester Stallone movie “Rambo”.

David holds a degree in Electronics and Computer Science from the University of Strathclyde, Glasgow, UK. His first book, “Agile Management for Software Engineering” was published in September 2003 by Prentice Hall Professional Technical Reference, Upper Saddle River, New York.

GUI Test Code

Comments Off

In our earlier posting, “Writing Test for GUI Elements”, it was noted how difficult it was to come up with a methodology and code to perform testing of GUI / graphic elements.

Andy has posted some comments and code on his blog. See TFD on Graphics Applications for more details. Very interesting indeed.

An Alternative Take on the Sun & Microsoft Deal

Comments Off

This alternative take on the Sun Microsystems and Microsoft deal is very funny indeed.

Writing Tests for GUI Elements

In the regular eXtreme Wednesday meeting we continued on with our project to develop a Mind Mapping application using eXtreme Programming (XP). The first story is to put a “Central Idea” placeholder onto the center of the user workspace. Our estimate for this story was an hour! Three hours of coding later we are still working on the code. How did it go so wrong?

Andy Swan is no stranger to XP, in fact we sit week after week being astounded not only by his knowledge of XP, but also with his knowledge of software development and computer science. However, last night even saw Andy attacking our project from several directions and after a few hours conceeding that we had just spent a few hours on a “spike”. So what was the problem?

One of the biggest problems is the lack of tool support for testing GUIs and the difficulty in writing tests that provide confidence in the test suite ability to reliably test the GUI and more importantly detect problems with it. Considering that Andy works day in day out on applications that extensively use GUIs and many of the Java graphics APIs, it seems strange that we had such big problems. But poor Andy was actually in teaching mode, not pair programming (or three-some programming as it was last night). He was also contending with the XP philosophy of doing the simplest possible thing against what he knew would be required minutes later. A common statement made by people expert in XP, the problem domain and the languages and tools being used to develop applications. Also the standard Java graphics APIs and libraries aren’t exactly the best in the world!

However, us newbies ensured that we mainly followed the XP approach, which at the end of the day revealed three of four different approaches that can be taken to construct our first story into working code. Our strict compliance to the XP approach allowed Andy the opportunity to discover at least three new ways to think about such problems in the future, but more importantly to see that one of those ways is the superior way to go. We got the chance to leech Java knowledge from Andy, although learning at such a rate does cause the head to hurt!

Next week’s session will see us taking a very different approach to the first few tests and lines of code, which has only been made possible thanks to the time we took to try small incremental development steps and attempting different approaches only once they had revealed themselves during the natural course of coding.

Everyone was a winner last night. We all learned something.

Thank you Andy and thank you eXtreme Programming.

No1 Yahoo Scrummaster for Hire

Comments Off

In our previous post, which is titled “No1 ScrumMaster for Hire”, we reported a rating of number 3 on Yahoo when using a Yahoo search for “scrummaster+for+hire”. By placing this as a news story, we have improved our rating on Yahoo and are now number 1 for this search.

This posting will surely strengthen our position on the vast majority of search engines for “Scrum Consultant” and “Certified Scrummaster” searches being performed by people looking for companies capable of performing consulting services on this important Agile methodology!