Why Software Isn’t Like Building Construction

Many software development and management methods are founded on a basic assumption – that constructing software is rather like building a bridge or a house. Once we’ve “done the design”, actually generating the software ought to be a completely predictable, relatively low-skilled process. However four decades of failure to achieve this vision might suggest that we should revisit
the assumption.

In a paper entitled “The New Methodology” Martin Fowler, the guru of object-oriented development, suggests a couple of reasons why this might be.

My article answers Martin’s, suggesting a couple of other considerations, and whether we have to completely abandon the physical construction analogy as a result.

Read the full article
Posted in Agile & Architecture, Thoughts on the World | Leave a comment

Review: Waltzing with Bears

Managing Risk on Software Projects, By Tom DeMarco and Tim Lister

A good book covering an important and negelected area

This book is an interesting mix. It starts with a philosophical discussion of why it is ethically wrong and success-endangering to ignore risks, but commercially weak to simply avoid them, thus establishing that we must accept and manage risk. The book then develops a comprehensive method for risk management in IT (or other) projects.

It may be surprising where DeMarco & Lister start from, explaining what risk is, why we need to accept it and why we must manage it, but they explain how common attitudes in the IT industry, which they correctly term "pathologies", can make it almost impossible to properly acknowledge and manage risks.

Read the full review

Categories: Reviews. Content Types: Book, Modelling & Analysis, and Project & Man Management.
Posted in Reviews | Leave a comment

Application Development Strategies

I recently attended a day of the Butler Group “Application Development Strategies” Symposium. I’ve just posted a short report on some of the more interesting discussions and presentations.

Almost all of the presentations shared a reminder that we still have a “software crisis” – the vast majority of software projects fail to deliver to their original targets and estimates. The presentations suggested three independent, but not exclusive, approaches to try and resolve the problem:

  • Adopting better, more agile processes to address fundamental weaknesses in “waterfall” processes,
  • Adopting better tools and techniques to improve development productivity and the integration of the application life-cycle,
  • Enforcing a stronger “enterprise architecture” framework for development.

This last one was surprising, with several papers echoing my view that a strong architecture is essential if agile development is to succeed on a large scale or in complex and critical applications.

There was also surprising agreement on things which won’t solve the problem:

  • No-one was promising a technical or product “silver bullet”. This includes web services!
  • No-one was suggesting that we should just “try harder” with old-fashioned tools and processes.
  • There’s no “one size fits all” solution. For example it’s a mistake to force a formal, high-ceremony process onto small business systems developments.
  • Excessive technical standardisation is also not the answer. The drawbacks include “lowest common denominator” technical solutions and inflated costs where the standard solution is “overkill”.

Read my report for more details.

Read the full article
Posted in Agile & Architecture, Thoughts on the World | Leave a comment

Review – My Early Life

I’ve just posted my review of this wonderfull book, by one of the world’s greatest leaders. The book is exciting, inspiring and, most of all, fun. I urge you to read it (and my review)!

Read the full article
Posted in Reviews, Thoughts on the World | Leave a comment

The Laws of Identity

Microsoft have just published an excellent paper by Kim Cameron discussing the characteristics of an “identity metasystem” which must evolve if we are to have proper trust in the Internet and interactions which take place through it.

The paper is also available from the Identity Blog.

The paper’s thrust is that we need to develop a unifying set of identity-related technologies, but that these must observe certain key “laws”, and must accomodate varying technologies and requirements, much as unifying APIs provide access to a variety of hardware technologies.

I started thinking about the most common form of digital identify at the moment, the email address. It can be used in accordance with many of the laws. I can (usually) control when I release it. I can have different identities in different contexts, and choose which one to disclose. The identity is verifiable (to a limited extent) – someone can send me mail to check my address is valid. A variety of service providers and technologies are supported.

The big problem with email, of course, is that I can’t usually verify that email is from the claimed sender. For example, my spam whitelist admits email apparently from microsoft.com, but some of these emails are offers of dodgy mortgages and promises of increased manhood, obviusly not from the claimed source!

As a result, I wonder whether there is a missing “law of identity”. I need to be able to verify a claimed identity by methods I trust. I’d express the law something like “A party must be able to validate any identity claim, particularly its ownership, by reference (directly or indirectly) to resources he or she trusts.” This is implied in the current laws, but might be important enough to promote to a law in its own right.

See http://msdn.microsoft.com/webservices/understanding/advancedwebservices/default.aspx?pull=/library/en-us/dnwebsrv/html/lawsofidentity.asp
Posted in Thoughts on the World | Leave a comment

Growing a Language

I’ve just read a wonderful paper by Guy L Steele, “Growing a Language“. He argues strongly that programming languages must be “small”, but able to grow. Such a language will have a relatively simple structure, syntactic rules, and a small core vocabulary. However it must also be able to “grow”, integrating new data types and functions, in the form of user code accessed in exactly the same way as core functions.

Steele’s argument is highlighted by the paper’s unique style – he uses a small but growing language himself. He writes using only words of one syllable, gradually adding other words he has defined in these terms.

The paper works at many levels. As well as the fascinating intellectual exercise in style, it makes a strong case for:

  • simple but extensible programming languages,
  • improving the extensibility of Java, rather than its core vocabulary,
  • an agile community process for developing languages, rather than up-front design of great monoliths,
  • the communication power of simple language and words.

Steele exhorts us to think about extensibility mechanisms – if we get these right then the core functionality can always grow. And by example, he encourages us to use simple, direct language and benefit from its discipline. On both accounts I agree wholeheartedly.

See http://homepages.inf.ed.ac.uk/wadler/steele-oopsla98.pdf
Posted in Agile & Architecture, Code & Development, Thoughts on the World | Leave a comment

Valuing Flexibility

I’ve just posted my review of “Real Options”, a book about financial market techniques to put a quantitative value on the benefits of flexibility. Unfortunately I was rather disappointed by the book – read my review to find out why.

However, reading the book has prompted me to do some more research in this field. I’m currently looking at whether combining the core valuation equation with probability decision trees might be useful. I’ll post more when I have some results.

Read the full article
Posted in Reviews | Leave a comment

Review: Real Options

Managing Strategic Investment in an Uncertain World, By Martha Amram, Nalin Kulatilaka

A rather disappointing book for the general reader

I was rather disappointed by this book.

I was hoping for something which could help explain to business managers why processes such as IT delivery are uncertain, and the value of delivering flexible solutions. The initial part of the book makes a lot of strong qualitative statements of exactly the right sort:

Read the full review

Categories: Reviews. Content Types: Book, Mathematics & Statistics, and Modelling & Analysis.
Posted in Reviews | Leave a comment

Review: Why Do Buses Come in Threes?

The Hidden Mathematics of Everyday Life, By Rob Eastaway and Jeremy Wyndham

An excellent reminder about why maths is fun

The two messages of this book are that mathematics is important to everyday life, and that it’s fun. Like the earlier books of Martin Gardener, this book aims to make mathematics relevant and accessible, but with a British rather than American slant.

Have you ever wondered why flowers often have five petals, how bookies’ odds work, how you always end up in the slowest queue, or, indeed, why buses come in threes? If so, then this is the book for you.

In the course of a humorous, chatty discourse on the mysteries of life the authors introduce a number of branches of mathematics, including probability, topology, statistics and queuing theory, to name just a few.

Read the full review

Categories: Reviews. Content Types: Book and Mathematics & Statistics.
Posted in Reviews | Leave a comment

Why Do Buses Come in Threes?

I’ve just posted my reviews of two excellent books by Rob Eastaway and Jeremy Wyndham. “Why Do Buses Come In Threes?” and “How Long is a Piece of String?”

The messages of these books are that mathematics is important to everyday life, and that it’s fun. Have you ever wondered why flowers often have five petals, how bookies’ odds work, how you always end up in the slowest queue, or, indeed, why buses come in threes? If so, then this is the book for you.

Whether as an introduction if you’ve never enjoyed maths before, or a reminder if you have, I thoroughly recommend both books.

Read the full article
Posted in Reviews | Leave a comment

Review: How Long Is A Piece of String?

More Hidden Mathematics of Everyday Life, By Rob Eastaway and Jeremy Wyndham

Another excellent introduction to the fun of mathematics

This is a follow-up to the earlier, excellent, “Why Do Buses Come In Threes?”. While the earlier book focused on those annoying little mysteries of life, this asks a set of different questions, many related to tough decisions such as how conmen get rich, or “should I phone a friend?”

Read the full review

Categories: Reviews. Content Types: Book and Mathematics & Statistics.
Posted in Reviews | Leave a comment

Enterprise Integration Patterns

Integration, like other design activities, can benefit from sharing ideas and proven strategies in the form of patterns. An excellent starting point is Gregor Hohpe and Bobby Woolf’s Enterprise Integration Patterns website and book.

In my recent work I’ve discovered a few patterns of my own, and I’ve started a page to document them.

First up is entitled “Change Indicator” . You may have a legacy system with an EAI adaptor, or a similar source of messages, which reports on the current state of key business objects. The messages will typically tell you when something has changed, but not necessarily what has changed, but the latter may be important to downstream systems. This pattern shows how to use EAI elements to add this information in a way which is totally transparent to the legacy system and existing users of the EAI scheme.

Read the full article
Posted in Agile & Architecture, Code & Development, Thoughts on the World | Leave a comment