This project is under resourced, had zero planning and delivery dates were promised without consulting the devs.
Tempted just leave it where it lies and go to bed. Tempted not to go in on Monday either.
In a case like this it is fair to reduce the scope of the project and deliver limited functionality if there is business value in delivering the reduced scope project.
I worked on one project that was technically brilliant but had been going in circles for two years before I arrived. There was a meeting that top management was in about the state of the project. I discovered that we'd deliver a huge amount of value if we gave up on adding desired features and shipped what we had.
So we did. One of the best possible customers called us up on the first day it went live to buy it.
My (direct) boss never forgave me for this and it was the beginning of the end. Six months later I shipped the rest of the functionality.
Then I quit.
They called me six months later and said they still hadn't found my replacement. I told them that they'd have to fire my boss if they wanted to retain anyone. I checked his LinkedIn profile the next week and he was out.
I suffered a lot from that job (I started taking antidepressants BEFORE the crisis hit) but I avoided "moral injury" because I did the right thing. Finding the next job was quite an adventure though...
On Monday, before you serve yourself up as toast, have a triple shot latte and take a long look at the hollow-eyed face in the mirror. Why is this person about to be spanked? Probably because this is a situation you have landed him/her in.
When someone (most times a moron in at least one respect) asks/tells you to do something, the proper response is not 'Yessir, I will do this or die trying because I am the best of the best of the best, sir!'
No, it is 'Why?! What EXACTLY is required? No, I mean EXACTLY!!! When do you want it? You know that I have this to do? And I have not taken leave for two years? Who is supporting me on this? You do know that it could need double that number of people?' Etc. And report every day about how crap your life is and that you are overworked and underpaid and saddled with unrealistic expectations.
Weirdly, this type of response a) builds respect from your seniors (particularly if you flag up all the failings in their thought processes); b) is ultimately more likely to get you promoted; c) means you will not get kicked like a beachball inch by inch to an early grave of overwork and slave labour.
Not everyone you will work with is a complete idiot, a narcissistic egomaniac or a psychopath, but until they have proven themselves to be otherwise it may be safest to assume that they are.
Ultimately, you want to ensure to always have a BATNA - an alternative to what you are doing now that will make it easier for you to walk away any time (https://www.pon.harvard.edu/daily/batna/translate-your-batna...).
It sounds like you're not particularly happy at work. The right and ideal thing to do would be to talk to you manager and utter your dissatisfaction; demand that the org does better than this, and make it clear that you will walk away if the situation persists. Think of it as a reverse PIP.
Of course, that only works if you have a decent BATNA.
* set boundaries early. What will you do and not do? I've definitely worked some long weeks, but when I went into it "bought in" that made it so much better.
* Inform team members early and often about the ramifications of this kind of "planning" (I use the term loosely).
* save money and set yourself up for financial security so that if this does happen, you can leave.
* keep in touch with the dev community and your past co-workers so that you can easily transition to another job. Job hunting sucks, keeping in touch can make it suck just a bit less.
Of course, hard to do all that on a Sunday night :). But keep it in mind for the future.As for your proximate question, I'd go in on Monday and explain why you didn't meet the deadline. Sibling comments mention building out a plan to deliver the functionality. If that is part of your job desc, I'd work on that too.
You also want to think about if this is a one off (possibly driven by a client) or a regular occurrence. If the latter, I'd polish your resume and start looking around, as it's really hard to change that kind of culture at a company unless you are in the leadership team (and difficult even then).
The trick is never to commit to any kind of work like that in the first place. Communicate early, in writing, to the stakeholders, that the project will fail in the current setup, and then don't work on the weekends to accomplish it. Demand that either the scope is reduced, or deadline is extended.
Last year I worked on a project and because of my mistakes it looked like we weren't going to hit our deadlines. I did not want others to have to suffer because of my mistakes so I made sure to work late (some days as late as 1AM) to make sure that our deadline was hit. Nobody asked me to do that but I didn't want others to suffer. We didn't hit our deadline but weren't too far off and people were overall ok with the situation as we were just headed into beta for the internal users. I'm pulled off that project and put on a new project, which is to work on something that literally made my previous months of effort obsolete. It was the project to completely replace the application that I worked extra on. Fast forward a few months and I am given a project that had a super aggressive timeline, which I didn't think could happen and I was told my estimate wouldn't be communicated out and I worded my estimate poorly thinking I covered my ass when I didn't and my estimate was communicated out. I was pressured hard to work nights but I pushed back and then I got to a point where I relied on another team and I couldn't get any further without them. It turns out nobody had actually verified that the other team had the functionality we needed (it was critical to what I was working on) and the other team hadn't even started working on the functionality that we needed. That was the straw that broke the camel's back, especially since they were wanting me to work the weekend before I brought up the fact that we don't have the pre-reqs even done and nobody from management actually verified we were ready to start. Since then I have pushed back on all attempts to get me to work late hours. I have seen mismanagement from terrible timelines to straight out lying to business people about things that are done when the work hasn't even started. Nothing changes if everybody keeps working late to hit crazy deadlines and management isn't affected at all if we do hit the deadlines as they aren't the ones taking time away from their personal life.
I have worked late a few times since that incident but it was because I lost track of time working because I was just so focused or because the delay was completely on me and I wanted to fix it so others downstream weren't affected
If attribution goes to bad management, and decisions are made to make the situation better, then you can give them a chance.
If the developer is to blame and seriously it was such a simple project why could you not deliver it faster, then you know you need to go.
B) The other red-flag is in the "under resourced" - if no resources are put on the table, then it certainly is not a big deal if you're late. It's very scary to be late, but what's the actual problem if you are? Will you get fired? Will the company lose M$? Or is it just a product/project manager putting too much pressure on you, and making you do things they should not?
If engineers don't have representation at the design/product meetings to voice these concerns/costs, that is creating a structural problem that will continually compound/ratchet up the cost of future development as tech debt increases.
I don't join a company unless they clearly understand both of these things.
But if you aren't ready to walk away or be fired, you are never going to be able to justify and positions besides just saying yes.
"Hi Boss, sorry but I have some commitments and I can't spend additional time on this project. Thanks."
Once that's done, find some blockers/people challenges on the list. Put the managers name on them. Let them know that the delay is because of them. When they ask you on Monday, ask them why the blockers are not resolved yet and let them know that the release will be delayed until they fix their end.
Share it with skip and other team members.
Fight sociopathy with their own tools.