Friday, June 29, 2007

The real solution for the Pasha Bulker

If Transformers was real then imagine the interesting solutions we'd have to daily problems, such as how to get the Pasha Bulker off Nobby's Beach in Newcastle:

Tuesday, June 26, 2007

Software craftsmanship, cathedrals and developer archectypes

I recently came across the online version of the Cathedral and the Bazaar and was particularly struck by this rule:
“5. When you lose interest in a program, your last duty to it is to hand it off to a competent successor.”
Unfortunately I've broken that rule in the way I've handled the Traveller T20 Starship Design Spreadsheet ... fortunately few people would care.

More to the point I started to study how cathedrals were built, as I suspect that there is another analogy that can drawn with them, one of software craftsmanship - particularly as I get paid to build proprietary software, not open-source.

Unfortunately I haven't the time to develop these ideas more now, but I don't want to just generate a bunch of bookmarks to be forgotten later. So here are some of the interesting articles I've come across in this area:

The Meaning of the Arts and Crafts Movement
“The most imposing monuments of man's skill with tools are those great mediaeval churches and halls which were built in England and on the continent during the time when men who worked with their hands still sought through their craft to express the religious feelings and the craving for beauty which were still a glory and a source of humble pride. The stone carver who cut the pillars of Melrose or of Rosslyn or of York, wrought to the glory of God, consciously feeling that if his work was good it was because it was sanctified by its end. He was recognized as one interested in the success of the whole undertaking and could therefore be accorded a freedom impossible today, when the average journeyman has little thought of his work as a means of expression, considering it too often only as a means of livelihood.”

How BLogs and Wikis Can Help Knowledge Management
“From my window, I can see the great cathedral of York Minster, which was built over 700 years ago by generations of skilled craftsmen. They would have learnt their trade through serving seven-year apprenticeships, where they picked up the skills of their craft by observing the more experienced craftsmen.”

Becoming a Better Developer: Know Your Archetype
“Developers come in many shapes and sizes, but over the years I've noticed a handful of archetypes that we tend to embody. These archetypes are the fundamental building blocks of who we are as developers, and two to three of them exist in each of us in varying quantities”

Medieval Cathedrals
“Each master of his own trade ran a workshop for his own particular trade – so a master mason would employ a number of masons who were trusted enough to be considered competent to work on a cathedral as they, themselves, worked towards becoming a master.”

Nine Things Developers Want More Than Money
“Money is a motivating factor for most of us, but assuming comparable pay, what is it that makes some companies attract and retain developers while others churn through them like toilet paper?”

Monday, June 25, 2007

New Wallabies Jersey

The ARU and sponsor Canterbury International have revealed the new Wallaby jerseys for the Rugby World Cup 2007.

Lots of supporters that I know were saying that we should have had this sort of gear in 2003, but better late than never!

Sunday, June 24, 2007

Ease at Work

Kent Beck (from Agitar Software and of JUnit, Extreme Programming and Test-Driven Dvelopment fame) talks about Ease at Work, it's a 7-part video series, so I'm showing them all to make it easy for you (BTW, InfoQ has a great summary of this talk). Here is a reminder of the range of values we can find in the word 'ease', with the ones Kent is using highlighted:
  1. The condition of being comfortable or relieved.

    1. Freedom from pain, worry, or agitation: Her mind was at ease knowing that the children were safe.

    2. Freedom from constraint or embarrassment; naturalness.

    3. Freedom from difficulty, hardship, or effort: rose through the ranks with apparent ease.

    4. Readiness or dexterity in performance; facility: a pianist who played the sonata with ease.

    1. Freedom from difficulty, hardship, or effort: rose through the ranks with apparent ease.

    2. Readiness or dexterity in performance; facility: a pianist who played the sonata with ease.

  2. Freedom from financial difficulty; affluence: a life of luxury and ease.

  3. A state of rest, relaxation, or leisure: He took his ease by the pond.

Friday, June 15, 2007

Pete McBreen on the current state of software development

Pete McBreen shares his thoughts on the current state of software development with As well as disliking ravioli documentation (just add water to the API code) he has the following spot-on summation to make:
“The things that have gone unchanged are as depressing as ever. Managers and organizations still undervalue experience, fail to understand that complex projects are impossible to estimate up front, and are just as resistant to new technology and process ideas as they ever were. I am still seeing people with 15+ years of experience opting out of development, leaving massive holes in organizations because there is nobody left who understands how their entire suite of systems works together. These things might be good from a consulting standpoint, but from the viewpoint of employees and customers, all I see is rising frustration and stress because the systems are becoming more and more rigid and fragile.”

Wednesday, June 13, 2007

Cost Accounting, Lean Manufacturing and the Craftsman Within

InfoQ asks the question Does Cost Accounting Cause Crappy Code? They reference a series of posts by Henrik MÃ¥rtensson and point out other ways that the Theory of Constraints and Lean Manufacturing have affected recent thinking about software development.

Jason Yip is an Aussie a Canuck with interesting views on how lean manufacturing thinking (specifically Toyota's version of it) can help us better understand software development. Norman Bodek has said that traditional accounting systems form one of the challenges for successful lean manufacturing:
The real challenge for us in America is both an accounting problem, the measuring system which puts pressures on management is in the opposite direction of lean, and how we develop people. In our measurement system, inventory is very powerful metric for managers. Managers know at the end of every quarter, especially if they’re a public company, they have to produce as much inventory as possible. I don’t even have to sell it!
Moving away from cost accounting is a hard sell with management (after all that's what their degrees and MBAs taught them to manage), but I've been delving into Software Craftsmanship: A New Imperative by Pete McBreen and it makes the point that software development is more successfully dealt with as craftsmanship than engineering. One of he key points that I've picked up in my reading around lean manufacturing is that it often does not work in the West because we treat it as an exercise in systems development, or engineering, when in reality it is an extension of the well-developed Japanese approach to excellent craftsmanship ... and lifelong employment with the one company, which makes the enhancing of the employee's skills an exercise in capital improvement. Norman puts it this way:
We [Americans] look at people as if they’re expendable. Toyota develops people and teaches them skills, they realize long term success comes from building up peoples’ skills. We say people are our most important asset, but we don’t mean it.
Now I know that most managers would probably chime in at this point to ask where loyalty to the company has gone - because many well-trained people move on to other companies, taking their skills with them. Pete McBreen addresses this issue by making self-development the responsibility of the craftsman themselves - the only responsibility the company has is to value master craftsmen differently from journeymen or apprentices. The "software development is like movie making" meme (see Scott Berkun, Mike Cannon-Brookes and David Friedman at Inc [from 1995!]) gives us a clue as to how this might be handled, with masters bringing their own apprentices and journeymen onto projects they are hired for.

I was lucky enough to have a master craftsman, Richard Jowsey, for the first two years of my professional life as a developer. Whilst Richard was ostensibly on the project to teach us Omnis7, he taught me far more about how to write code, make it maintainable and how to design systems, especially usable ones. Funnily enough he had a patchwork background with a chemistry degree, followed by a stint as a jeweller, travelling extensively, then a psychology degree and practising as one, before buying his first Apple Mac and getting sucked into writing code for his practice ... followed by a long history of software projects (the last I heard he was running Death2Spam).

Richard's depth of personal and life experience, (obviously) keen mind and relentless drive to enjoy life infected me and gave me the first glimpse of the joy to be hand when working towards excellence in a creative field like software development. The two years that followed taught me how to run a team for a large consulting organisation, but they leached the joy out of my work and led me to strike out on my own with my first company to do web development. It is only now, years later, that I appreciate how much Richard taught me about software craftsmanship. When I challenge myself to walk The Long Road it is encouraging to see what I do as craftsmanship rather than just becoming a bigger cog in the software factory.

Friday, June 08, 2007

Rugby: O'Neill is back!

He says he's not the messiah but at this point he is the next best thing for the Australian Rugby Union who have re-appointed him as Managing Director/CEO.
“John will be working with a very experienced senior management team to keep things moving towards the Rugby World Cup in France later this year. I know John has strong views on where Rugby should be going and how it should go about achieving those goals. John has the support of the Board in pursuit of those goals.”
Peter McGrath, ARU Chairman
Hoorah! We might finally get the sport out of the quagmire it's been in since O'Neill left!

Monday, June 04, 2007

Google Gears

This is the very interesting presentation about Google Gears made by Aaron Boodman at last week's Google Developer Day in Sydney:

This is going to make web application development very interesting ... and by that I mean challenging. I'm sure that ASP.NET will end up hiding this functionality under yet another layer of abstraction (abstractions upon abstractions ...) but at the end of the day there are a lot of gotchas with this sort of application that developers will need to deal with, not least being the change in user mindset that is required. After all, where will user data actually reside?

Data replication is a well-understood problem for many thick-client tools, document management tools such as Interwoven WorkSite have one way of handling it, whilst Lotus Notes has dealt with this problem for years. However, despite being well understood by developers, it always seems to cause issues with users - mainly because it violates so many of their mental models of how computers work. One interesting point will be the re-interpretation of the "Offline" mode indicators that these GUIs often use. I wonder what will become the most popular solution to that design problem? (mine is courtesy of My cool button)

There will also be problems in bandwidth poor nations like Australia, where users find their internet bills going through the roof because they are suddenly downloading copious amounts of data during asynchronous data updates with their favourite web applications. Yes, the technology should save bandwidth in some scenarios, but I'm willing to bet a dozen KK donuts that it will leave most users with heftier download numbers than they had previously. At least Google will probably eat its own dogfood with Gmail as one of the obvious first apps to apply Gears to (Google Reader actually looks like the very first one to offer this functionality).