Have you encountered projects that were beyond saving?

Been freelancing for a client via agency for the past year. In the beginning the deal was to maintain identity verification sdk for android maybe 10-15 hours a month or so. Their flow consisted of around 25-30 screens, so I took it thinking it was easy. Boy I was wrong.

Codebase was and still is a complete spaghetti, backend weird and overcomplicated and impossible to talk with someone in backend. Had to reverse engineer their complicated flows many times just to make a small change on the app. There also are lots of issues with capturing/sending camera recordings especially on older devices. The fact that Im the only dev maintaining this doesnt help either.

First few months it was just maintenance, later some small features and soon it become a 40 hour a month gig. I was able to deal with it but then management changed, they started micromanaging me heavily and now they want me to do 60-70 hours a month. Also they asked to implement some unnecessarily complicated features and to be honest without refactoring most of the codebase I cant even begin to think of how to implement them.

Also workload in my main job increased. Started sacrificing my evenings, weekends and basically my wellbeing to work on their product. Tried to relax but then I realized Im just spending my freetime thinking about their project all of the time. Best part is that last few updates fucked up the whole flow and I dont even understand where the problem is anymore: backend, 3rd party integration issues or something else that I did.

Last friday told them that my availability changed and Im quitting. Told them that Im gonna provide support till the end of the month but no big features. Just spent a full shift in my main job and another full shift working on their product, trying to untagle their spaghetti.. Im totally lost and burned out. Meanwhile stupid manager is asking why "simple" stuff according to him is taking too long.

I should receive my last payment from agency this week, also asked them to send it to me earlier but no answer so far. At this point Im so burned out that I dont care anymore about the last payment, even if client complains that everything is broken and doesnt want to pay me. Project is beyond fucked and that SDK as well as their backend is a ticking time bomb. Im done.

  • 9
    I think knowing when to quit as you did is a skill. But you considered a flow of 25 screens easy? It's quite a proces
  • 5
    Well, don’t pish the latest version until you got cash.
  • 3
    And that's exactly why despite how nice it would be to have some extra moola, I have not committed to anything
  • 3
    Quality rant, but yeah I can relate to this. I've been through my share of beyond saving projects. I can spot them from a mile off now.

    And fuck micromanagement, that shit sucks.
  • 1
    Almost any project can be fixed given enough refactoring. At least if the dev is capable and stubborn enough to do so - and doesn't do two braindraining jobs at the same time to maximize context switches and prevent being forced to use a fully rested brain on either project...
  • 3
    @Oktokolo This client cant afford hiring a dev fulltime. Max 40-60 hours a month. Theres literally no time to refactor unless you love to work for free. Given the maintenance plus squeezing in new features there is no time to refactor.
  • 3
    @topsecret230 Then it is beyond saving - not because of the technical issues but because of the social ones.
  • 1
    Yes and every time it was because of the people not the technology or the state of the code.

    Edit: 🤔 There was one time when the project was conceptually flawed.
  • 0
    All of them
  • 1
    @TheCommoner282 Sure, but there still is a huge difference between implementing a defined functionality set from scratch and analyzing all the code piece by piece, keeping all the actually implemented functionality refactoring it into something more maintainable step by step. The units of refactoring don't have to be actual units of code btw - they may be concepts like introducing dependency injection to make stuff testable.

    The former normally looses edge case handling, and updates nobody ever cared to document. It also means either having to stop maintaining the old beast or working on two versions of the beast simultaneously.

    And devs are different too - for some it is easier to write something from scratch, others excell in refactoring something existing.

    So it can end in a rolling rewrite depending on how bad teh code base really is. But it doesn't always have to and even if it does, it might still be better to not start from scratch.
  • 0
    Just save save the screen layouts as images and build the application again from it. Enables a cleaner code base from the start.

    Take the code as reference Implementation and build a new copy of it.
  • 1
    Most project are bloated to hell, with no way of easy cleanup possible.

    Save the time and start from scratch.

    Webapp: any Jquery/Bootstrap/React app is beyong saving

    Java App: are we in the 90s? Have you looked at all the vulnerabilites it has, No way i use this.

    Layers of Abstractions: find a simpler way to build it, most of the time you don't even need abstractions anymore.
  • 1
    @max19931 do not agree on the jQuery part. It's just a simple helper, doesn't define your application structure or so
  • 1
    @retoor it was developed to provide an api on top of IE and the rest to get the same functions in all of them.

    Long since replaced by the fact that IE is unsupported( and still lots of Corps use it), and all the other browsers supporting at least ES6 since 2016.
Add Comment