Software Development as a Collaborative Writing Project

  • Brian Bussell
  • Stephen Taylor
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4044)


Software describes an imagined machine. To be software, the description must be executable, which means written so a computer can animate it. Non-executable descriptions (specifications, designs, &c.) are instrumental to this work; they are intermediate texts. We advance a model of software development as the collaborative writing of a series of descriptions. We propose the chief distinction of agile development to be the exclusion from this process of the human translation of intermediate texts. We distinguish supported and unsupported communication. We analyse the success of Extreme Programming in terms of avoiding unsupported communication and prioritising feedback from executable descriptions. We describe functional programming techniques to construct notations that allow programmers and users to collaborate writing executable system descriptions, collapsing distinctions between analysis, design, coding and testing. We describe a metric of code clarity, semantic density, which has been essential to the success of this work. We report the use of these techniques in the Pensions division of Britain’s largest insurer, and its effect on the business.


Software Development Language Game Software Development Project Business Problem Financial Trader 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Graves, R.: The Greek Myths, p. 263. Folio Soc., London (1996)Google Scholar
  2. 2.
    Sykes, M.: Director, Global Markets Finance, Deutsche Bank, London addressing Kx Systems User Meeting; see report in Vector, vol. 21(2),
  3. 3.
    Fodor, J.: The Modularity of Mind. MIT Press, Boston (1983)Google Scholar
  4. 4.
    Wittgenstein, L.: Logische-Philosophische Abhandlung. Cambridge (1922)Google Scholar
  5. 5.
    Wittgenstein, L.: Philosophical Investigations: German Text, with a Revised English Translation Blackwell, Oxford (2002)Google Scholar
  6. 6.
    Taylor, S.: The Experience of Being Understood: on requirements specification as a Wittgensteinian language game,
  7. 7.
    Graves, R.: ibid., p. 291Google Scholar
  8. 8.
    Beck, K.: Extreme Programming Explained: Embrace Change, p. 165. Addison-Wesley, Boston (2000)Google Scholar
  9. 9.
    Beck, K.: ibid, p.131Google Scholar
  10. 10.
    Whitehead, A.N.: An Introduction to Mathematics, p. 59. H. Holt & Co, London (1911), MATHGoogle Scholar
  11. 11.
    Iverson, K.E.: Notation as a Tool of Thought 1979 ACM Turing Award lecture. Communications of the ACM 23(8), See
  12. 12.
    Taylor, S.J.: Pair Programming With The Users. Vector 22(1),

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Brian Bussell
    • 1
  • Stephen Taylor
    • 2
  1. 1.Norwich Union LifeYork
  2. 2.British APL AssociationLondon

Personalised recommendations