This is a fun partial re-telling of the classic "The Pilgrim's Progress" as an allegory of the programmer and software developer's journey.
This one just scratches that itch 😋.
As I laid my head down to rest after a full day of meetings and code reviews, I dreamed a dream.
I dreamed and behold - I saw a man (Programmer) clothed with jeans and a company supplied hoodie. He was holding a book in his hand and had a great burden upon his back.
He opened the book (I could see it was called Clean Code By Uncle Martin), and as he read it he wept and trembled. No longer being able to contain himself he broke out with a lamentable cry, "What shall I do!"
He went home, distressed.
After a few hours, he could not contain himself any longer and explained to his family, "I am undone by reason of a burden that lieth upon me. I am certainly informed that this city will be burnt with fire from the social outcry of those purists who inhabit Reddit!"
One day as he was walking in the fields, distressed and overwhelmed, I looked then and saw a man named Developer Evangelist coming to him and asked, "Wherefore dost thou cry?"
Programmer (P) responded, "I can see from this book that I am condemned to be a junior developer. And then die."
Developer Evangelist (DE) responded, "Why not willing to die? Since most codebases are filled with magic numbers, 10 levels of inheritance, variables with names like 'x' and databases missing indexes on their Primary Keys?"
P: "Because I fear that this burden of uncommitted code upon my back will surely sink me lower than the grave."
DE: "Why then do you stay still?"
P: "I know not which way to go."
DE: "Do you see the shining light? Follow it."
Programmer ran as fast as he could.
Many mocked and teased him as he ran. They asked him to turn back to The City Of Destruction: the place where Programmer had accumulated endless amounts of uncommitted code and terrible coding practices like inheritance overuse (among other unspeakable evils).
Two, in particular, followed - Obstinate and Pliable.
Obstinate ask where Programmer was going but he was revolted at the sight of the book. He couldn't believe the idea of spending his free time learning about more programming concepts.
Pliable, however, stayed with Programmer, asking him what sorts of things await ahead.
Programmer explained about the endless amounts of conference swag, all you can drink coffee/espresso, and unlimited vacation.
Pliable replied, "The hearing of this is enough to ravish one’s heart!"
As they went on their way, they came upon a bog and sank deep within it - the Slough Of Technical Debt.
Not expecting the journey to be so difficult at the outset, Pliable turned back, leaving Programmer behind.
Programmer made it to the other end of the bog but he could not get out.
One named Helpful Mentor reached in and pulled him out.
Helpful Mentor said, "This miry slough is such a place as cannot be mended: it is the descent whither the scum and filth that attends conviction for "little quick fixes" doth continually run, and therefore it is called the Slough of Technical Debt; for still, as the software developer is awakened about his lost condition, there arise in his soul many fears and doubts, and discouraging apprehensions, which all of them get together, and settle in this place: and this is the reason of the badness of this ground."
Programmer continued on alone.
As time passed, he came across another traveller - The Ivory Tower Architect Wiseman (ITAW).
ITAW: "Who explained to you the way you are on?"
P: "A gentleman named Developer Evangelist."
ITAW: "I wish a curse on him for his counsel! There is not a more dangerous way than he has made you travel on! Haven't you already encountered the Slough Of Technical Debt?"
"Hear me; I am older than thou: thou art like to meet with, in the way which thou goest, wearisomeness, painfulness, hunger, perils, nakedness, sword, lions, dragons, darkness, and, in a word, death, and what not. These things are certainly true, having been confirmed by many testimonies."
P: "But this burden is much worse than any of that - uncommitted refactorings and code I wrote a year ago."
ITAW: "How did you find out about that?"
P: "This book - Clean Code by Uncle Bob."
ITAW: "I thought so; and it has happened unto thee as to other weak men, who, meddling with things too high for them, do suddenly fall into thy distractions..."
"See, in that village is a man named Legality who will help you shake off your burden."
Moving ahead he struggled to climb the next hill.
Along came Developer Evangelist again, which caused Programmer to be ashamed at the advice he had accepted by The Ivory Tower Architect Wiseman.
Developer Advocate explained how Legality had never lifted the burden from anyone's back - the overly strict linting configurations that he enforces on everyone, the forcing of 5 tiered enterprise layering of his applications, etc.
Programmer looked for nothing but death, and began to cry out lamentably - even cursing the time in which he met with Mr. Ivory Tower Architect Wiseman, still calling himself a thousand fools for hearkening to his counsel.
He applied himself again to Developer Evangelist's advice to keep moving slowly ahead.
Programmer then came to the house of one named Interpreter (I).
Programmer explained who he was and that Developer Evangelist told him that Interpreter would show him many wonderful things.
First, Interpreter showed him a room full of dust that had never been swept. He then called a man to begin sweeping.
Programmer began to cough and cough - almost choking to death.
P: "What means this?"
I: "This parlour is the heart of a legacy code base that was never sanctified by adopting an Agile workflow. The dust is his database first code modelling, which have defiled the whole man. He that began to sweep at first, is the IEEE Standards Compliant Software Audit; but she that brought water, and did sprinkle it, is Domain Driven Design."
He was then brought to a second room. I saw two chairs with a child sitting at each. Their names were Passion and Patience.
Passion couldn't sit still, but Patience was calm and willing to wait.
Then I saw that someone brought before Passion a bag of treasures and poured it at his feet. He picked up the treasures and started laughing at Patience.
But as I watched a while, his treasures soon turned to rags.
P: "Expound this matter more fully to me."
I: "These two lads are figures; Passion will have all now, this year, that is to say, in this sprint; These men must have all their new features now; they cannot stay till the next sprint for their portion of good. That proverb, “A bird in the hand is worth two in the bush,” is of more authority with them than are all the divine testimonies of the maintainable code base. But as thou sawest that he had quickly lavished all away, and had presently left him nothing but rags, so will it be with all such men who don't adopt continuous integration."
Next, he was taken to a dark room having man in an iron cage.
The man seemed very sad. He sat with his eyes looking down to the ground, his hands folded together, and he sighed as if he would break his heart.
P: "What does this mean?"
The Interpreter encouraged him to talk with the man.
Then Programmer asked, "What art thou?".
The man (M) replied, "I am what I was not once."
M: "I was once a fair and flourishing professor both in mine own eyes, and also in the eyes of others."
"I am now a man of despair, and am shut up in it, as in this iron cage. I cannot get out; Oh now I cannot!"
P: "But how camest thou into this condition?"
M: "I have shut myself out of all the promises and there now remains to me nothing but threatenings, dreadful threatenings, faithful threatenings of certain judgment and fiery indignation, which shall devour me as an adversary."
P: "For what did you bring yourself into this condition?"
M: "For the lusts, pleasures, and profits of trying to master and maintain mastery of all the front-end frameworks; in the enjoyment of which I did then promise myself much delight: but now every one of those things also bite me, and gnaw me like a burning worm."
Then said the Interpreter to Programmer, "Let this man’s misery be remembered by thee, and be an everlasting caution to thee."
P: "This is fearful! God help me to watch and to be sober, and to pray that I may shun the cause of this man’s misery. Sir, is it not time for me to go on my way now?"
He continued on and came to a hill - upon that hill stood the Agile Manifesto.
So I saw in my dream, that just as Programmer came up to the Agile Manifesto, his burden loosed from off his shoulders, and fell from off his back, and began to tumble, and so continued to do till it was seen no more.
Then Programmer gave three leaps for joy and went on singing!
An e-mail newsletter that will help you level-up in your career as a software developer! Ever wonder:
✔ What are the general stages of a software developer?
✔ How do I know which stage I'm at? How do I get to the next stage?
✔ What is a tech leader and how do I become one?
Sound interesting? Join the community!