Just quit a contract gig and gave the dude a week of work for free to wash my hands of the project
2 01 Oct 2018 03:46 by u/LiberalTalkingPoints
So typical project. Functioning system that is 20 years old. It's been updated by multiple short-term hires and contractors every decade or so. Most of the work is competent, but it's official 100% spaghetti.
I go in and check out what they have, he has a Junior developer who is competent but this is literally his first job.
Get 3 priority items. Supposed to be a simple interface change to add some functionality to the frontend.
So day 1-3 is documenting code, setting up a git repository. It's dotted by constant interruptions.
We finish the interface to a testable state and then find the functionality does not exist in the back end, or we have no documentation about how it might have been implemented.
I should mention that they have no development environment, and each day I recommend we need a development sandbox to mimic the old modules and versions of software.
We are e-mailing the guy a file and he manually uploads it.
Day 4-5 spent documenting the backend and trying to duplicate code. Help integrate some Junior dev's interface updates into the software.
Day 5 the little yappy dog in the house where the office is barks the entire day.
Now it is a home run push to get the code working over the weekend to hit this guy's deadline.
Documentation that was promised on day one doesn't seem to exist.
Each time I suggest how to proceed he reviews with the Junior dev whose input is often irrelevant because he doesn't understand what I am talking about.
So I blow out both days of my weekend to try and hit this deadline. At the zero hour I fix some new bugs I introduced and am getting the debug data I need from the middleware client to confirm I am sending correct data to the backend which I can't access in any way.
Days 6 and 7 I have provided server logs the guy could get to me but never provides.
Reviewing code after unexpected Debug data, I find a broken function in the interface code. I broke it, however it was on the day with the barking dog and during a period of being micromanaged to attacking an issue there with bandaids and workarounds and more layers of spaghetti.
I am talking about variables that are hard coded multiple places into the system and also in a database which need to be updated separately to reflect consistent values throughout the system; all having different labels and constructs.
I fix the script bug in the interface that I introduced when integrating the other devs work [yeah we are gonna just do this one thing and then we can get the revision tracking/development sandbox going!] [I was using a local revisioner on my machine until we had theirs set up]
So with the script working, but only an hour left on the deadline, I realize mose likely I wouldn't.
During yet another telecon where I get suggestions from the Junior dev that are irrelevant to the problem, and more suggestion of adding more spaghetti code as a workaround which wouldn't work anyway without any documentation of the backend functionality, I just decided I wasn't going to make the deadline.
I sent the guy the repository I created, all my notes, thanked him for the opportunity and told him to keep my work as a gift.
I should have known day one. This was supposed to be a light contract job and I wasn't asking for too much money. But none of the goals and deadlines set were reasonable because of the way we had to send every revision to be manually updated for anything but the most basic debugging. Documentation that was promised on day one never arrived. Every time I was spending time reading code and making notes I was interrupted or pushed along to just get a quick patch in.
So it turned into a stressful, burn your weekend and disappoint your boss anyway situation because of how it was set up.
Some developers might have been able to get it working in that timeframe. I might be able to do it with a different approach.
But working like that is just not worth it. You end up losing all your ability to schedule anything, can't predict timelines, can't write good code in the timelines the boss is requesting, and end up walking into the last 5 developers unfinished work, probably because this guy micromanaged many of them into walking away from the project.
I'm going to become a park ranger.
19 comments
1 u/TheBuddha 01 Oct 2018 04:14
Maybe this will help?
I have programmed. I suck at it. I have employed many programmers, and given the nature of the beast, many engineers who could also program. I will not use the term software engineer, really.
I'd not have hired you if you disclosed you'd kept that job in a job interview. If you'd stuck that out, you're retarded.
So, that might ease your mind.
1 u/LiberalTalkingPoints [OP] 01 Oct 2018 04:18
Thanks. Makes me feel better. I feel like a bit of a failure, and I did create a few bugs along the way. I'm a bit of a sloppy programmer because I have always pampered myself with realtime access to server logs and the ability to edit directly in a live running environment.
I still think though I was set up to fail, and overconfidence or too much time spent doing things like make the codebase readable was less of a deficit than the other problems artificially imposed.
0 u/TheBuddha 01 Oct 2018 04:26
For what it's worth, I've employed many, many hundreds of people, with a large percentage being from academia or technical backgrounds.
I tell you that not to brag but so that you may understand and apply whatever weight you wish to the following...
The first time to act was on day one, when the red flags went off. Well, maybe sooner. I haven't seen the contract.
Shit jobs don't magically get better on day two - pretty much ever. Right away, you could see it was mismanaged. That was when you deal with it. Some people never learn to manage well and some places are worse than useless, with shitty politics to make it even worse.
Leaving was the correct option and trying to change it on day one would probably be futile. You could do so to say you tried.
Lesson learned?
1 u/LiberalTalkingPoints [OP] 01 Oct 2018 04:32
Thanks again. Yeah I am just getting back into the game and it was a good lesson. Your words will be seriously considered.
0 u/Nalbarcam 07 Oct 2018 00:27
It's reassuring to know that folks like you visit voat
1 u/LoveTheFloor 01 Oct 2018 04:22
Sorry you had to deal with that niggerfaggot sounds like that spaghetti had some linguini and vermicelli in it as well.
0 u/petrus4 01 Oct 2018 06:57
This is the one thing here that stuck out to me. I'm not a programmer because I refuse to write in languages which I think should not rightfully exist (read: OOP in general, basically) for a living, but I have done tech support. If I make suggestions, and the person I am trying to help not only second guesses me, but does so with someone who I know has less knowledge, experience, competence, or basic intelligence than I do, I will generally leave very quickly, because it is futile and won't do anything other than causing me stress. If the person I'm trying to help respects someone who is incompetent more than they do me, then they can rely on said incompetent to help them.
I do have around seven years' informal experience with FOSS UNIX, (mostly Linux, but some time with the BSDs) and the one programming gig I ever had was related to shell scripting. I ultimately screwed that up, because at the time I wasn't anywhere near as good a scripter as I am now, so I made promises I ultimately couldn't keep, because I thought I was going to be able to learn as I went. That did not work.
0 u/LiberalTalkingPoints [OP] 01 Oct 2018 15:28
I was totally comfortable with all the code we saw. It had been maybe a decade since one language and a simple mistake due to that cost us one afternoon.
But yeah that last call.. I had been working solo all weekend on cleaning up the middleware, and looking at an old module the Jr. dev hadn't even seen before. Yet the boss, at the eleventh hour, once again does that 'how can we just make a quick fix' and proceeds to get a suggestion from the Jr. Dev who hasn't even seen this module we need to interface with.
0 u/roznak 03 Oct 2018 19:50
Real programmers can program in any language you throw at them. They never say: I refuse, they always say: When do you want it?
0 u/TwitterBannedIt 13 Oct 2018 21:12
OOP is badass.
But I recently found a moneybags who is infatuated with Go, which is not OOP, so I adapted.
Go is pretty slick too. It's just frustrating having to learn a language so poorly documented, you can tell it caters to an environment where you are expected to 'just know' things that no sane programmer would assume.
0 u/Chad88 02 Oct 2018 02:13
To be honest, with the current job market I am pretty picky. I like where I work, they spoil me to death. I feel like small companies and people who hire contractors would be completely screwed if people like you knew what you are worth right now.
0 u/x13 02 Oct 2018 14:23
This! Plus the OP should be a big boy and never disappear without warning like a baby. I noticed lots of "tire spinning" lost time on bugs he introduced himself.
A great craftsman does not blame his tools.
0 u/LiberalTalkingPoints [OP] 02 Oct 2018 21:48
I didn't owe the guy anything. I offered to come in and help him. He sprung the deadline on me after convincing me to add a feature before doing any of the things I recommended. When new problems on their end arose [by day 5 it was clear they had no idea how the feature would actually be handled by the backend, yet had gotten my commitment only to do front end->middleware work.
Even then, I offered to give up my weekend to resolve it.
From my perspective, the micromanagement and time wasted due to logistical issues and failure to follow through on promises of consulting with their administrator [who turned out to be unavailable for the duration] - and their failure to produce any documentation.
They burned my weekend with their situation. I told them what needed to be done to do the job right and they insisted on doing it their way.
0 u/karaz 02 Oct 2018 22:16
Don't be a dummy OP. Park your ass at a senior level corporate position and enjoy.
Light to medium work load, decent salary, decent benefits, none of the brain melting stress of being a contractor. With the way things are these days and the big companies constantly recruiting, you can be as picky as you like if your skillset is at least mediocre.
0 u/roznak 03 Oct 2018 19:47
Welcome to my world, I have been doing this for years now. But it made me stronger, I became a fast developer ultra agile that can beat a scrum team. If they don't restrict me.
We nowadays have a complete generation of developers that have no clue what good code is. They grew up with buggy, unresponsive code so they. think that this is normal. They are completely unaware that it can be done, very stable, ultra fast, zero bugs and deploy within an hour.
I keep on telling them that if they want it, I can fix it. They look at you not even understanding a word what I have said. They think I brag but then I do it.
0 u/0x445442 07 Oct 2018 16:44
Honest question here...
Would you mind outlining some of the techniques you use to develop this stable, ultra fast, bug free software in an ultra agile manner?
0 u/roznak 07 Oct 2018 20:20
AGILE:
Super AGILE:
AGILE:
Super AGILE:
AGILE:
Super AGILE:
90% of the so called AGILE is bureaucracy and holding you back to develop fast as an experienced developer that can tackle multiple projects at the same time.
You can easily verify my claim, take a developer that started in the 1990's and did not yet get brainwashed with this AGILE madness. Ask him to do the same thing as your complete SCRUM group would. In 2-3 sprints he will bypass your complete team because he does not get the management overhead of the SCRUM team.
0 u/thebearfromstartrack 05 Oct 2018 18:15
What OS environment, languages, dbs, other products are used?
0 u/LiberalTalkingPoints [OP] 07 Oct 2018 14:20
It was PERL, Mysql, PHP.