Back Coalescent
Chapters (57)
  1. Cover Page
  2. Title Page
  3. Dedication
  4. ONE
  5. Chapter 2
  6. Chapter 3
  7. Chapter 4
  8. Chapter 5
  9. Chapter 6
  10. Chapter 7
  11. Chapter 8
  12. Chapter 9
  13. Chapter 10
  14. Chapter 11
  15. Chapter 12
  16. Chapter 13
  17. Chapter 14
  18. Chapter 15
  19. Chapter 16
  20. TWO
  21. Chapter 18
  22. Chapter 19
  23. Chapter 20
  24. Chapter 21
  25. Chapter 22
  26. Chapter 23
  27. Chapter 24
  28. Chapter 25
  29. Chapter 26
  30. Chapter 27
  31. Chapter 28
  32. Chapter 29
  33. Chapter 30
  34. Chapter 31
  35. Chapter 32
  36. Chapter 33
  37. Chapter 34
  38. Chapter 35
  39. Chapter 36
  40. THREE
  41. Chapter 38
  42. Chapter 39
  43. Chapter 40
  44. Chapter 41
  45. Chapter 42
  46. Chapter 43
  47. Chapter 44
  48. Chapter 45
  49. Chapter 46
  50. Chapter 47
  51. Chapter 48
  52. FOUR
  53. Chapter 50
  54. Chapter 51
  55. Chapter 52
  56. Other Books By This Author
  57. Copyright

In my last year I traipsed around the milk round of potential employers, trying to find something that would plug into that interest in mathematical logic. I found it in software development—which brings a wry smile to the lips of all my acquaintances who have ever found themselves staring at a blue screen with a baffling error message.

But software ought to be logical. The math underlying relational databases, for instance, accessed by virtually every Internet user every day, is pure and beautiful. There is a whole discipline called “formal methods” in which you set out what you want to achieve and write a program that is a self-proof that it will do exactly what it’s supposed to do.

That was the dream, as I began my career—first in Manchester, and then, inevitably, in London, the center of everything in Britain. When I could afford it I took a small flat in Hackney, and started a gruesome daily traveling routine by bus and Tube. But as I started work, first in the software development departments of large corporations and then in independent development houses, I soon found that rigor was expensive—less so than the cost of fixing all the bugs later, but an upfront cost virtually nobody was willing to pay.

Eventually I drifted into testing, the one place where you are supposed to be rigorous. For a while I prospered. The fashion was for development methods that were, if not formal, at least structured and so open to inspection. I would draw up my test plans covering every conceivable condition the software could take, with predictions of how it should react. I turned up errors at every level from typos in the code to compilation into machine code to fundamental design flaws—but that was okay; that was the job, and it was satisfying to make things better.

But there was a constant pressure to cut costs on testing, which higher-level managers could never quite figure the benefit of, and endless turf wars between competing teams of developers and the testers come to rip to pieces “their” code. I started to be bypassed by development managers who could boast they were delivering something of direct benefit to the end user—and who, unlike me, had significant budgets and teams to run.

Not only that, they were all tall men. It’s always tall men who get on in management hierarchies, no doubt some deep primate thing. I’m a man but was never that tall, so was stuffed from the start. My trace of a Manchester accent didn’t help, either.