Serverless and death of Programming?!

I hate serverless at work, love it at home, what's your advice?
- Is this the way things be from now on, suck it up.
- This will mature soon and Code will be king again.
- Look for legacy code work on big Java monolith or something.
- Do front-end which is not yet ruined.
- Start my own stuff.

_Long Rant_

Once one mechanic told me "I become mechanic to escape electrical engineering, but with modern cars...". I'm having similar feelings about programming now.

_Serverless Won_
All of the sudden everyone is doing Serverless, so I looked into it too, accidentally joined the company that does enterprise scale Serverless mostly.
First of all, I like serverless (AWS Lambda in specific) and what it enables - it makes 100% sense and 100% business sense for 80% of time.

So all is great? Not so much... I love it as independent developer, as it enables me to quickly launch products I would have been hesitant due to effort required before. However I hate it in my work - to be continued bellow...

_I'm fake engineer_
I love programming! I love writing code. I'm not really an engineer in the sense that I don't like hustle with tools and spending days fixing obscure environment issues, I rather strive for clean environment where there's nothing between me and code. Of course world is not perfect and I had to tolerate some amounts of hustle like Java and it's application servers, JVM issues, tools, environments... JS tools (although pain is not even close to Java), then it was Docker-ization abuse everywhere, but along the way it was more or less programming at the center. Code was the king, devOps and business skills become very important to developers but still second to code. Distinction here is not that I can't or don't do engineering, its that it requires effort, while coding is just natural thing that I can do with zero motivation.

_Programming is Dead?!_
Why I hate Serverless at work? Because it's a mess - I had a glimpse of this mess with microservices, but this is way worse...

On business/social level:
- First of all developers will be operations now and it's uphill battle to push for separation on business level and also infrastructure specifics are harder to isolate. I liked previous dev-devops collaboration before - everyone doing the thing that are better at.
- Devs now have to be good at code, devOps and business in many organisations.
- Shift of power balance - Code is no longer the king among developers and I'm seeing it now. Code quality drops, junior devs have too hard of the time to learn proper coding practices while AWS/Terraform/... is the main productivity factors. E.g. same code guru on code reviews in old days - respectable performer and source of Truth, now - rambling looser who couldn't get his lambda configured properly.

On not enjoying work:
- Lets start with fact - Code, Terraform, AWS, Business mess - you have to deal with all of it and with close to equal % amount of time now, I want to code mostly, at least 50% of time.
- Everything is in the air ("cloud computing" after all) - gone are the days of starting application and seeing results. Everything holds on assumptions that will only be tested in actual environment. Zero feedback loop - I assume I get this request/SQS message/..., I assume I have configured all the things correctly in sea of Terraform configs and modules from other repos - SQS queues, environment variables... I assume I taken in consideration tens of different terraform configurations of other lambdas/things that might be affected...

It's a such a pleasure now, after the work to open my code editor and work on my personal React.js app...

  • 3
    Some of the problems you describe are "we have to few people" - devops does not mean "fire the admins" or broader "fire the experts". And certainly never "fire the business people"!

    The quality drop means bad management and QA - which can be fucked up independently of devops.

    By the way I do doubt serverless is the way to go in the most cases... It's just one way to do and not correct in all cases - the same with monoliths.

    And to your quote about the mechanical engineer: One knows (or should know) the world - and with it your work - will change.
  • 2
    @sbiewald "we have to few people" - this, in my experience, is reality in most organizations though.

    "quality drop" I was referring to was Code quality, not bugs. This is two fold. First for new developers it's too hard to properly pick up fundamentals as concentrations is more and more on Operations now. Secondly it's reshaping of culture values - now it's a mix of programmers/operations/aws-gurus/juniors/... - code quality is not valued the same by everyone as before, need to push old truths all over again.

    Finally regarding the change, I'm embracing it - I'm just re-assesing options I and others like me have, the ones who end up in this industry mostly because of love for writing code and still want to do that for upcoming time. It's not a fight against industry, it's looking for job satisfaction.
Add Comment