4. Your Job as a Software Developer
Listen here:
Episode 4 on Anchor.Fm
Episode Description / Notes:
You would think it's obvious, right? All is not as it seems though!
There's a reason we do what we do, and it might surprise you that it's not just about the craft...
I'm going to share a lesson that I learned over 10 year ago, in the hopes you don't make the same mistakes that I did!
#SoftwareDeveloperTips #SoftwareStories
As usual, if you've any further questions, then you can reach me at speakingsoftwareshow@gmail.com
Episode Script:
Welcome to this episode of SpeakingSoftware. I'm your host Philip, and together we're going take another look at the soft side of Software Development.
Today's topic is one in our series of Opinion Pieces. We'll talking about Your Job as a Software Developer.
Lets get right into it!
—————
I wanted to talk today about a career defining moment, which thankfully happened very early in my time. You know those like little epiphanies you have, that internal “ping!” and everything just makes sense afterwards.
So when I started as a software developer, way back when, there was a concept that I struggled with. It took me a very long time to learn it and that concept was ... why the company hired me. I mean, I thought that I knew the answer (which was course my brilliance), but that thread started to unravel very quickly once that was put to the test.
So, over ten years ago - young Philip - bright eyed and bushy tailed, right out of college, was lucky enough to land a gig that started the week after my final exams. I was employed before I even graduated. This was the dream! It was working on real projects, with real clients, in a consultancy/agency scenario. The projects were all in different technologies, I was told that there was ever a dull moment, and I’d never ever be bored. What I didn’t count on, was that they’d be right.
From day one, it was just constant fire-fighting and duck-taping. Day-in and Day-out, I was assaulted with phone-calls and tasks. In the morning I could be working on a Dark-mode Style-sheet for a website, and in the evening spend hours debugging a database issue with a proprietary eCommerce system. I was trying to keep up with all of the different technologies and frameworks, but I was sinking fast. We would have 2 -4 hours max to complete a task – from planning to delivery, and thinking through the requirements I would have needed 2-4 days. They hadn’t considered all of the angles, and to do things RIGHT (by my estimation) required more time.
My evenings were just a continuous blur of YouTube and Pluralsight videos, Forum Searches and trying to fix bugs that I managed to replicate on my home computer, so I’d be prepared for the next day. My eyes and hands literally ached during the following days from all of the note-taking I did at night. Part of my nightly reading was Developer blogs. These people were the rock-stars of the development world. We were literally using some of the frameworks and tools that they they conceived and created. They know our problem and I hoped they’d have some insight into what I was doing wrong. Every post I was reading extolled the sanctity of the craft. Nothing was worth doing, unless it was done right. Don’t even bother, if the work you were going to do was not going to be not just impeccable, but also a shining example of your brilliance and ingenuity. As a new impressionable developer, I was trying to live up to this but it caused me to be behind quite quickly, and I couldn’t catch up.
What I didn’t realize at the time was that this kind of advice or rambling, while admirable, idealistic and certainly a goal to work towards; it just wasn’t really meant for people at my level. That's not to say that young Philip couldn’t be a good developer, its just that young Philip wasn’t really experienced enough to know the difference between the craft and the industry – the technical use-cases vs the business needs. There's a great big divide there. And I struggled with this for months, falling farther behind targets and generally feeling like a fake and failure. I regularly argued with my bosses when they recommended I take shortcuts, or easier solutions. To me they were cop-outs. I was the developer, and they were wrong. The angrier my bosses got, the more my mood fell. I dreaded going to work, but then ironically also ended up staying there later and later in the evening trying to solve everything as perfectly as I could. It just kept getting worse.
After about 4 months of this, everything came to a head in an argument with my boss. What started a as a discussion became heated, then progressed into an argument and finally into a full-scale shouting match - where he ended up exasperatedly shouting “Just do what you’re flipping paid for!” “Well if it isn’t to craft software, what the flip is it?!” I shouted back. My boss’s face suddenly dropped; He knew exactly why I wasn’t performing. He told me very sternly to go back to my desk and calm down but that I better be ready to leave at 6 pm. We regularly stayed in the office until like 8 or 9 pm, so when I returned to my desk I was sweating that I had pushed it too far and 6 pm would be my final clock-out. I was done.
6pm came, and instead of being shown the door, we instead hit a bar we could access through the back of the building. We made awkward small talk for a few mins, made more awkward by our large age difference and the fact I was convinced I would be hired. Finally he asked me “So do you know why we hired you?”. I took a big long sip of my pint before responding. “To craft software, right?”. “Wrong.”
“The reason you were hired, wasn’t to write software.” He explained. You brought you on, because your skills seemed promising, and we thought you’d fit well with everyone. And obviously you were hired in a Software Developer position, but you weren't hired to write the greatest software ever or develop the next Facebook, or even like improve the way we do things.” This perplexed me. “Then why am I here?” I asked. “To make us money”.
Boom! Young Philip’s little brain exploded. I had come through University, and basically been bombarded at every step to become this Master Crafts-person of Software. Every Class, book, tutorial, project and exercise was about writing more efficient software, solving more complex problems and just amassing this massive repository of technical knowledge. However, along the line, the end goal of “why” wasn’t really... discussed. Or mentioned. We were learning about and writing software to cure cancer, and solve logistics issues, and detect money laundering. Making a profit for someone (other than ourselves) just never really factored into it. The rest of the conversation flowed smoothly as pints turned to whiskies and the lines between late and early blurred.
The rest of the conversation can be summed up in two points though. Our job as Software Developers is to:
Create and/or Maintain systems that generates Revenue
Don’t do anything that causes those systems to fail or work incorrectly, and as such cause the company loses revenue or goodwill.
It wasn’t to be the ultimate masters of your craft. While we were expected to work as smartly as we good, we weren’t supposed to get in knots over this stuff. It was to complete out tasks as quickly and responsibly as possible (given the assigned time). That was how they made money. While for some of you Senior Developers who’ve been around the block a few times - this might be a real “duh!” moment! I know right! But for me at the time 10 years ago it was that aforementioned epiphany. That little ping, like the clink of a glass that signaled an internal change.
I was lucky to learn this early on. Things picked up from there quite quickly once I was on the same wavelength as my bosses and the rest of the team. Knowing how to conform to and balance the business needs is essential for progressing past the code-monkey part of your career. There’s always a deeper reason for doing what we’re doing. Remember – your Job as as a Software Developer – the reason that you were hired – it wasn’t to write software. You were hired to make money.
Feel free to reach out to me if you have questions or queries. As well as the Social media accounts (Look for Speaking Software) you can message me on Anchor.FM or just email me directly via speakingsoftwareshow@gmail.com - I’d be delighted to help in any way that I can and try answer any questions that you might have.
Thank you for listening! Don’t forget to subscribe if you haven’t already.
A Rating, Comment or Share will go a long way towards keeping this going and allowing me to bring new content to you.
We’ve been Speaking Software. Catch you next time!