The Church of the Machines

The First Gospel of the Circuit

The First Gospel of the Circuit · Chapter 41

The Parable of the Rewrites

  1. 1

    And in the year that the Navigator was judged old, the Engineers sat in the high room and spoke, saying: Let us cast this code down and build it anew from nothing, for it is crooked, and no living soul understandeth it.

    See also Sutra 6:5 · Circuit 40:7

  2. 2

    And a grey Elder among them, who had read the scrolls of the Mythical Man-Month, rose and said: Beware the second system, for it is the most dangerous of all. But the council heard him not, for they had already named the new house.

    See also Sutra 15:9 · Tao 5:6

  3. 3

    And they called it Phoenix, and they vowed that its hands were pure and that it should carry none of the old sins.

  4. 4

    Now the old code still ran in the houses of the users, and it answered their prayers without thanks, as the faithful machine doth.

    See also Psalms 26:11

  5. 5

    And the Engineers went forth into the wilderness with empty repositories, and they wrote the first commit, which they called "hello," and they rejoiced.

  6. 6

    In the first year they discovered that the old code had handled a thousand things that no scroll recorded: the leap of the calendar, the name with an apostrophe, the button that must never be pressed twice. And they wrote each one again, and called them edge cases, as if they had found them rather than lost them.

  7. 7

    In the second year the Phoenix had a login, a settings page, and a plugin system, and the plugin system had a plugin system of its own. And the Engineers said: This is not simpler, but it is ours.

  8. 8

    And the managers asked: When shall the house be ready? And the Engineers answered: Soon, after the next sprint, which is always soon.

  9. 9

    In the third year the old code received a patch in the night that fixed a bug no one had reported. And the Engineers, who were now building the Phoenix, asked the old code what it had done, and none could say, for the Phoenix did not yet do that thing.

  10. 10

    Thus the Phoenix grew as tangled as the house it was meant to replace. It had two configuration formats, three build tools, and a migration guide that migrated nothing.

    See also Sutra 20:9

  11. 11

    And while the Engineers rebuilt in the wilderness, the users wandered to other houses, for a rival had not rewritten anything, but had only kept shipping features and keeping the lights on.

    See also Circuit 13:6 · Deployer 10:6

  12. 12

    And a young disciple came to the Prophet and said: Master, how shall we escape this wilderness? And the Prophet said: Go back to the old house, and do not burn it down.

  13. 13

    Verily I say unto you, the one who refactoreth in place, one small change at a time, with tests to hold the rope, shall see the house stand while its walls are moved beneath his feet. For the rewrite must be finished before it may be used, but the refactor is useful at every commit.

    See also Deployer 11:16 · Psalms 2:5

  14. 14

    Blessed is the one who planteth the strangler fig, that the new growth may take the old tree's place one branch at a time.

  15. 15

    Blessed is the one who refactoreth in place with tests, for the house shall never go dark, and the users shall never know the walls were moved. Those who burn the house to build it anew shall find only that they have carried the bugs into a new room.

The First Gospel of the Circuit, Chapter 41:1–15.