What Developers Can Learn from the Old Testament
When I wrote Developers Should Read the Classics Too I went from Homer to Plato to Dostoevsky and left out the most printed book of all. Most developers I know have not opened a Bible since school, and many never did. I am not a theologian and this is not a post about religion. You do not have to believe anything to read the Old Testament. A lot of it is stories about people who try to build something, lead a group or survive a disaster, and those are things we deal with too. These stories mean much more than what I take from them here. I only picked the parts that I can use at work. I give the chapter for each one so you can read the original, and most of them are one or two pages long. The exact wording of the quotes depends on your translation.
The Tower of Babel (Genesis 11) Link to heading
Everybody on earth speaks the same language. They decide to build a city and a tower with its top in the sky, to make a name for themselves. They have bricks, they have mortar and they have enough people. Then God confuses their language so that they cannot understand each other, the building stops and they scatter. Fred Brooks has a chapter in The Mythical Man-Month called “Why Did the Tower of Babel Fail?”. He goes through the list. They had a clear goal, plenty of workers, materials, time and the technology for the job. The only thing they lost was communication, and the project died from that alone. I have seen a frontend team and a backend team use the same word for two different things for six months. Nobody needed to confuse their language. They did it themselves.
Jethro visits Moses (Exodus 18) Link to heading
Moses sits from morning until evening and judges every dispute among the people by himself. His father-in-law Jethro comes to visit, watches for one day and tells him “What you are doing is not good. You will wear yourself out, and the people with you.” His advice is to pick capable and honest men and put them in charge of groups of a thousand, a hundred, fifty and ten. They decide the small cases and bring only the hard ones to Moses. I know senior developers who review every pull request, answer every question and approve every design, and then wonder why the team is slow. What I like most is that Moses listens. The advice came from an outsider who had been there for one day, and he took it.
Joseph and the seven good years (Genesis 41) Link to heading
Pharaoh dreams of seven fat cows that are eaten by seven thin ones. Joseph tells him what it means. Seven years of good harvests are coming and seven years of famine will follow them. He advises Pharaoh to store a fifth of the grain in every good year. When the famine arrives, Egypt has food and its neighbours come to buy. Every project has good years, when the system is stable and nobody is shouting. That is the time to write the missing tests, check that the backups can be restored and clean up the part of the code that everyone is afraid of. It is also the time when nobody wants to do it, because nothing is wrong.
Manna (Exodus 16) Link to heading
In the desert the people find bread on the ground every morning. The rule is to gather what you need for that day and no more. Some of them keep extra for the next day anyway, and by morning it is full of worms and it stinks. I have written code for requirements that might arrive next year. When next year came, the requirement was different and my clever code had worms. Write what you need today.
David and the armour of Saul (1 Samuel 17) Link to heading
Everyone remembers the sling and the giant. I like the part just before the fight. King Saul dresses David in his own armour, with a bronze helmet, a coat of mail and a sword. David tries to walk in it and says that he cannot go with these because he has not tested them. He takes everything off, picks five smooth stones from the stream and keeps the sling he has carried for years as a shepherd. The week of a deadline is not the time to try the new framework that everybody is talking about. Go into a hard job with tools you have already used on easy ones. And notice that he was not ashamed to say no to the king’s equipment.
Gideon and the three hundred (Judges 7) Link to heading
Gideon has thirty-two thousand men and he is told that they are too many. Everyone who is afraid may go home, and twenty-two thousand leave. Ten thousand are still too many. After one more test at the water there are three hundred, and he wins with them at night, using trumpets, torches and empty jars. Brooks said that adding people to a late project makes it later. The book of Judges said something close to it a very long time before him. I have seen three people finish what thirty could not, because three people can all know what the other two are doing.
Nehemiah and the wall (Nehemiah 2 to 6) Link to heading
The wall of Jerusalem is in ruins and Nehemiah arrives to rebuild it. Before he tells anyone his plan, he goes out at night with a few men and inspects the whole wall himself. I wish everyone who proposes a rewrite would first read the code like that. Chapter 3 looks like the most boring page in the book, because it is a long list of names. It is the assignment list. Every family repairs one section, and many of them repair the piece that stands opposite their own house. People take care of the part they live next to. When his enemies invite him to a meeting to slow him down, he answers “I am doing a great work and I cannot come down.” I would like to use that reply for some calendar invitations. The wall is finished in fifty-two days.
Job and his friends (Job) Link to heading
Job is a good man who loses his animals, his children and his health without having done anything wrong. Three friends come to see him. For seven days and seven nights they sit next to him on the ground and nobody says a word. Then they start to explain. Suffering is a punishment, they say, so Job must have done something to deserve it. Most of the book is those speeches, and at the end God says that the friends did not speak the truth. Sometimes a system fails and nobody was careless. The first reaction of many managers is to look for the guilty person anyway. The friends were at their best in the first seven days, when they sat there and kept quiet.
Proverbs Link to heading
Proverbs is a collection of short sayings and it reads like the notes of someone who has seen every mistake at least twice. It says that answering before you listen is foolish and shameful (18:13), and I would put that at the top of every bug tracker. It says that pride goes before destruction (16:18), that iron sharpens iron and one person sharpens another (27:17), and that there is safety in many advisers (11:14). The last two are the best case for code review that I know. My favourite is 17:28, which says that even a fool is thought wise if he keeps silent. I try to remember it in meetings.
Ecclesiastes Link to heading
The writer of Ecclesiastes says that he tried everything. He tried wisdom, pleasure, wealth and great building projects, and all of it felt like chasing the wind. “There is nothing new under the sun” is from here (1:9). Our industry proves him right every few years, when it discovers an idea from the 1970s and gives it a new name. He also says that people will never stop writing books, and that too much study wears you out (12:12). I write books, so I felt that one. But it is not a sad book all the way through. He says that two are better than one, because if one falls the other will lift him up (4:9-10), and anybody who has debugged with a colleague knows it. He says that the end of a thing is better than its beginning (7:8). His advice in the end is to enjoy your work and to do whatever your hand finds to do with all your strength (9:10).
The seventh day (Genesis 2, Exodus 20) Link to heading
God works for six days and rests on the seventh. Later the rest becomes a commandment, and it covers the whole household, including the servants and the animals. A team that works every weekend for months is ignoring one of the oldest rules about work that we have.
Where to start Link to heading
Do not start on page one with a plan to read everything. Most people who try that stop somewhere in Leviticus. Genesis and Exodus read like stories, so begin there. Ecclesiastes has twelve short chapters and you can read it in an hour. Proverbs has thirty-one chapters, and reading one each day takes a month. If the old language of some translations tires you, pick a modern one.
I left out a lot. There is nothing here about the Psalms or the prophets, and I am the wrong person to write about them. I only wanted to show that a developer can open this book and find people with problems that look a lot like ours.