What Developers Can Learn from the New Testament
This is the second part of What Developers Can Learn from the Old Testament. The New Testament is a much shorter book. It has four accounts of the life of Jesus, one book about the first years after Him and a collection of letters. Jesus taught mostly with parables, and many of them are about builders, farmers, servants and managers. I think this is one reason they are so easy to connect with work. As in the first part, I am not a theologian and this is not a post about religion. The parables talk about things much bigger than software. I only took the small part that I can use on a Monday morning. The wording of the quotes depends on your translation.
The house on the rock (Matthew 7:24-27) Link to heading
One man builds his house on rock and another builds on sand. Then the rain comes, the rivers rise and the wind blows. The first house stands and the second one falls. On a sunny day you could not tell the two houses apart. The difference was under the ground, and it only showed in the storm. Error handling, the data model, the tests and the backups are all under the ground. Nobody sees them in a demo. In the version of Luke, the first builder “dug deep” before he laid the foundation. That was extra work in a place where nobody would ever look.
Counting the cost (Luke 14:28-30) Link to heading
Jesus asks which of you, wanting to build a tower, does not first sit down and count the cost to see if he has enough to finish it. If he lays the foundation and cannot finish, everyone who sees it will laugh and say that this man began to build and was not able to finish. So estimation is at least two thousand years old, and half-finished projects are too. I have a few towers like that in my own repositories. The step people skip is the first one, where he sits down.
The patch on the old coat (Mark 2:21-22) Link to heading
Nobody sews a piece of new cloth on an old coat. The new piece shrinks, pulls away from the old cloth and makes the hole bigger. And nobody puts new wine into old wineskins, because the wine will burst them and both are lost. In the Greek text the patch is ἐπίβλημα, the old coat is ἱμάτιον and the wineskins are ἀσκοί. I have added a modern library to a twenty-year-old codebase and watched the hole get bigger around it. Sometimes the new thing needs a new container, and it is cheaper to admit it at the start.
The speck and the log (Matthew 7:3-5) Link to heading
Why do you see the speck in your brother’s eye and do not notice the log in your own? I have left twenty comments about variable names on a pull request while my own module had no tests. Read the passage to the end, though. It does not say to leave the speck alone. It says to take the log out of your own eye first, and then you will see clearly enough to help with the speck. Review is fine. The order matters.
The talents (Matthew 25:14-30) Link to heading
A man leaves on a long journey and gives his money to three servants. One gets five talents, one gets two and one gets one. A talent was a very large amount of money, and our word for ability comes from this story. The first two servants trade with the money and double it. The third digs a hole, hides his talent and gives it back untouched when the master returns. His explanation is “I was afraid”. He did not lose anything, and he is the one the master is angry with. I think of him when I see a program that is never released because it is not ready yet, or a talk that is never given. Being afraid to fail can look a lot like being careful.
Martha and Mary (Luke 10:38-42) Link to heading
Jesus visits two sisters. Martha runs around the house preparing everything, and Mary sits down and listens to Him. Martha complains that her sister has left her to do all the work. The answer she gets is “Martha, Martha, you are worried and troubled about many things, but one thing is needed.” I am Martha on most days. I have twelve tabs open, three chats and a build that is running. Being busy all day does not mean I did the one thing that mattered that day.
The good Samaritan (Luke 10:25-37) Link to heading
A man is robbed on the road from Jerusalem to Jericho and left half dead. A priest comes down the road, sees him and passes by on the other side. A Levite does the same. Then a Samaritan stops, a foreigner from a people the listeners did not like at all. He treats the wounds, takes the man to an inn and pays for his stay. This parable is about far more than work, but a small version of it happens in every company. There is a test that fails one time in ten, a wrong line in the documentation or an error in the logs that everyone has seen for months. Everybody passes by because it is not their module. In the story, the two who passed by were the ones you would expect to stop.
Faithful in little (Luke 16:10) Link to heading
“Whoever is faithful in very little is also faithful in much.” This is how I judge code that I see for the first time. I look at the small things, like the error messages, the names and the README. Someone who was careful there was usually careful in the places I cannot check so quickly.
Yes and no (Matthew 5:37) Link to heading
“Let your yes be yes and your no be no.” In our job, done should mean done. It should not mean done except for the tests, or done on my machine. “It should work” is not a yes either. The second half is harder. When the date is impossible, the honest answer is no, and it has to be said on the first day and not on the last.
One body, many parts (1 Corinthians 12) Link to heading
Paul writes to a group in Corinth that is arguing about who is more important. He tells them to think of a body. The eye cannot say to the hand “I do not need you”. If the whole body were an eye, how would it hear? Then he adds that the parts that seem weaker are the ones we cannot do without. A product needs developers, testers, people who run the servers, people who write the documentation and people who answer the customers. We developers tend to think that we are the eye.
Doers and hearers (James 1:22-24) Link to heading
“Be doers of the word and not hearers only, deceiving yourselves.” James says that a person who only listens is like someone who looks at his face in a mirror, walks away and at once forgets what he looked like. Last week I needed seven hundred words to say this in Watching Someone Code Is Not Learning to Code. James did it in two sentences.
Test everything (1 Thessalonians 5:21) Link to heading
“Test everything and hold on to what is good.” Paul was talking about teachings and not about software, but I could not leave it out. It is also the most sensible advice I have read about new tools, including code written by AI. He does not say to reject everything new and he does not say to accept it. Test it and keep what is good.
The letters themselves Link to heading
A large part of the New Testament is letters. Paul started communities in cities like Corinth, Thessaloniki, Philippi and Ephesus, and he could not be in all of them at once. So he wrote to them. Each letter answers real problems in one place, and some of them read like a long email from a team lead to a remote office that is having a bad month. He usually starts by thanking them. Then he names the problem without hiding it, and at the end he greets people by name. The last chapter of Romans is almost only greetings. Remote teams lived on good writing then and they still do.
I picked these because they are about building, working and dealing with other people. The New Testament is about much more than that, and other people can write about it far better than I can.