The Small Business Consultancy

Archive: Agile

Scottish Developers Mini-Conference in August

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!

We’ve just posted details of the next Scottish Developers mini-conference to be held in Edinburgh on the 3rd August 2006.

See HERE for the full details.

FT Spots Scrum and Not a Ball In Sight!

The Financial Times (FT) has an interesting article on how Scrum is being used by many big companies to deliver projects.

Roundtrip Solutions Limited is proud that we had the first ScrumMaster living and practising in Fife.

eXtreme Geek Talk

Comments Off

Last week’s eXtreme Wednesday turned into more of a Geek Conference than a coding session. We had a chillout week with talk ranging from the virtues of XP, all the way through to why Star Trek Voyager seemed to become much more interesting when 7 of 9 suddenly appeared on the show… maybe the skin tight costume had something to do with it.

Hopefully next week will see a return to typing in code and contributing to the onset of Touchpad Tapping Syndrome!

eXtreme Wednesday: Offset or Index?

Comments Off

First off, a big thank you to all the people who have been commenting on the eXtreme Wednesday postings. I appreciate that you take the time to look at my little piece of cyberspace.

Due to the Edinburgh Festical currently being in full swing, it was decided to move our venue for the duration of the festival to the bar in Ocean Terminal. Feel free to come along to our temporary venue if this is more convenient.

We were depleted in numbers this week due to a variety of reasons or should that be various excuses! Abdel has indeed used the “getting married” and “on honeymoon” excuse for not turning up, Colin Mackay finds it difficult to get across Edinburgh to the temporary venue and Brian Swan is enjoying the festivities going on throughout Edinburgh. Jon Mountjoy is an occasional visitor, so we don’t count him as being an absentee when he doesn’t turn up! Although we were few in number, it was a brilliant session for a number of reasons.

We decided that we’d had enough of attempting to write tests for GUI type code and would do something different this week. However, we still would be doing something for use within the project. To put it simply it was decided upon to code up a list manager. A typical use for it could be a “To Do” list and a “Done” list that has “Do” and “Undo” actions attached.

List manager concept

The “ListManager” class was built up through a number of refactorings. We started with the ability to add items to the “to do” list, moved on to build functionality that could select / deselect an item and evolved into an action to transfer from the “to do” list to the “done” list. At this stage we only had tests and code that could do single selections. A major refactoring later we had multiselection all working and a green Junit bar.

The lines of code count for the session ended at:

92 lines of test code

80 lines of “real” code

We had an interesting discussion on how to reference (index) items in a list such as the one being built. Do we just use the item value and avoid duplicates? Or do we handle the possiblity of duplicates? Or do we have a unique indentifier for each list item?

Next week see us trying to implement this with some form of GUI front end. Oh no! Back to the world of GUI testing…

Throughout the night, we had a few occasions to prompt Andy, whom was so immersed in the art of writing lines of code, that he had missed some of the higher level thinking that is part of the test and code writing process. The key point to this is that Test Driven Development (TDD) isn’t easy and even experienced people require the support offered to them through pair (or threesome) programming buddies. Our combined talents ensured we had a comprehensive list manager and test suite at the end of the evening.

One of the most interesting discussions was on the use of the term “Index”. It has commonly come to mean anything that has 0 (zero) or 1 (one) starting base. Andy pointed out that in purist forms:

  • Indexes are 1 based
  • Offsets are 0 based
  • But, Java arrays are zero based and Sun have decided that all parameters refer to in the documentation are referred to as “index”. Shouldn’t they have used offset there? Does this now mean we should use offset correctly when programming in a language that doesn’t following the correct definition? Well this is a difficult one for us perfectionists, but in this case it is better to follow the convention being used in the language and project, so “index” it is for us!

    Touchpad Tapping Syndrome

    Many of us use notebook computers on a regular basis. The majority of notebook users are happy to use the predominant mouse technology - the touchpad. However, during the eXtreme Wednesday gathering we got talking about this technological marvel.

    Some developers hate the fact that the touchpad seems to generate mouse clicks at random while tapping on the keypad. This has led to them favouring a normal mouse and then having to find a surface big enough for both the notebook and a space for the mouse to move about on.

    But all this talk got me thinking about how most users are happy to use the tap-tap technique on the touchpad membrane. Are we storing up a new illness for tomorrow? Will we soon be seeing new court actions being taken against touchpad makers for sufferers of:

    “Touchpad Tapping Syndrome”

    This story was started in jest but maybe there will be some truth as we move into the future …

    ScrumMaster or Scrum Master?

    Comments Off

    After initially becoming certified nearly a year ago, I would always state CSM as “Certified Scrum Master”, but within a few months I became aware of more experienced CSMs and ControlChaos, the definitive source of information on Scrum, stating it as “Certified ScrumMaster” - no spaces inbetween the Scrum and Master.

    However, today I noticed a topic on one of the Scrum mailing lists that showed the community of CSMs, and more importantly the Gurus of Scrum, stating it in the spaced form. A quick search on Google revealed both spellings in existence in the wild.

    Mike Cohn has informed me that the non-spaced version is the pure form. Or should that be the spaced version is the incorrect spelling?

    This is now an interesting dilemna! To get maximum coverage on search engines both forms will need to be used judiciously… so here goes ….

    John A Thomson - CSM - Certified Scrum Master - Certified ScrumMaster - Edinburgh, Glasgow, Fife, Scotland, UK

    … and oh yes, “for hire”!

    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

    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.

    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.