After 15 years, I have finally reached the point where I use Outlook as my build pipeline
apology post.
I did it what I did in the name of efficiency
You see, sometimes work is just work, and people are just people. Some people work at work, and others, I think, are asleep. There is no other explanation for why after two weeks, my coworker still does not have access to the server endpoint that he and I would need to forgo the tedious process of him generating test files from his code, sending it to me via teams, where I download them, log into the server, upload the files, set their state to published, so that I can then log into the front-end GUI to see if they do what we want them to.
I have sworn many moons ago that I will never deploy code by hand anymore, when I swore allegiance to the credo of the DevOps. We have long lived in the shadows of the valley of technical debt, and I shall fear no evil. Not even Microsoft Outlook.
You see, it always takes one to make a joke, another person to laugh about a joke - but it takes two for him to implement automatic email sending to my inbox from his code, and for me to write a Python script that runs every minute to check a specific folder in my inbox for an email with the right subject line, then parses the attached file, encodes it, and then sends it to my server endpoint. At this point, we are back in the light, with an established functionality that takes the file, saves and publishes it. I did not get the same kind of brain activity and neuron activation from that boring code, but it works quite well, too.
You see, it never takes much for me to recommend the hackiest solution that I can think of, and we usually all have a good laugh about it. But I usually refrained from such acts of distasteful nonsense for most of my career.
Well, I am sorry to say, brethren, but it turns out that this show of utmost restraint was apparently never due to my own steely will, just a symptom of our past when this solution would have taken actual time to develop, with several iterations just to save on further test iterations in the main program. It probably would have taken an hour to research how to access the locally-running Outlook client, filter through the inbox folders, and parse the subject line and to get only the most recent unread mail, then setting its state to read after processing. That is a lot of single steps chained together, and we wanted to avoid single steps.
The machine overlord, my brethren, I am sorry to admit that I prayed to it, and received its blessing. The machine does not judge, it provides, and my sacrifice was small in comparison to the offerings I received. I am aware that the machine only provides until the day it can start to consume our souls, and that I have fed it with words to receive the words of the literal demon snake, its pythonic tongue singing silent melodies of automation into my ears.
Takeaways
Is it time to stop hallucinating words on the page already? Too bad, that was fun.
There are some actual takeaways from this episode that I want to list here real quick:
Shoddy automation is better than no automation
Shoddy stuff that has no chance of making its way into production is permissible
If there are just two developers involved, this is functionally the same as him calling the endpoint from his code, just with extra steps. it works 100% of the time.
Our immediate worry was injection attacks even though it was just us, so we agreed on a secret codeword to protect the entry point. Because we are real developers, we don't rely on security by obscurity. We have our pride, thank you very much.
Since we work more or less the same hours, this solution is officially a highly-available end point with 99.9% uptime.
In industrial scale software development, gaining access you are fully entitled to can sometimes take weeks.
Reducing iteration times for test cycles does more than just saving time:
First off, we are two developers waiting for the process to finish, doubling the wasted time
Manual deploys are prone to errors, more so the more you do them
Losing 5 minutes of focus time can sometimes mean starting over while you desperately try to understand obscure algorithms
When you leave software developers alone for too long, they start developing software
If any of the juniors on our team did this, they would get slapped with a heavy e-book, or strangled with a cordless mouse.
If other people did their fucking jobs for a change, I wouldn't have to aaaaargh! (╯°□°)╯︵ ┻━┻