So the product people rode on this one dude for years on end, slowly understanding their own product in the process. As soon as they understood their own product sufficiently well, they fired the burnt out dev for having the gall of burning out. And then built the product to much lower specifications, which was faster, and with more devs, which was also faster. Then the product people proceeded to pat themselves on the back super hard. What an epic tale of silliness and courage, Neftlix should make a movie.
It's so underrated the impact good requirements and specification has - and that it's so much easier to write the requirements and specification once the product is live. Rick had to spend years making the unknown wilderness known, once the business realised they didn't need him to guide them anymore because the path was well worn, they fired him.
@@isodoubIet the details is in the article, near the end, and just mentioned briefly. The article focused too much on Rick and didn't mention at all what their managers were doing before the firing
@isodoubIet actually, if you go to the part where he reads that the company tried to work with the guy, there is a part in the video where he skips part of the article that mentions that the management for this dev was also fired. Its right after the part he highlights. That said, ricks issue was that he was way to invested in being special that he couldnt let go of all that responsibility. It is likely that he had other stuff going on in his life and the praise he was getting for being a hyper-competent developer was probably the biggest source of self-esteem and validation that this guy had, but it was all slipping through his fingers like sand. You dont work a 12 hour day 7 days a week if you arent desperate to hold onto an image or otherwise depressed. Im not a manager, so I wouldnt know what to do with an employee that needs to let go of some responsibility and take a break for their own mental well-being.
@@Selendeki Calm down buddy, you can't be surprised people miss something that's effectively a footnote and out of chronological order. Still waiting to hear on what happened to the manager's manager though. "Oh your team is blocked and unproductive for two years, guess nothing's wrong there :D"
10000% agree. Sure Rick should have controlled his emotions better and worked with others, but this is definitely a management issue top to bottom. If they didn’t overload Rick and actually had specific and realistically deliverables set with specific due dates, none of that would have snowballed into this.
@@jakubliska4730 I would get that if this had happened a few months in, but they let this snowball for over 2 years while the guy was pulling 7 day weeks, 12 hour/day. What was management doing all this time? Everyone else was blocked, right? They were literally managing just one single guy and couldn't even flag the presence of a problem, let alone solve it.
@@Selendeki "And they were fired for it" Where in the article does it say that? And even if they were fired, what about the manager's manager? ". Someone calls themselves Einstein and is making software to handle millions of useless permutations, you're probably dealing with a obsessed person." It feels to me like "mr jekyll" had an overinflated sense of his own abilities which he successfully marketed to the rest of the team (classic case of "tom's a genius"). I've dealt with (and had to fire) similar people, though not as extreme. But that's the thing, right? If the guy's impossible to manage, find out before he causes 2 years and 150,000 lines worth of damage. There's really no excuse for how bad management was on this, at every level.
They should rename the title to "We overwhelmed our top talent with unnecessary requirements, overworked him, drove him into a self-destructive spiral, deleted all of his work, and fired him"
@@bonsairobo Didn't sound like he was the only one that was a problem. The other developers need to speak up. Speaking up is hard but it is part of your job and making a difference. They should have taken on parts of his work even if he didn't like it. Not excusing someone who is a problem, there are just lots of problems in this story.
I was in this same situation a couple of years ago, in a small to medium company. I asked management to hire more experienced developers, or at least keep the ones we had. They didn't. So I quit just as they were about to promote me. All the money in the world isn't enough to make me want to carry the entire company when all management does is loose talent. They finally went bankrupt a couple of months ago.
Haha, it's the same situation here, again. The management recognize that I am a top talent, that they lack experienced programmers, and they promised me a promotion (which I didn't ask for), yet they didn't fulfill that promise.
This isnt the story of a fall from grace. This is the story of a star developer faced with an incompetent management team, coping by crafting his own solutions, and then being scapegoated by everyone who benefited in the past
Maybe this also falls on management but there's also the issue of whenever anyone else had an issue it would also fall to Rick, making everyone in the office dependent upon Rick. That being said, whether it is a Rick problem or not, firing him was probably the best option and should have been done far sooner. If he is solo developing something to a point nobody else can work on it at all then it's an issue. The reason they did better after he left is because they ALL worked on the project rather than relying on an individual to do the entire thing however they saw fit handle it.
@@zac9933 i mean you are assuming there was support for him before the team came along or that the code was actually that bad. I see a team coming along and then declaring themselves successful
And conveniently you didnt mention Ricks incredibly toxic behaviour that put him there in the first place lol managament was also at fault, but Rick bares at least 50% responsibilty for the situation and 100% responsibility for his personal actions towards others. Rick should have been fired the very first time he publicly berated a colleague
Yeah, no... Rick may have gotten a bit of a big head, but this is 100% on management's utter failure to actually do their jobs and facilitate Rick properly, and they burned out their top talent. 7 days a week for MONTHS... yeah, I'd lose my shit too. They should have FORCED him to go on vacation and in the meantime reworked the architecture for the smaller scope. If after a 2 or 3-month vacation he comes back and still loses his shit, THEN you can fire him... but the way they went about this is just straight up a failure to manage. In the end, he was too far gone to be brought back from the brink and firing was necessary, but it NEVER should have gotten ANYWHERE near that far. The click baity title also paints a picture that Rick was the cause of all the problems, when really the story is more about "My management team turned our best developer into a burnt out over worked monster that we ended up having to fire." but stories about incompetent management teams are less favorable I guess?
@@lewescI mean, obviously not - they could have brought that team process in earlier at any point and solved the problem before Rick's collapse. They got lazy in their duty to manage. I've been in this position, not quite to Rick's level, but where I am soldiering away on the code and every update I give is "we need more people on this" - which was largely ignored by management, because things weren't actively failing, so all they saw was a load-bearing developer rather than the overload - but otherwise churning out code that is gradually becoming more and more desperate and handling every aspect from design to dev to deployment. I got lucky and didn't get to burnout point. I went on a month long holiday, with a 2 week handover to a couple of other developers (who said they were all good to take over) and coincidentally was approached for recruitment by a better job paying more elsewhere. Got back from my holidays, checked the git repo to see absolutely *nothing* had been done whatsoever (despite a pile of new emails and JIRA tickets requesting changes), handed in my resignation and haven't looked back since. I learned my lesson though. In this new job my mental mantra is to share the load and enable the team. It's hard, because I am a very good programmer and can handle the work by myself but it's more beneficial to me (not to mention, the business) for the code to be collaborative, warts and all.
Especially if the author is manager, which this sounds like. Honestly, if I worked on some insane requirements for years, 12 hours a day, 7 days a week, and then some new manager came in and just said he's going to throw it all away I can't even imagine how I would react in that frail state of mind. They needed to put him on leave WITHOUT telling him they were going to discard his hard work (even if it made sense to do so) and then when he came back they could just tell him they were stupid, didn't understand his code, simplified it and threw things away. He would be much calmer and would probably get it, plus suggesting his code was just above them would massage his ego a bit.
Not necessary a management issue at the start but they have failed to manage him, and he failed to be a team player. Rick sound like an autistic people.
I bet that during Rick's time, management insisted on the edge case scenarios and they couldn't buy the dependencies they needed or refused. The only reason that whatever they're saying worked out is that after Rick was gone, only then they agreed to buy whatever and only then they agrreed to hardcode the workflow, and only then they accepted to drop the edge cases. Poor Rick, management made his life miserable and only budged after hie was gone.
I was thinking the same thing. The author seems smug when they talk about how they build the core product faster. OFC it only took them a year to build it. Rick spent years putting in the ground work, figuring out the business rules, defining the domain, and working though all the BS last-second edge cases the stakeholders throw at us.
You can bet the core cause of the problem was one or two levels above his immediate management team. As usual, the source of the problems were not fired.
It's also possible he just wasn't good at communication. Instead of pushing back a little and making sure they *really* understood what they were asking for he just went off and built it. The next person started asking questions about what they really needed. Or maybe the customers were more open to that conversation after it was late. A lot of problems come down to poor communication or lack of communication.
@@Spoonbringerthat's so true i know because ive done that. If Rick is a good dev and he knows he can make any feature then he'd bite the bullet and just write the feature instead of pushing back. Even if that feature would mean that he has to work 7 days a week as he did
It is so true. Sometimes, it is hard to push back in these situations. The business team could casually ask, "Would it be cheaper/easier/faster if we build it in-house?" However, the developer will most likely take it very personally and accept the challenge. Some classic examples are email notification systems, video streaming, search features, and real-time chat. Business people are excited about cutting costs; we are excited about solving problems. The business team is only happy when the requested feature is built within a short period of time. But the developer will probably imagine a half-year plan for building such a minor feature. We need to communicate to the business team in terms of cost and also don't think pushing back shows incapability. But the poor communication is on BOTH SIDE. I also agree it is the business side's fault as well. Management should clearly define the priorities for features. Many management teams take advantage of people's passion and let people burn out and be disappointed with minor/non-important features.
Rick tried his best and instead of helping him the "team" just put more on his shoulders. The mess he created was because he thought that's what's needed to get the product done as stated in the requirements. His failure was not that he didn't embrace open source, his failure was to agree to try to get everything done as fast as possible no matter the consequences for his own health or the health of the source code base. All Rick needed was management to step in early on and say "we cancel the deadline. You go on vacation for at least two weeks while the rest of the team tries to catch up to you and when you come back we talk about a minimum viable product that can be achieved" But probably management said "you can do it, just this one feature, you have to save us" and Rick tried.
@@MrAntice I agree. A more experienced Rick would have foreseen a lot of this and jumped ship or prevented it. But nobody is perfect and he clearly wasn’t able to see it himself. But he the other members in the team and management should have recognized it, if you expect 7 days a week work of one of your team members and you still feel it’s not enough then that should give you more than enough reason to pause and help the guy.
Yup. This kind of thing happens all the time. The new team could reduce the project size. They could change the requirements. They could hardcode the workflow. They could do a ton of things that "Rick" couldn't do. "Rick" couldn't agree or disagree with anything. They likely pushed ALL the requirements and his job was to find a way to get it done.
Rules of thumb to prevent self-Rickification: - You can say code is shit, but _never_ _ever_ say it about another coder. - Remember that your code is always shit, even when it isn't. Don't become complacent. - Your team is there to help you accept that code is always shit. They're not your punching bag. Together we can make even more shit.
I legitimately hate my own code with burning passion, and become visibly happy when my stuff is retired from prod. People on the team think I'm being pessimistic and negative because of that. Go figure =_=
Honest question: What do you when the other code is, genuinely and objectively, shit? What do you do when they routinely do things like O(n^3) complexity when it's trivial not to, n database queries when it's trivial not to, ignore lint comments, typecasts to any, etc? The code is shit yes, but the coder is clearly problematic as well. I'm obviously not saying call them a monkey scrabbling in the dirt who don't understand genius, but there must be some way to express this notion as well.
@@MadaraUchihaSecondRikudo quit and find a better place or stop caring too much. Is it your own company to worry that hard about other people's code? Are you a manager and/or held responsible for their results?
@@MadaraUchihaSecondRikudo Most of the time when I find things like these I just give my colleagues the benefit of the doubt and just straight up ask them about it. Something like "Hey I think this could be optimized but I'm probably oversimplifying the problem. Do you have some time to discuss it since you worked on it?". It's a win-win. If I'm correct then my colleague just learned something new and we optimized our code. If I'm incorrect I just learned something new about this problem. Now if you don't have time at all, just let them know "Hey I think this could be optimized by doing so and so, not really sure though, could you take a look?" I've written too much shit code because I didn't have time for a cleaner implementation or just straight up didn't think about it at that time. It's the same for my colleagues and things like that happen.
Startups try to hire the best in the field for cheap by telling them how they can be rockstars and ninjas on the job, then later these execs whine that these same people are now behaving like rockstars and ninjas :D Dear management: Rick was the creation of your greed and lazyness.
I was promised a 10% stake in the company "once [they] start making a profit". But then we grew so big that 10% was a lot of equity and I got retrenched instead.
“Why the hell haven’t you done all these things?” I can feel that pain. I went through a similar circumstance once but on a smaller scale and without going full Hyde. I fired myself to avoid full transformation.
The most important thing I've learned in my tech career so far (now over 17 years in the Industry) is the value of Simplicity. It's what I always strive for, but it's also the hardest thing to achieve. Having code that is impossible for others to understand isn't a sign of genius - it's usually a sign of incompetence.
Company stacked all their eggs in one backet. They were okay with a person working 7 days a week. They allowed this to happen. This company totally deserved Rick. Hopefully both the company and Rick would be better off since their divorce.
oh we have a Rick a my job then, but it's his fault. Dude works more than he needs to and sort of wants to keep people uninformed. He also retaliates on people who question his knowledge. He has a good memory of past issues, but when it comes to fixing new problems with our aging equipment. He's less great IMO.
@@cabobs2000sounds exactly like a managment problem. Task of the manager is to insure everyone has the correct load, don't burn out, and provide adequate mission view. Ow and don't forget about correctly settings wants and needs of the company, depending on its life cycle.
When I reimplement something that's now understood, I usually achieve a similar improvement in metrics despite being the same exact dude. It wasn't your 'Einstein level' of management that pulled that off, either. You exploited and scapegoated the actual talent and advanced your own career; that's corporate america in a nutshell.
Ask someone to do the impossible, Watch them fail And breakdown. Blame them walk away with a bag. Sounds like c-suite material. These managers should be CEOs in no time.
Good luck improving performance on a code base that is neither readable nor tested nor documented nor understandable. Ripping out ricks cancer-growth is the first step towards refactoring. and then you can achieve huge performance gains. i dont find it hard to believe
Programmers need to stop complaining that code needs to be re-written from scratch. Everything is complicated the first time you see it. Sit down and dig into it anyway. Once you understand it, can modify it, then maybe you can consider rewriting it. But if you do that, you might find that fixing it in increments is a better option than starting from scratch. The code probably wasn't great but it sounded like relaxing the crazy requirements is what actually let them replace it with something simpler. I've had that before where I wrote some pretty complicated code to meet a requirement that I knew didn't really matter when I was forced to do so anyway. Sometimes a small change in a requirement makes a huge difference in problem difficulty.
Yes, agree 100%. This happens all the time because everyone wants to lay down the pieces in a way that makes sense to themselves. Inevitably, the end result is old bugs are traded for new bugs and a lot of existing stability ends up lost. And later the next team wants to rewrite again, nothing progresses. I don't think one should never rewrite because there are rare instances where that's an option. But it should be done rarely due to the huge loss in opportunity cost.
Rick bootstrapped the profitable path in the complexity of infinite options, all they did is copy the happy path. Learning: refactoring and rewrite to simplify
Experienced a very similar story. The dude wasn't an asshole, but he work a LOT and got tons of accolades from management. No one was allowed to see his code and he'd pretty much do whatever he wanted. His "hard work" though was constantly fixing his own bugs. He would wake up very early to babysit the start-of-day process his system was supposed to automate. He was eventually laid-off as part of a mass layoff. About four of us were able to rewrite his system in two weeks. No joke, two weeks! There were a few hickups over the month after it went into production it but then it just hummed along silently doing its job since. It was actually a pretty simple piece of software that at its core it just moved some files around.
I think when management sees a person that just doing work without their oversight they get comfortable and think that they dont need to do their job anymore. They start giving more and more to that singular person because they just seem to gobble up all the work because of their inability to lash out and complaint but then the management is up for a rude awakening when the employee they rely upon end up being an overworked mess
Yeah sometimes management prefers people who look busy to ones who get things done. It is hard for a manager to know how difficult a technical problem is. If someone solves it with ease, it must be easy.
That’s sounds like the case of a programmer who over engineers his solutions. He is handed a simple problem, but for some reason he decides to make it as overly complicated as possible. No one can work with his code. Even he himself barely understands the code he’s written. But he produces lots of code, which is what bad managers cares about. I’ve seen other programmers fall into this trap. I’ve almost fallen into this trap as well.
@@oscarfriberg7661 Oh, so have I, although I was never in a position to work in a silo like that and hide what I do from everyone. But yes, the reason it took us barely any time at to rewrite his software was because he's basically come up with his own "database" and "message queue". I put those in quotes because you could hardly call them that, but those were the purposes they were serving.
Pro-tip: If you skip out on meetings you must make sure your written communication (and tickets, wiki's, etc...) must be better than what your presence would be in a meeting.
Agreed. I rarely have meetings but I make sure to read the conversations from relevant team members. I'm a data engineer so I build out data pipelines all day. I've had Rick moments but I stay humbled through imposter syndrome all the time, even after 5 years. They mostly leave me alone and I work on whatever, usually letting the org know what I worked on since no one is implementing best practices whatsoever. High praises all over. This video was a good reset to keep in mind what could happen and to not fall for it
I was a Rick for a while. There are loads of people out there who will enable your destructive behavior because they're convinced that you're going to save them. I only stopped being a Rick when I started to get my health in order and realized how crazy these people were and how crazy I was, too. You have to push back even against the people who are praising you, because sometimes they're pushing you and everyone else down a bad path. Usually it's out of desperation and/or laziness. It's a lot easier to have one guy save the whole project, rather than dealing with a bunch. Then when that guy inevitably implodes from stress those same people blame that guy and start looking for a new one. At the very least in this article they seemed to recognize the mistakes they made, even if they put the blame all on Rick.
Now I really want to meet Rick. I'd be really interesting in his perspective, and it seems like the kind of guy you'd love to have a discussion about the solutions you're finding to the problems you're solving. I feel like even an hour-long conversation could give you new ideas or ways to adjust your solution to be better. The kind of guy who actually would be great in a position that doesn't require him to work alone or makes him feel like others just can't do what he can do. Simply said, a place where other people actually talk to him like an equal, not some kind of superior angelic being. Of the things that are likely to be possible though, I'd really enjoy to see the story of Rick after getting out of this company. To me, the story of this article is that he got given higher and higher expectations, never got any actual help, then was blamed for everything that went wrong, before finally getting his life's work deleted and kicked into the mud. If that's not the story of a protagonist ready to make a huge comeback, I don't know what is.
In the grander sense his work wasn't thrown in the trash. They used the general template of it and simplified it, the architecture he built is still there from a structural point of view.
I was a Rick in a sea of gooogoo-gaagaa "Senior" programmers that didn't even knew what an IDisposable was or why you shouldn't smash your 12k lines program in Main (as described at 17:20). Yes, I understand Rick, he was the one on the right side. Also, never leave someone ALONE in his descending spiral of madness or he will inexorably build something that can't be described as anything but a huge pile of human waste.
I have written basically zero "real" programs, and even *_I_* near instantly realized it was better to library shit out when I got working on one of my first real programming projects. Granted that realization wasn't *_entirely_* unprompted since I was trying to use a benchmarking library that *_required_* it be segmented into a library, but even so it's a fairly obvious thing to do. (the main reason I put off doing it for as long as I did was that it's just an entirely new thing to learn and this was already a "jump into the deep end" project for learning a new language) I genuinely don't think skill or talent or 'inteligence' or anything else has much to do with how much shit code is written, (or even how incompetent most things seem to be done nowdays) I think it's just pure laziness plain and simple. Sure, you'll find millions and million of people happy to shut up and get to work, but I've seen *_far_* fewer people as willing to take a step back and think about the problem. Leader says jump, they ask how high, and no-one asks why the hell they're being told to jump for no reason. Don't get me wrong here, I'm not saying everyone should be questioning everything all of the time, but it's shocking to me just how infrequently anyone seems to question anything ever; I mean it really borders on double-think sometimes. In one of Rossman's videos on the bluejay app or whatever for instance he straight up tried to lie and say non-FOSS licensing is necessary so people don't make fake lookalike apps with malware which, what? To *_anyone_* who understands what software licensing even is that isn't even coherent, and yet, basically no-one has called him out for bold faced lying to his audience like that. Saw another guy claim that a phone was "yet another device that questions the concept of ownership" because he bought a stolen device and couldn't bypass the BIOS password that the owner put on it. Then there was a few months or a year or so back when phone youtubers were fear mongering that their samsung batteries they left at 0% charge for months or years on end were expanding and might be a hazard or kill you! (even though the only batteries that ever expanded were batteries that had zero charge and thus zero chemical energy, with them even *_showing_* one guy even stabbing a battery with a box cutter and it doing nothing) Hell there was a film theory video where they literally just cut out the part of the scene that was inconvenient for them, *_and then lied and said the thing they cut out never happened in the movie, while playing the very scene where it DID happen no less._* I think this is a problem that goes well beyond just coding; I think it's a more general refusal to meaningfully engage with information. It doesn't matter how senior of a dev you are, if you've never actually seriously questioned your code, your coding practices, or projects, you're gonna write shit.
I totally agree on the last sentence: doesn't matter how much of a Senior you are, you're still gonna write shit if you're too caught up in yourself. What makes the situation even worse is when you are given the "Senior" title just because you're in the same Company since forever and you're friend with the Manager (that went down the same path to get into management in the first place). So yeah, the key is staying humble (not too much) about your code, always be a learner but also call out the person (yes the person, not the code) if you see bad code. If it's really a "Senior", the callout will spark interesting conversations. If they're dorks they will go crying to daddy that someone said their code is bad.
"Not only had we replaced what rick had built,..., all in under a year" Yeah imagine a team of people getting a working product with all edge cases making a copy with less features, with more people in less time then the original. The gall to be proud of that! Them trying to justify it "hundred times faster, bug free and 10 times the customer. If your tool limits by the amount of customers you have failed. Imagine if rick had a team instead of having to support everyone else with time and energy. Rick should have said at the start, but really leadership should have done so way before, I need help but I can't with these people. Let them hire a coupe of people. Instead the tool lost features, massively delayed, burned money and you burned out your best talent... They threw away his code because they couldn't understand it because they are tutorial people. All for some fake "teamwork makes the dreamwork" when they basically plagiarized a better version.
This sounds like an over-exaggeration. There may be truth in it, but my guess is this author tried to hard to paint "Rick" as a bad guy, when this is more a management issue. I've worked with all kinds in my experience. And while I know the type, usually it's butt hurt people who over exaggerate someone's personality. Reality is far more mundane.
I think guys like rick are symptoms of larger issues. I've seen people go from normal happy people to full Rick just because there are small issues that add up over time@@Selendeki
@12:55 sweet Jesus this hit home, after automatically configuring a system. I had to account for manual configuration despite the fact none of our systems used it. it was complexity for the sake of complexity.
Funniest thing is nobody quoted A.Einstein back to him at that moment: if you can't explain it in simple terms, you don't fully understand it. Checkmate Brent! Sorry, I mean Rick!
10:03 sounds like they worked him to exhaustion for years without giving him the required resources, then the cherry on top was to replace all his years of effort. I’d explode too.
"Rick could not solve the problem of how to work effectively on a team" As a high-output IC that then became a manager myself, that's a two-way-street. To work effectively on a team, you need a team (and managers) you can effectively work with. It's an issue of communication, organization and trust. All of these are *famous* for being something that requires collaboration. And here, this entire article dunks on how Rick carried a lot of the product development for ages, the rest of the team was "blocked" (read: not working), Rick was working himself to death, and no manager stepped up and provided adequate support. The entire organisation around the project was apparently okay with a bus factor of one, and yet the person that would be hit by a bus is the sole one to blame? Nah, that's a collective failure, not an individual one. The lesson that the author should draw from this are different.And here, this entire article dunks on how Rick carried a lot of the product development for ages, the rest of the team was "blocked", Rick was working himself to death, and no manager stepped up and provided adequate support. It sickens me. "Any problem became a Rick problem, a myth he encouraged" -- put on your damn big boy pants and assign a different person to the tasks. Have the person investigate first, then have a quick 30min sync meeting with rick about strategy on how to fix it, and then they can daily quickly talk about it, while you track progress. Gonna be painful at first, but then it'll work out. It's not magic. You can do that. Yes, it's gonna be less comfortable to lead the team that way, but that's why you're paid the big bucks. Like, I hate doing it, and yet it's important for the team's success. "Team members didn't want to speak up and offer their own ideas because he always berated them for it." Again, put on your big boy manager pants, jeebus. Like, what did the managers do for their job? Yes, the managers were let go, but then the new ones didn't solve the problem either, except with firing. Was that inevitable at that point? Maybe, but I have so little trust into that org that it's hard to tell from that article. I see a talented dev worked to death, so far that it took a deep psychological toll, and then they're uncermouneously let go. Idk man, seems like a problem that's more than one person. Anyway, I'm getting frustrated.
The irony is that I sympathize with Rick here. Tons of requirements and other things got dumped on him and he wasn't allowed to change anything. The team got to change the requirements. They got to use open source. They got hardcode the workflow. They got to do a ton of things that Rick was never allowed.
12:05 I worked as an HVAC estimator and designer for a decade before becoming a programmer. I can assure you, several of us had rolled up paper that tall at our desks at all times. I actually had a laundry hamper next to my desk full of those, so I could save space by having them stand up long ways.
So basically they were doing NOTHING and Rick was doing all the work by himself. And now they proudly present that the WHOLE team managed to do in 1 year, what 1 guy was doing for 5 years? Is this a victory ? lol :) Maybe project manager should have done their job and removed some percentage of heavy lifting of the Rick's shoulders and make a team work like a team ? Maybe then they could have done this project even faster ? Maybe this Rick a bit of saulty boi, taking into account his words, but the problem lies in management. As always..
@@Selendeki citation needed. There is a single sentence saying that management was fired first, there is zero in the article to corroborate anything else. If they *_did_* bring in a new managment team to recover it, they would have said so, but they didn't. They only started talking about teamwork and collaboration *_after_* they had fired him. If both Rick and his managers were fired on the same day it doesn't matter who was fired first, and if they *_weren't_* fired at the same time then there would be a few sentences or even paragraphs covering what the new managerial team tried to do to recover the situation, like forcing Rick to cut down his hours and transition into being a leader role without writing code himself or something. That paragraph isn't in the article though, all it says is "we fired the managers first"
So they stopped caring about an edge case that introduced all the complexity that accommodated 5% of their customers. Redefining the problem and dropping those customers is something management should have decided on when they still had rick.
The more you read the more I thought that this is actually a story of how management and project leadership failed to do their job big time and Rick, being a little a**hole or not, was just a scapegoat. Any good manager or team lead would have made Rick integrate in team or just fire him second week into the project just for the sake of the said team. How they decided then to go and write and article about this, with a smug feel to it nonetheless, is pure comedy. The lesson is there nonetheless: do not go work at freecodecamp and, if you are in a similar situation, stop being lazy and just leave, you will never grow as a developer on a project where the leadership is expecting only one person to do everything...
So basically they had a amazing programmer who made awesome things. They then slowly added things he had to do, while also developing things that didn’t work with what Rick had made, forcing him to rework his code, instead of adapting the new things. When Rick is clearly being overworked and decides to pull away to survive, management goes “man he’s such a recluse. What a weirdo” while every other dev sees this happening. Hearing “Rick was working 12 hours a day, 7 days a week” and “everyone knew only Rick could pull them out of the mess” is fucking crazy. Also when they say “we’re rebuilding” it doesn’t mean “we will not maintain what is already there”. They tried to give him double the work on him. Imagine if they had NOT said Rick should be part of the rework team and just maintain what he already worked on. I went through this myself a few months ago where my entire team said “what do you even do” when I maintained 12 websites, dev on 1 platform, marketing campaigns, product information, project planning and communications with product owners. I was also called “not as peppy anymore”. It’s reeeeaaaal easy for management to fire someone who makes huge changes that they don’t want to talk to due to their own ego or lack of knowledge and instead work with 4-5 less experienced workers that they can act superior to. Rick had tried his hardest, he tried teaching, he tried carrying all of it himself, but in the end, they broke him in solitude. The hubris on the manager to try to get props for outing a former colleague and get attention on their downfall tells me all I need to know.
Unpopular opinion: If I'm the manager or something here. I'm gonna also fired those who don't at least help Rick or at least give advice. What I'm looking at here is a case of people who over rely on someone. Rick becomes a problem because people becomes a problem too.
in my current company we have 2 ricks. 1 is a tech lead, who works across teams and there is me who is the lead dev of the biggest team that works on the core product. it sucks a lot because whenever there is anything remotely important, it is only us 2 who can do it or solve it. currently we are working really hard to enable other devs to do the job but management doesn't realize the need as much as they should. whats holding me back from leaving is the fact that my salary and bonus payments keep increasing
Why aren't other devs able to do the work? Are they a bunch of incompetents who need replaced, plausible, but if it is a big team then I doubt that is the case? Or maybe you need to do some proper training of the system with them, by working through those issues together so they can start to get an understanding of how things work?
@@evancombs5159 He says "management doesn't realize the need as much as they should". This tells me there is not enough allocation for proper training. Also there might be a long road from "starting to understand" to "get things done".
@@evancombs5159 essentially it's a mix of skill issues and lack of time to train them on domain specific issues. I've been able to escalate this topic multiple times tho and things are slowly improving
This happened to me and they tried to convince me that I didn’t know how to code. The gaslighting was infuriating and childish. Also Rick would have to be pretty toxic for this to be worth while. Sometimes open source just does not solve the problem because requirements are vague. This is why nowadays I try to get someone to give me an answer anytime there are vague requirements. If you don’t have someone to blame you can only blame yourself. And don’t work with people if they aren’t contributing to discussion. Those types of people will get you in trouble fast! Working as a dysfunctional team is better than isolation.
Rick did nothing wrong. Maybe his teamwork/communication skills are subpar but if he didn't get any feedback on his work you can't really expect his work to magically change to fit the needs of the team
Not going to meetings and writing your own tools is what any programmer that loves his job does. It is 100% manager’s responsibility to manage that, enforce documentation and testing standards, build communication. Everything described in the article sounds like manager not doing his job.
If your top talent makes code that is a bunch of copy pasta that nobody other than himself can understand, cripples your entire project and refuses to go in meetings, talk or share the knowledge with other devs... I'm sorry, he's far from being your top talent.
Wait hang on, Primeagen missed a line. The original Management was a problem, so the fired Management FIRST. THEN, when Rick was himself continuing to be a problem, he was fired.
You're reading in a time gap there. All they said was that they were fired first, that could mean as Rick was walking into HR his manager was walking out, and frankly that feels far more like what's meant. If you fired the managers and then got new managers, there would be a paragraph or at least a sentence saying "Understanding that the managers had caused this, we fired the managers first and gave it a few weeks/months to see if it was recoverable" but they didn't. They *_just_* said they fired the management first, which doesn't actually mean anything. If Rick and his managers were fired within the same hour, does it matter who walked out the door first? No, obviously not, because the issue is that the managers pushed it to this outcome. If they had given it a few weeks or months with a new and vetted managerial team and Rick was *_still_* off the deep end, then yeah cut your losses and start from scratch, but *_if_* that happened there would be at least a sentence saying that's what happened.
Yeah i was full on with Rick until they mentioned how he thought of himself as a genius, belittled his team and insulted people in public. But the article lacks information, I can't tell whether Rick was always like this and people just put up with him because of his results, or if he got this way over many years of being overworked by bad managers and lazy coworkers that let all the difficult/complex stuff for Rick to solve on his own Also it's not mentioned how much his team changed over the years, or what the hell the other devs on his team were doing all this time when Rick was writing spaghetti code. Some times people with good intentions in a terrible environment can make everything worse. If he was seen as a genius and wrote shit code, i just imagine the level of whoever saw him as a genius. And if he called himself a genius but everyone knew his code was nonsense, why didn't anyone pointed it out? Was he the only senior in a sea of interns? Or did management endorse him this much so that no one would complain about him? Or did the company had a culture of letting a single person take on full projects without anyone else's input for years? The blame is mostly on the management anyway, just imagine if Rick had quit and literally no one had any knowledge about his code. He probably still would've been seen as the villain. I hope Tom hires this guy to work with JDSL.
Alternate title ot the article: "We worked our best employee harder than ever and he snapped on us so we fired him after he got justifiably mad at us."
This is a dangerous trap for high performers in a smaller company. I consider myself a high performer and have had many frustrations in my career. But bouncing around companies (biotech) enough times had had humbled me greatly. It’s something I’ve been cognizant of in myself before seeing this video, so glad to see the extreme side of things.
I would never want to be in Rick’s management chain when he died of stress from this. Preventing that is a core part of responsible management and leadership.
Calling the guy "Rick" was on-point! After all, these men screw everything up: Rick McCallum with Star Wars, Rick Berman with Star Trek ...what is it with Ricks?
His take on managements role is probably the best analysis of this situation. It’s like a bad parent complaining about a kids behavior that is a product of their bad parenting.
Real Article Title: How horrible management lost us our top talent who was a genius, delayed our product for years past due delivery, and wasted our client's money and our own resources for nothing.
couple of thoughts..#1 Rick doesn't really sound like top talent. #2 management should have checked this Rick dude way earlier. Rediscovering fire is not a sign of genius.
@@Selendeki Yup. Classic. Some random dev comes up with a super complex solution that only that person understands. Talks to a jr. product manager or scrum master, and pm is blown away by the endless lines of code lines produced. But when you dig deeper you realize that all this complexity could have been avoided by using off the shelf components or by slightly reframing requirements. These are the kind of guys that AI will take over for and with good reason.
@@Selendeki Everyone has blind spots, everyone is stupid in some ways. Some people are smarter than some other people. No big deal. The smart and/or persuasive kind of moron just has a greater potential for destruction. The hero myth so central in our culture is partly to blame.
"we got the client to agree to not to support an edge case that dropped a ton of code" This is Ricks fault?! OMFG. I agree with your read this was a management problem. This person needs to read "The Pheonix Project" because its an exact copy of this story that played out completely different for Rick(Brent).
This just sounds like the dude had a major burnout; sad, really. I wish companies took better care of their employees so they don't reach the point of going nuclear.
Don't create a workflow engine before you implement 1 workflow. Do create a game engine before you implement 1 game. Maybe consider creating a second game engine before you write that 1 game.
Had a boss who said, "This isn't rocket science, if you can't figure this out you deserve to die." It was the one meeting we weren't recording that week either.
3:00 in a previous project, I used to print out the mechanical drawings I needed for reference, and pin them onto my cubicle walls. On top of making it easy to find super fast what I needed to check/measure, it made my cubicle look like I actually knew what I was doing.
Interesting article. Definitely something we can all relate to in the article (whatever perspective)... but absolutely love all the comments here - a lot of the responses were not what I was expecting.
I mean seriously, if no one ever pushed back on his designs for fear of being shutdown, then they don't have what it takes to work in this industry. You gotta stand up for your ideas and use evidence to back them up. If you can't, then smart guys like Rick will dominate you.
Albert Einstein probably had Asperger's; I think Rick did too. They absolutely crushed the guy with work and then threw it away and wondered why he got mad.
The guy described in that article is a regular developer with a junior mindset, a big ego, and at most average, if not below-average competency. The only reason he was considered "top talent" is the same reason all the heavy work went to him, why it took them years to understand where the project was going, why they had a single person filling the architect, team lead, product owner and developer role etc - generalized incompetence.
You know, I worked with a guy who trashed himself in about 72h. If he didn't end up in doctors office I would have talked to manager to send him for some time off. Unfortunately at the time I didn't realise that was actually the ideal employe for them. To say shit was piling up is an understatement
Everytime some dev says "you cannot comprehend my code" this is a red flag. Any genius developer is trying to make his code easy to read and understand. Failing to do so, makes it harder for your future self and for others. And failing to do so, makes it imho that you lose the title of "genius" and you are now competing for the title "egocentric selfentitled idiot". Another problem was implementing edgecases too early. Only a small number of customers needed that function. So why not wait for the product to be ready and then implement them? Adding the complexity early, means you have to deal with that complexity for longer. That makes any development needing to deal with that complexity and making those changes also complex. Reducing the complexity reduces the work. Good for them to be able to do that. But why didn't they do that before?
@@RPG_Guy-fx8ns If anything, they did take control of the problem they were trying to solve by reducing the scope. Sometimes, "good enough" is good enough
what really happened is they kept pushing projects on to rick and he would have to take care of everything. Rick was probably constantly asking for help. best part here is they just ripped their code apart and introduced hundreds of possible failure points by using a bunch of opensource frameworks. Nothing like crushing a bunch of cubes through round holes.
I also had a rick on my team... The problem was managment had no clue and he "produced" stuff which for a non technical person looked good even if the bugs backlog doubled every year since that rick joined. Nobody could read his code.... the code was a mess Once I told him that the code has at least 3 loops which we could remove and put it into one he screamed at me saying;" Stop being so logical" One PO to me said once that that person is one of the best angular devs in Sweden... I just told him then the bar in Sweden must be really low....
This is far too common. Management usually don't understand a developers true holistic contribution to the productivity of the team and development of the engineering culture and product. They easily mistake busywork for productivity, even if the developer achieves this busywork by cutting corners or shifting workloads to other individuals or departments. Or maybe they do understand, but prioritize short-term gains for the purpose of meeting targets.
@@sbqp3 > "To mistake busy work for productivity and short term gains" Yes, down deep this is the issue. Agile/Scrum mindset has ingrained very deep making everyone thinking busywork and short term is all that matters, From management to poor Rick itself. You can see how deep he was in this mindset too, Sprinting means being in a rush eternally and prisoner of short-term mindset until it explodes like he did
The described behavior of rick is not competent. He sounds like he used his technical knowledge to justify acting toxic and destroying the workplace for everyone else. He sabotaged the team so its more dependent on him so he can hold more power and use get-out-of-jail-free card
This hits a little bit too close to home. Kind of my dream scenario would be that whiteboard situation where I can help anyone with anything. I have talent in having a great amount of overview and memory of all sorts of components, past issues and past decisions, and how we got there. I am no Rick, but I can easily identify myself with almost all he did and can easily imagine becoming him and doing and saying all he did. I feel like he may have the same character as me. Very uncomfortable for me.
This was my path. I stayed in the team for like a decade without writing code any more, just coaching testers, giving archaeology sessions for stuck devs, and consulting on design choices. Feels good, and if you make sure only to do the work that no one else can, and to try to grow others into being able to do it, then it's not even a trap.
@@az8560 by a healthy division of labour and actually trusting my team's ability to come up with solutions. There's too much work and too few devs. My team is all junior devs so I have to train them and help them with their problems (even though I am a junior dev still), on top of doing my own tasks, which are piling up at a steady pace.
My team at my company historically was a small group where the design engineers did everything from management, to product engineering, to design engineering while micromanaged by the product line engineer. The PLE decided enough was enough, banded the team together to expand their offerings and earn the faith of corporate. Now we have 2 managers, 2 product engineers, 1 design engineer 1, 2 design engineer 2, 1 senior design engineer, and our PLE at the helm without the micromanagement. Growth unlike anything we've seen, collaboration across the board, and everything is dandy. We don't depend on any one person or small group of people to do stuff.
I've been in something that was starting to develop into a similar situation and I recognized what was happening and killed it early. You never want to be "that guy". Just sat down with management and was honest with them. Just about every place I worked at, I would always ask my manager in one-on-one's "what would happen if I got run over by a bus." And if the answer was something like "I don't know.. the company would be screwed..", I told him he should do something about that. B'cos you never want the success (or failure) of the project all coming down to one person, and if it does, you never want to be that person who success or failure is riding on.
You never want a rock star in a team, I'd rather work with 5 average developers than 1 rock star developer. They always build their own ivory tower only they can understand and maintain and demotivate the rest of the team faster than you can say kumbaya.
After reading this I expected the final line to be "And then everyone stood and clapped while bowing in respect for the managers that created the solution for the problem they created"
This whole article reminds me a lot of a book called The Phoenix Project. Really great book. Would actually be interesting to have you read on stream or do like a book club or something like that.
People are defending Rick in the comments here. Yeah, I'm sorry, even if he wasn't the only one who was in the wrong - he's at least 90% of the problem. What I see in this article: *Rick was writing a lot of clever code that went unchecked.* It's easy to make stuff overcomplicated when the project isn't mature enough yet, and it can easily fly below the radar because, well, it works (for now), so the management won't question it too much. Major violation of YAGNI, happens all the time, especially by "geniuses". *People mistook the complexity of Ricks solutions for the sign of his intelligence.* Ironically, Albert Einstein (not Rick, the real one) said “The definition of genius is taking the complex and making it simple”. Yet in reallity, whenever we see something complex we often assume that it's we who are too dumb to understand it, and not the creator who made it so complex could have found an easier solution. Impostor syndrome, that many developers do have, doesn't help. *Rick made himself irreplaceble.* It's sort of a meme that you should make a project so unintelligeble that you will never get fired. Only Rick, being an actual genius, followed the advice IRL. And it didn't help anyone to try to make him more replaceble because *Rick was a control freak.* Didn't allow anyone else to make any technical decisions. Didn't want to delegate anything even when the house of cards was crumbling. Didn't write any documentation, because he didn't actually want anyone to understand the project on their own. He wasn't working 7 days a week because management made him, but because he didn't want any of his dumb coworkers to ruin his masterpiece. Because *Rick had an ego the size of his codebase.* He loved the status of smartest guy in the room. He loved that everyone would come to him for advice. Eventually, the code became so complicated, he himself was having trouble understanding it, I think. Thats why there were so many bugs, and that's why the deadlines were running away. But the ego prevented him to see the failure of his ways. How could he fail?! He was the top talent, he was the king of the hill! Unfortunately for him, the size of his ego generated the gravity field so strong it just had to be dealt with. Honestly, fuck Rick.
well, a lot of these attitudes were affirmed by the team. For sure, he did overestimate his ability. If everyone depends on you, it takes real effort to not let it get to you. I've been in a similar situation as Rick and i noticed similar attitudes within myself. Luckily i chose not to let that get to me as Rick did
I’ve worked with three ricks. The second and third I was much more experienced and in more of a lead/managemnt role. Saved them both. The first was myself. “Push him into burnout and fire him” resonated hard. The trick to managing ricks is to be the rickiest Rick.
Correction: This article is not about freeCodeCamp. They just published an article by a dev at a different company
I mean freecode does indeed have some shady business, surprised no one is talking about them yet
this article feels like it was written by a PM
So the product people rode on this one dude for years on end, slowly understanding their own product in the process. As soon as they understood their own product sufficiently well, they fired the burnt out dev for having the gall of burning out. And then built the product to much lower specifications, which was faster, and with more devs, which was also faster. Then the product people proceeded to pat themselves on the back super hard.
What an epic tale of silliness and courage, Neftlix should make a movie.
It's so underrated the impact good requirements and specification has - and that it's so much easier to write the requirements and specification once the product is live.
Rick had to spend years making the unknown wilderness known, once the business realised they didn't need him to guide them anymore because the path was well worn, they fired him.
@@Selendeki People miss that detail because it's not in the article
@@isodoubIet the details is in the article, near the end, and just mentioned briefly. The article focused too much on Rick and didn't mention at all what their managers were doing before the firing
@isodoubIet actually, if you go to the part where he reads that the company tried to work with the guy, there is a part in the video where he skips part of the article that mentions that the management for this dev was also fired.
Its right after the part he highlights.
That said, ricks issue was that he was way to invested in being special that he couldnt let go of all that responsibility. It is likely that he had other stuff going on in his life and the praise he was getting for being a hyper-competent developer was probably the biggest source of self-esteem and validation that this guy had, but it was all slipping through his fingers like sand. You dont work a 12 hour day 7 days a week if you arent desperate to hold onto an image or otherwise depressed.
Im not a manager, so I wouldnt know what to do with an employee that needs to let go of some responsibility and take a break for their own mental well-being.
@@Selendeki Calm down buddy, you can't be surprised people miss something that's effectively a footnote and out of chronological order.
Still waiting to hear on what happened to the manager's manager though. "Oh your team is blocked and unproductive for two years, guess nothing's wrong there :D"
Management had one fucking job and they fucked it up and blamed the talented developer, classic.
10000% agree. Sure Rick should have controlled his emotions better and worked with others, but this is definitely a management issue top to bottom. If they didn’t overload Rick and actually had specific and realistically deliverables set with specific due dates, none of that would have snowballed into this.
it's probably impossible to manage a genius narcissist that refuses to cooperate, document the code and test his code
@@jakubliska4730 I would get that if this had happened a few months in, but they let this snowball for over 2 years while the guy was pulling 7 day weeks, 12 hour/day. What was management doing all this time? Everyone else was blocked, right? They were literally managing just one single guy and couldn't even flag the presence of a problem, let alone solve it.
@@jakubliska4730 just because Rick was in the wrong doesnt mean everyone one else is right. The management is an absolute L
@@Selendeki "And they were fired for it"
Where in the article does it say that? And even if they were fired, what about the manager's manager?
". Someone calls themselves Einstein and is making software to handle millions of useless permutations, you're probably dealing with a obsessed person."
It feels to me like "mr jekyll" had an overinflated sense of his own abilities which he successfully marketed to the rest of the team (classic case of "tom's a genius"). I've dealt with (and had to fire) similar people, though not as extreme. But that's the thing, right? If the guy's impossible to manage, find out before he causes 2 years and 150,000 lines worth of damage. There's really no excuse for how bad management was on this, at every level.
They should rename the title to
"We overwhelmed our top talent with unnecessary requirements, overworked him, drove him into a self-destructive spiral, deleted all of his work, and fired him"
+1
Guy sounded like an asshole though, even before he started fucking up. They should have fired him way sooner.
@@bonsairobo Didn't sound like he was the only one that was a problem. The other developers need to speak up. Speaking up is hard but it is part of your job and making a difference. They should have taken on parts of his work even if he didn't like it. Not excusing someone who is a problem, there are just lots of problems in this story.
@@username7763 True. Anyone that allows themselves to be subject to an asshole without exhausting their options is culpable as well.
Except management was fired FIRST. You'd know that if Prime didn't skip that part.
I was in this same situation a couple of years ago, in a small to medium company. I asked management to hire more experienced developers, or at least keep the ones we had. They didn't. So I quit just as they were about to promote me. All the money in the world isn't enough to make me want to carry the entire company when all management does is loose talent. They finally went bankrupt a couple of months ago.
same here
Exactly the same thing is happening at my company. I am actively looking for jobs right now and will leave as soon as I get an offer.
Management should tight talent
Haha, it's the same situation here, again. The management recognize that I am a top talent, that they lack experienced programmers, and they promised me a promotion (which I didn't ask for), yet they didn't fulfill that promise.
good for you
This isnt the story of a fall from grace. This is the story of a star developer faced with an incompetent management team, coping by crafting his own solutions, and then being scapegoated by everyone who benefited in the past
Maybe this also falls on management but there's also the issue of whenever anyone else had an issue it would also fall to Rick, making everyone in the office dependent upon Rick.
That being said, whether it is a Rick problem or not, firing him was probably the best option and should have been done far sooner. If he is solo developing something to a point nobody else can work on it at all then it's an issue. The reason they did better after he left is because they ALL worked on the project rather than relying on an individual to do the entire thing however they saw fit handle it.
Yep, complaining about no documentation and organization but then also complaining about tasks falling behind. Pick one. Quality or speed.
@@zac9933 i mean you are assuming there was support for him before the team came along or that the code was actually that bad.
I see a team coming along and then declaring themselves successful
And conveniently you didnt mention Ricks incredibly toxic behaviour that put him there in the first place lol
managament was also at fault, but Rick bares at least 50% responsibilty for the situation and 100% responsibility for his personal actions towards others.
Rick should have been fired the very first time he publicly berated a colleague
Rick? That you?
Yeah, no... Rick may have gotten a bit of a big head, but this is 100% on management's utter failure to actually do their jobs and facilitate Rick properly, and they burned out their top talent. 7 days a week for MONTHS... yeah, I'd lose my shit too. They should have FORCED him to go on vacation and in the meantime reworked the architecture for the smaller scope. If after a 2 or 3-month vacation he comes back and still loses his shit, THEN you can fire him... but the way they went about this is just straight up a failure to manage.
In the end, he was too far gone to be brought back from the brink and firing was necessary, but it NEVER should have gotten ANYWHERE near that far. The click baity title also paints a picture that Rick was the cause of all the problems, when really the story is more about "My management team turned our best developer into a burnt out over worked monster that we ended up having to fire." but stories about incompetent management teams are less favorable I guess?
i would lose it over the smallest things if i was in the same situation
They hired outside of their ability to manage.
@@lewescI mean, obviously not - they could have brought that team process in earlier at any point and solved the problem before Rick's collapse.
They got lazy in their duty to manage.
I've been in this position, not quite to Rick's level, but where I am soldiering away on the code and every update I give is "we need more people on this" - which was largely ignored by management, because things weren't actively failing, so all they saw was a load-bearing developer rather than the overload - but otherwise churning out code that is gradually becoming more and more desperate and handling every aspect from design to dev to deployment.
I got lucky and didn't get to burnout point. I went on a month long holiday, with a 2 week handover to a couple of other developers (who said they were all good to take over) and coincidentally was approached for recruitment by a better job paying more elsewhere.
Got back from my holidays, checked the git repo to see absolutely *nothing* had been done whatsoever (despite a pile of new emails and JIRA tickets requesting changes), handed in my resignation and haven't looked back since.
I learned my lesson though. In this new job my mental mantra is to share the load and enable the team. It's hard, because I am a very good programmer and can handle the work by myself but it's more beneficial to me (not to mention, the business) for the code to be collaborative, warts and all.
Especially if the author is manager, which this sounds like. Honestly, if I worked on some insane requirements for years, 12 hours a day, 7 days a week, and then some new manager came in and just said he's going to throw it all away I can't even imagine how I would react in that frail state of mind. They needed to put him on leave WITHOUT telling him they were going to discard his hard work (even if it made sense to do so) and then when he came back they could just tell him they were stupid, didn't understand his code, simplified it and threw things away. He would be much calmer and would probably get it, plus suggesting his code was just above them would massage his ego a bit.
Not necessary a management issue at the start but they have failed to manage him, and he failed to be a team player. Rick sound like an autistic people.
I bet that during Rick's time, management insisted on the edge case scenarios and they couldn't buy the dependencies they needed or refused. The only reason that whatever they're saying worked out is that after Rick was gone, only then they agreed to buy whatever and only then they agrreed to hardcode the workflow, and only then they accepted to drop the edge cases. Poor Rick, management made his life miserable and only budged after hie was gone.
I was thinking the same thing. The author seems smug when they talk about how they build the core product faster. OFC it only took them a year to build it. Rick spent years putting in the ground work, figuring out the business rules, defining the domain, and working though all the BS last-second edge cases the stakeholders throw at us.
You can bet the core cause of the problem was one or two levels above his immediate management team. As usual, the source of the problems were not fired.
It's also possible he just wasn't good at communication. Instead of pushing back a little and making sure they *really* understood what they were asking for he just went off and built it. The next person started asking questions about what they really needed. Or maybe the customers were more open to that conversation after it was late.
A lot of problems come down to poor communication or lack of communication.
@@Spoonbringerthat's so true i know because ive done that. If Rick is a good dev and he knows he can make any feature then he'd bite the bullet and just write the feature instead of pushing back. Even if that feature would mean that he has to work 7 days a week as he did
It is so true. Sometimes, it is hard to push back in these situations. The business team could casually ask, "Would it be cheaper/easier/faster if we build it in-house?" However, the developer will most likely take it very personally and accept the challenge. Some classic examples are email notification systems, video streaming, search features, and real-time chat.
Business people are excited about cutting costs; we are excited about solving problems. The business team is only happy when the requested feature is built within a short period of time. But the developer will probably imagine a half-year plan for building such a minor feature.
We need to communicate to the business team in terms of cost and also don't think pushing back shows incapability.
But the poor communication is on BOTH SIDE. I also agree it is the business side's fault as well. Management should clearly define the priorities for features. Many management teams take advantage of people's passion and let people burn out and be disappointed with minor/non-important features.
Rick is a fucking genius, you wouldnt understand
I'm utterly stupified by Rick's genius
@@ThePrimeTimeagen A genius is just a crazy person with an audience. Sadly, Rick lost his audience.
They changed Tom's name to Rick. We all know it is Tom.
@@rumplstiltztinkersteinGreat quote 😄
Ricks don’t work without a Morty
Rick tried his best and instead of helping him the "team" just put more on his shoulders. The mess he created was because he thought that's what's needed to get the product done as stated in the requirements.
His failure was not that he didn't embrace open source, his failure was to agree to try to get everything done as fast as possible no matter the consequences for his own health or the health of the source code base.
All Rick needed was management to step in early on and say "we cancel the deadline. You go on vacation for at least two weeks while the rest of the team tries to catch up to you and when you come back we talk about a minimum viable product that can be achieved"
But probably management said "you can do it, just this one feature, you have to save us" and Rick tried.
Ricks only real failure was to recognize the trap he was in and say fuck it. I'ma jump ship before I go mad.
@@MrAntice I agree. A more experienced Rick would have foreseen a lot of this and jumped ship or prevented it. But nobody is perfect and he clearly wasn’t able to see it himself. But he the other members in the team and management should have recognized it, if you expect 7 days a week work of one of your team members and you still feel it’s not enough then that should give you more than enough reason to pause and help the guy.
Yup. This kind of thing happens all the time. The new team could reduce the project size. They could change the requirements. They could hardcode the workflow. They could do a ton of things that "Rick" couldn't do. "Rick" couldn't agree or disagree with anything. They likely pushed ALL the requirements and his job was to find a way to get it done.
Rules of thumb to prevent self-Rickification:
- You can say code is shit, but _never_ _ever_ say it about another coder.
- Remember that your code is always shit, even when it isn't. Don't become complacent.
- Your team is there to help you accept that code is always shit. They're not your punching bag. Together we can make even more shit.
I legitimately hate my own code with burning passion, and become visibly happy when my stuff is retired from prod. People on the team think I'm being pessimistic and negative because of that. Go figure =_=
Honest question: What do you when the other code is, genuinely and objectively, shit? What do you do when they routinely do things like O(n^3) complexity when it's trivial not to, n database queries when it's trivial not to, ignore lint comments, typecasts to any, etc? The code is shit yes, but the coder is clearly problematic as well.
I'm obviously not saying call them a monkey scrabbling in the dirt who don't understand genius, but there must be some way to express this notion as well.
@@MadaraUchihaSecondRikudo appropriately worded issues and pull requests that hint at the problem, maybe?
@@MadaraUchihaSecondRikudo quit and find a better place or stop caring too much. Is it your own company to worry that hard about other people's code? Are you a manager and/or held responsible for their results?
@@MadaraUchihaSecondRikudo
Most of the time when I find things like these I just give my colleagues the benefit of the doubt and just straight up ask them about it. Something like "Hey I think this could be optimized but I'm probably oversimplifying the problem. Do you have some time to discuss it since you worked on it?".
It's a win-win. If I'm correct then my colleague just learned something new and we optimized our code. If I'm incorrect I just learned something new about this problem. Now if you don't have time at all, just let them know "Hey I think this could be optimized by doing so and so, not really sure though, could you take a look?"
I've written too much shit code because I didn't have time for a cleaner implementation or just straight up didn't think about it at that time. It's the same for my colleagues and things like that happen.
Startups try to hire the best in the field for cheap by telling them how they can be rockstars and ninjas on the job, then later these execs whine that these same people are now behaving like rockstars and ninjas :D
Dear management: Rick was the creation of your greed and lazyness.
💯
I was promised a 10% stake in the company "once [they] start making a profit". But then we grew so big that 10% was a lot of equity and I got retrenched instead.
“Why the hell haven’t you done all these things?” I can feel that pain. I went through a similar circumstance once but on a smaller scale and without going full Hyde. I fired myself to avoid full transformation.
i have been there too
The most important thing I've learned in my tech career so far (now over 17 years in the Industry) is the value of Simplicity. It's what I always strive for, but it's also the hardest thing to achieve. Having code that is impossible for others to understand isn't a sign of genius - it's usually a sign of incompetence.
It could also be a sign of trying to do too much in too little time.
Company stacked all their eggs in one backet. They were okay with a person working 7 days a week. They allowed this to happen. This company totally deserved Rick. Hopefully both the company and Rick would be better off since their divorce.
oh we have a Rick a my job then, but it's his fault. Dude works more than he needs to and sort of wants to keep people uninformed. He also retaliates on people who question his knowledge.
He has a good memory of past issues, but when it comes to fixing new problems with our aging equipment. He's less great IMO.
@@cabobs2000sounds exactly like a managment problem. Task of the manager is to insure everyone has the correct load, don't burn out, and provide adequate mission view. Ow and don't forget about correctly settings wants and needs of the company, depending on its life cycle.
When I reimplement something that's now understood, I usually achieve a similar improvement in metrics despite being the same exact dude. It wasn't your 'Einstein level' of management that pulled that off, either.
You exploited and scapegoated the actual talent and advanced your own career; that's corporate america in a nutshell.
Ask someone to do the impossible, Watch them fail And breakdown. Blame them walk away with a bag. Sounds like c-suite material. These managers should be CEOs in no time.
"It was also hundreds of times faster and nearly bug-free". The moment this became a completely made up anecdote
It's not hard to improve performance and reduce bugs dramatically when you cut 95% of the functionality.
Good luck improving performance on a code base that is neither readable nor tested nor documented nor understandable.
Ripping out ricks cancer-growth is the first step towards refactoring.
and then you can achieve huge performance gains.
i dont find it hard to believe
Programmers need to stop complaining that code needs to be re-written from scratch. Everything is complicated the first time you see it. Sit down and dig into it anyway. Once you understand it, can modify it, then maybe you can consider rewriting it. But if you do that, you might find that fixing it in increments is a better option than starting from scratch.
The code probably wasn't great but it sounded like relaxing the crazy requirements is what actually let them replace it with something simpler. I've had that before where I wrote some pretty complicated code to meet a requirement that I knew didn't really matter when I was forced to do so anyway. Sometimes a small change in a requirement makes a huge difference in problem difficulty.
Yes, agree 100%. This happens all the time because everyone wants to lay down the pieces in a way that makes sense to themselves. Inevitably, the end result is old bugs are traded for new bugs and a lot of existing stability ends up lost. And later the next team wants to rewrite again, nothing progresses. I don't think one should never rewrite because there are rare instances where that's an option. But it should be done rarely due to the huge loss in opportunity cost.
We should probably hear Rick's side too.
Rick bootstrapped the profitable path in the complexity of infinite options, all they did is copy the happy path.
Learning: refactoring and rewrite to simplify
Exactly, since it's pretty easy to rewrite something with hindsight lmao
Experienced a very similar story. The dude wasn't an asshole, but he work a LOT and got tons of accolades from management. No one was allowed to see his code and he'd pretty much do whatever he wanted. His "hard work" though was constantly fixing his own bugs. He would wake up very early to babysit the start-of-day process his system was supposed to automate. He was eventually laid-off as part of a mass layoff. About four of us were able to rewrite his system in two weeks. No joke, two weeks! There were a few hickups over the month after it went into production it but then it just hummed along silently doing its job since. It was actually a pretty simple piece of software that at its core it just moved some files around.
I think when management sees a person that just doing work without their oversight they get comfortable and think that they dont need to do their job anymore. They start giving more and more to that singular person because they just seem to gobble up all the work because of their inability to lash out and complaint but then the management is up for a rude awakening when the employee they rely upon end up being an overworked mess
Yeah sometimes management prefers people who look busy to ones who get things done. It is hard for a manager to know how difficult a technical problem is. If someone solves it with ease, it must be easy.
I think we've all worked with this guy 😂
That’s sounds like the case of a programmer who over engineers his solutions. He is handed a simple problem, but for some reason he decides to make it as overly complicated as possible. No one can work with his code. Even he himself barely understands the code he’s written. But he produces lots of code, which is what bad managers cares about.
I’ve seen other programmers fall into this trap. I’ve almost fallen into this trap as well.
@@oscarfriberg7661 Oh, so have I, although I was never in a position to work in a silo like that and hide what I do from everyone. But yes, the reason it took us barely any time at to rewrite his software was because he's basically come up with his own "database" and "message queue". I put those in quotes because you could hardly call them that, but those were the purposes they were serving.
Pro-tip: If you skip out on meetings you must make sure your written communication (and tickets, wiki's, etc...) must be better than what your presence would be in a meeting.
Agreed. I rarely have meetings but I make sure to read the conversations from relevant team members. I'm a data engineer so I build out data pipelines all day.
I've had Rick moments but I stay humbled through imposter syndrome all the time, even after 5 years. They mostly leave me alone and I work on whatever, usually letting the org know what I worked on since no one is implementing best practices whatsoever. High praises all over. This video was a good reset to keep in mind what could happen and to not fall for it
I was a Rick for a while. There are loads of people out there who will enable your destructive behavior because they're convinced that you're going to save them. I only stopped being a Rick when I started to get my health in order and realized how crazy these people were and how crazy I was, too. You have to push back even against the people who are praising you, because sometimes they're pushing you and everyone else down a bad path. Usually it's out of desperation and/or laziness. It's a lot easier to have one guy save the whole project, rather than dealing with a bunch. Then when that guy inevitably implodes from stress those same people blame that guy and start looking for a new one.
At the very least in this article they seemed to recognize the mistakes they made, even if they put the blame all on Rick.
Months later, Tom is still a f*cking genius!!
Totally thought it was Tom with the outburst at the beginning
Now I really want to meet Rick. I'd be really interesting in his perspective, and it seems like the kind of guy you'd love to have a discussion about the solutions you're finding to the problems you're solving. I feel like even an hour-long conversation could give you new ideas or ways to adjust your solution to be better. The kind of guy who actually would be great in a position that doesn't require him to work alone or makes him feel like others just can't do what he can do. Simply said, a place where other people actually talk to him like an equal, not some kind of superior angelic being.
Of the things that are likely to be possible though, I'd really enjoy to see the story of Rick after getting out of this company.
To me, the story of this article is that he got given higher and higher expectations, never got any actual help, then was blamed for everything that went wrong, before finally getting his life's work deleted and kicked into the mud.
If that's not the story of a protagonist ready to make a huge comeback, I don't know what is.
Unfortunately. In real life, these comebacks usually doesn't happen. They broke him. probably permanently.
@@MrAntice Likely. Would still be nice.
Nah he would treat you like he didn't have the time for you, so quit interrupting him!
In the grander sense his work wasn't thrown in the trash. They used the general template of it and simplified it, the architecture he built is still there from a structural point of view.
I was a Rick in a sea of gooogoo-gaagaa "Senior" programmers that didn't even knew what an IDisposable was or why you shouldn't smash your 12k lines program in Main (as described at 17:20). Yes, I understand Rick, he was the one on the right side. Also, never leave someone ALONE in his descending spiral of madness or he will inexorably build something that can't be described as anything but a huge pile of human waste.
I have written basically zero "real" programs, and even *_I_* near instantly realized it was better to library shit out when I got working on one of my first real programming projects. Granted that realization wasn't *_entirely_* unprompted since I was trying to use a benchmarking library that *_required_* it be segmented into a library, but even so it's a fairly obvious thing to do. (the main reason I put off doing it for as long as I did was that it's just an entirely new thing to learn and this was already a "jump into the deep end" project for learning a new language)
I genuinely don't think skill or talent or 'inteligence' or anything else has much to do with how much shit code is written, (or even how incompetent most things seem to be done nowdays) I think it's just pure laziness plain and simple. Sure, you'll find millions and million of people happy to shut up and get to work, but I've seen *_far_* fewer people as willing to take a step back and think about the problem. Leader says jump, they ask how high, and no-one asks why the hell they're being told to jump for no reason.
Don't get me wrong here, I'm not saying everyone should be questioning everything all of the time, but it's shocking to me just how infrequently anyone seems to question anything ever; I mean it really borders on double-think sometimes. In one of Rossman's videos on the bluejay app or whatever for instance he straight up tried to lie and say non-FOSS licensing is necessary so people don't make fake lookalike apps with malware which, what? To *_anyone_* who understands what software licensing even is that isn't even coherent, and yet, basically no-one has called him out for bold faced lying to his audience like that. Saw another guy claim that a phone was "yet another device that questions the concept of ownership" because he bought a stolen device and couldn't bypass the BIOS password that the owner put on it. Then there was a few months or a year or so back when phone youtubers were fear mongering that their samsung batteries they left at 0% charge for months or years on end were expanding and might be a hazard or kill you! (even though the only batteries that ever expanded were batteries that had zero charge and thus zero chemical energy, with them even *_showing_* one guy even stabbing a battery with a box cutter and it doing nothing) Hell there was a film theory video where they literally just cut out the part of the scene that was inconvenient for them, *_and then lied and said the thing they cut out never happened in the movie, while playing the very scene where it DID happen no less._*
I think this is a problem that goes well beyond just coding; I think it's a more general refusal to meaningfully engage with information. It doesn't matter how senior of a dev you are, if you've never actually seriously questioned your code, your coding practices, or projects, you're gonna write shit.
I totally agree on the last sentence: doesn't matter how much of a Senior you are, you're still gonna write shit if you're too caught up in yourself. What makes the situation even worse is when you are given the "Senior" title just because you're in the same Company since forever and you're friend with the Manager (that went down the same path to get into management in the first place). So yeah, the key is staying humble (not too much) about your code, always be a learner but also call out the person (yes the person, not the code) if you see bad code. If it's really a "Senior", the callout will spark interesting conversations. If they're dorks they will go crying to daddy that someone said their code is bad.
"You wont be able to maintain the code without me" Exacly the problem right there. Bus factor of 1.
"Not only had we replaced what rick had built,..., all in under a year" Yeah imagine a team of people getting a working product with all edge cases making a copy with less features, with more people in less time then the original. The gall to be proud of that! Them trying to justify it "hundred times faster, bug free and 10 times the customer. If your tool limits by the amount of customers you have failed. Imagine if rick had a team instead of having to support everyone else with time and energy. Rick should have said at the start, but really leadership should have done so way before, I need help but I can't with these people. Let them hire a coupe of people. Instead the tool lost features, massively delayed, burned money and you burned out your best talent... They threw away his code because they couldn't understand it because they are tutorial people. All for some fake "teamwork makes the dreamwork" when they basically plagiarized a better version.
rick?
think we found him
Rockstar developer much?
I didn't read it as boasting, just disillusionment.
This sounds like an over-exaggeration. There may be truth in it, but my guess is this author tried to hard to paint "Rick" as a bad guy, when this is more a management issue. I've worked with all kinds in my experience. And while I know the type, usually it's butt hurt people who over exaggerate someone's personality. Reality is far more mundane.
I think guys like rick are symptoms of larger issues. I've seen people go from normal happy people to full Rick just because there are small issues that add up over time@@Selendeki
@@Selendeki I have. I had a project thwarted by a "Rick", but my point is the downright evil portrayal of him, as the bad guy is an over-exaggeration.
@12:55 sweet Jesus this hit home, after automatically configuring a system. I had to account for manual configuration despite the fact none of our systems used it. it was complexity for the sake of complexity.
Funniest thing is nobody quoted A.Einstein back to him at that moment: if you can't explain it in simple terms, you don't fully understand it. Checkmate Brent! Sorry, I mean Rick!
10:03 sounds like they worked him to exhaustion for years without giving him the required resources, then the cherry on top was to replace all his years of effort. I’d explode too.
"Rick could not solve the problem of how to work effectively on a team"
As a high-output IC that then became a manager myself, that's a two-way-street. To work effectively on a team, you need a team (and managers) you can effectively work with.
It's an issue of communication, organization and trust. All of these are *famous* for being something that requires collaboration. And here, this entire article dunks on how Rick carried a lot of the product development for ages, the rest of the team was "blocked" (read: not working), Rick was working himself to death, and no manager stepped up and provided adequate support.
The entire organisation around the project was apparently okay with a bus factor of one, and yet the person that would be hit by a bus is the sole one to blame? Nah, that's a collective failure, not an individual one. The lesson that the author should draw from this are different.And here, this entire article dunks on how Rick carried a lot of the product development for ages, the rest of the team was "blocked", Rick was working himself to death, and no manager stepped up and provided adequate support.
It sickens me. "Any problem became a Rick problem, a myth he encouraged" -- put on your damn big boy pants and assign a different person to the tasks. Have the person investigate first, then have a quick 30min sync meeting with rick about strategy on how to fix it, and then they can daily quickly talk about it, while you track progress.
Gonna be painful at first, but then it'll work out. It's not magic. You can do that. Yes, it's gonna be less comfortable to lead the team that way, but that's why you're paid the big bucks. Like, I hate doing it, and yet it's important for the team's success.
"Team members didn't want to speak up and offer their own ideas because he always berated them for it." Again, put on your big boy manager pants, jeebus. Like, what did the managers do for their job?
Yes, the managers were let go, but then the new ones didn't solve the problem either, except with firing. Was that inevitable at that point? Maybe, but I have so little trust into that org that it's hard to tell from that article. I see a talented dev worked to death, so far that it took a deep psychological toll, and then they're uncermouneously let go. Idk man, seems like a problem that's more than one person.
Anyway, I'm getting frustrated.
People want the job title of "manager" so they can be on twitter all day I stg
20:10 "Let engineers discuss what they need and management is there to make it happen". Gold.
His ability and consistency on selecting the whole text but the first and last letters of it is remarkable.
The irony is that I sympathize with Rick here. Tons of requirements and other things got dumped on him and he wasn't allowed to change anything. The team got to change the requirements. They got to use open source. They got hardcode the workflow. They got to do a ton of things that Rick was never allowed.
12:05 I worked as an HVAC estimator and designer for a decade before becoming a programmer. I can assure you, several of us had rolled up paper that tall at our desks at all times. I actually had a laundry hamper next to my desk full of those, so I could save space by having them stand up long ways.
So basically they were doing NOTHING and Rick was doing all the work by himself.
And now they proudly present that the WHOLE team managed to do in 1 year, what 1 guy was doing for 5 years?
Is this a victory ? lol :)
Maybe project manager should have done their job and removed some percentage of heavy lifting of the Rick's shoulders and make a team work like a team ?
Maybe then they could have done this project even faster ?
Maybe this Rick a bit of saulty boi, taking into account his words, but the problem lies in management. As always..
@@Selendeki citation needed. There is a single sentence saying that management was fired first, there is zero in the article to corroborate anything else. If they *_did_* bring in a new managment team to recover it, they would have said so, but they didn't. They only started talking about teamwork and collaboration *_after_* they had fired him. If both Rick and his managers were fired on the same day it doesn't matter who was fired first, and if they *_weren't_* fired at the same time then there would be a few sentences or even paragraphs covering what the new managerial team tried to do to recover the situation, like forcing Rick to cut down his hours and transition into being a leader role without writing code himself or something. That paragraph isn't in the article though, all it says is "we fired the managers first"
Not sure whether designing vs rewriting is the same it definitely is easier to just rewrite than from scratch. But it be a huge honor for any Rick.
I reject the idea someone who can't deliver a working product and doesn't write tests is a good dev at all
So they stopped caring about an edge case that introduced all the complexity that accommodated 5% of their customers. Redefining the problem and dropping those customers is something management should have decided on when they still had rick.
The more you read the more I thought that this is actually a story of how management and project leadership failed to do their job big time and Rick, being a little a**hole or not, was just a scapegoat. Any good manager or team lead would have made Rick integrate in team or just fire him second week into the project just for the sake of the said team. How they decided then to go and write and article about this, with a smug feel to it nonetheless, is pure comedy. The lesson is there nonetheless: do not go work at freecodecamp and, if you are in a similar situation, stop being lazy and just leave, you will never grow as a developer on a project where the leadership is expecting only one person to do everything...
So basically they had a amazing programmer who made awesome things. They then slowly added things he had to do, while also developing things that didn’t work with what Rick had made, forcing him to rework his code, instead of adapting the new things.
When Rick is clearly being overworked and decides to pull away to survive, management goes “man he’s such a recluse. What a weirdo” while every other dev sees this happening.
Hearing “Rick was working 12 hours a day, 7 days a week” and “everyone knew only Rick could pull them out of the mess” is fucking crazy. Also when they say “we’re rebuilding” it doesn’t mean “we will not maintain what is already there”. They tried to give him double the work on him. Imagine if they had NOT said Rick should be part of the rework team and just maintain what he already worked on.
I went through this myself a few months ago where my entire team said “what do you even do” when I maintained 12 websites, dev on 1 platform, marketing campaigns, product information, project planning and communications with product owners. I was also called “not as peppy anymore”.
It’s reeeeaaaal easy for management to fire someone who makes huge changes that they don’t want to talk to due to their own ego or lack of knowledge and instead work with 4-5 less experienced workers that they can act superior to.
Rick had tried his hardest, he tried teaching, he tried carrying all of it himself, but in the end, they broke him in solitude.
The hubris on the manager to try to get props for outing a former colleague and get attention on their downfall tells me all I need to know.
"Your team's strength is not a function of individual talents" ~Web companies everywhere
Unpopular opinion: If I'm the manager or something here. I'm gonna also fired those who don't at least help Rick or at least give advice.
What I'm looking at here is a case of people who over rely on someone.
Rick becomes a problem because people becomes a problem too.
in my current company we have 2 ricks. 1 is a tech lead, who works across teams and there is me who is the lead dev of the biggest team that works on the core product. it sucks a lot because whenever there is anything remotely important, it is only us 2 who can do it or solve it. currently we are working really hard to enable other devs to do the job but management doesn't realize the need as much as they should. whats holding me back from leaving is the fact that my salary and bonus payments keep increasing
Why aren't other devs able to do the work? Are they a bunch of incompetents who need replaced, plausible, but if it is a big team then I doubt that is the case? Or maybe you need to do some proper training of the system with them, by working through those issues together so they can start to get an understanding of how things work?
@@evancombs5159 He says "management doesn't realize the need as much as they should". This tells me there is not enough allocation for proper training. Also there might be a long road from "starting to understand" to "get things done".
@@evancombs5159 essentially it's a mix of skill issues and lack of time to train them on domain specific issues. I've been able to escalate this topic multiple times tho and things are slowly improving
@@evancombs5159 Thats not the job of the devs but the management.
This happened to me and they tried to convince me that I didn’t know how to code. The gaslighting was infuriating and childish.
Also Rick would have to be pretty toxic for this to be worth while. Sometimes open source just does not solve the problem because requirements are vague. This is why nowadays I try to get someone to give me an answer anytime there are vague requirements.
If you don’t have someone to blame you can only blame yourself. And don’t work with people if they aren’t contributing to discussion. Those types of people will get you in trouble fast! Working as a dysfunctional team is better than isolation.
Becoming the backbone of your department is such an insanely sharp double edged sword. At a certain point it’s so detrimental to both parties
Rick did nothing wrong. Maybe his teamwork/communication skills are subpar but if he didn't get any feedback on his work you can't really expect his work to magically change to fit the needs of the team
Not going to meetings and writing your own tools is what any programmer that loves his job does. It is 100% manager’s responsibility to manage that, enforce documentation and testing standards, build communication. Everything described in the article sounds like manager not doing his job.
If your top talent makes code that is a bunch of copy pasta that nobody other than himself can understand, cripples your entire project and refuses to go in meetings, talk or share the knowledge with other devs... I'm sorry, he's far from being your top talent.
Wait hang on, Primeagen missed a line. The original Management was a problem, so the fired Management FIRST. THEN, when Rick was himself continuing to be a problem, he was fired.
If you fire the original management but then new management doesnt actually change anything, then you still have shitty management
Where is this line?
@@isodoubIet 16:08
You're reading in a time gap there. All they said was that they were fired first, that could mean as Rick was walking into HR his manager was walking out, and frankly that feels far more like what's meant. If you fired the managers and then got new managers, there would be a paragraph or at least a sentence saying "Understanding that the managers had caused this, we fired the managers first and gave it a few weeks/months to see if it was recoverable" but they didn't. They *_just_* said they fired the management first, which doesn't actually mean anything. If Rick and his managers were fired within the same hour, does it matter who walked out the door first? No, obviously not, because the issue is that the managers pushed it to this outcome.
If they had given it a few weeks or months with a new and vetted managerial team and Rick was *_still_* off the deep end, then yeah cut your losses and start from scratch, but *_if_* that happened there would be at least a sentence saying that's what happened.
Yeah i was full on with Rick until they mentioned how he thought of himself as a genius, belittled his team and insulted people in public.
But the article lacks information, I can't tell whether Rick was always like this and people just put up with him because of his results, or if he got this way over many years of being overworked by bad managers and lazy coworkers that let all the difficult/complex stuff for Rick to solve on his own
Also it's not mentioned how much his team changed over the years, or what the hell the other devs on his team were doing all this time when Rick was writing spaghetti code. Some times people with good intentions in a terrible environment can make everything worse.
If he was seen as a genius and wrote shit code, i just imagine the level of whoever saw him as a genius. And if he called himself a genius but everyone knew his code was nonsense, why didn't anyone pointed it out? Was he the only senior in a sea of interns? Or did management endorse him this much so that no one would complain about him? Or did the company had a culture of letting a single person take on full projects without anyone else's input for years?
The blame is mostly on the management anyway, just imagine if Rick had quit and literally no one had any knowledge about his code. He probably still would've been seen as the villain.
I hope Tom hires this guy to work with JDSL.
Prime Im not sure you know shit but you are entertaining as hell! 😂 Thanks!
Compliment of the year
Alternate title ot the article:
"We worked our best employee harder than ever and he snapped on us so we fired him after he got justifiably mad at us."
This is a dangerous trap for high performers in a smaller company. I consider myself a high performer and have had many frustrations in my career. But bouncing around companies (biotech) enough times had had humbled me greatly. It’s something I’ve been cognizant of in myself before seeing this video, so glad to see the extreme side of things.
I would never want to be in Rick’s management chain when he died of stress from this. Preventing that is a core part of responsible management and leadership.
"What's a bottleneck?" - this company probably
13:46 FIVE YEARS!?! They rode this dude into the dirt for five years?! No wonder he was unstable, holy shit. They really need to look at themselves.
Calling the guy "Rick" was on-point! After all, these men screw everything up: Rick McCallum with Star Wars, Rick Berman with Star Trek
...what is it with Ricks?
His take on managements role is probably the best analysis of this situation. It’s like a bad parent complaining about a kids behavior that is a product of their bad parenting.
Real Article Title:
How horrible management lost us our top talent who was a genius, delayed our product for years past due delivery, and wasted our client's money and our own resources for nothing.
Sounds like the worst management I've heard of - putting this guy in the position where he HAD to work 7 days a week, 12 hours a day!
couple of thoughts..#1 Rick doesn't really sound like top talent. #2 management should have checked this Rick dude way earlier. Rediscovering fire is not a sign of genius.
@@Selendeki the Musk effect
@@Selendeki Yup. Classic. Some random dev comes up with a super complex solution that only that person understands. Talks to a jr. product manager or scrum master, and pm is blown away by the endless lines of code lines produced. But when you dig deeper you realize that all this complexity could have been avoided by using off the shelf components or by slightly reframing requirements. These are the kind of guys that AI will take over for and with good reason.
@@Selendeki Everyone has blind spots, everyone is stupid in some ways. Some people are smarter than some other people. No big deal. The smart and/or persuasive kind of moron just has a greater potential for destruction. The hero myth so central in our culture is partly to blame.
"we got the client to agree to not to support an edge case that dropped a ton of code" This is Ricks fault?! OMFG.
I agree with your read this was a management problem. This person needs to read "The Pheonix Project" because its an exact copy of this story that played out completely different for Rick(Brent).
This just sounds like the dude had a major burnout; sad, really. I wish companies took better care of their employees so they don't reach the point of going nuclear.
My man just cited wheel of time and shat on the show. You just won a fan for life, sir.
Don't create a workflow engine before you implement 1 workflow. Do create a game engine before you implement 1 game. Maybe consider creating a second game engine before you write that 1 game.
Rick being fired is probably the best that could have happened to him. The place would probably give him ptsd if he were to go there again.
Honestly I wanna hear Rick's side. I dont know what reception the author was expecting but they all need to fucking go.
Had a boss who said, "This isn't rocket science, if you can't figure this out you deserve to die." It was the one meeting we weren't recording that week either.
When the 10x dev ain't paid 10x
'We made Rick work 12 hours a day , 7 days a week . And then he lost his mind and we fired him .' Basically this article.
Look at me Morty, I'm programmer Rick!!!
3:00 in a previous project, I used to print out the mechanical drawings I needed for reference, and pin them onto my cubicle walls. On top of making it easy to find super fast what I needed to check/measure, it made my cubicle look like I actually knew what I was doing.
This looks like the story of The Phoenix Project, except that here Rick wanted the unlimited power
Interesting article. Definitely something we can all relate to in the article (whatever perspective)... but absolutely love all the comments here - a lot of the responses were not what I was expecting.
Probably Rick was tired of working with idiots.
I mean seriously, if no one ever pushed back on his designs for fear of being shutdown, then they don't have what it takes to work in this industry. You gotta stand up for your ideas and use evidence to back them up. If you can't, then smart guys like Rick will dominate you.
Albert Einstein probably had Asperger's; I think Rick did too. They absolutely crushed the guy with work and then threw it away and wondered why he got mad.
11:45 I fully believe this is a real story since I'm part of one story like that right now...
sorry and sorry
The guy described in that article is a regular developer with a junior mindset, a big ego, and at most average, if not below-average competency. The only reason he was considered "top talent" is the same reason all the heavy work went to him, why it took them years to understand where the project was going, why they had a single person filling the architect, team lead, product owner and developer role etc - generalized incompetence.
You know this is programmer fanfiction.
You know, I worked with a guy who trashed himself in about 72h. If he didn't end up in doctors office I would have talked to manager to send him for some time off. Unfortunately at the time I didn't realise that was actually the ideal employe for them. To say shit was piling up is an understatement
Everytime some dev says "you cannot comprehend my code" this is a red flag. Any genius developer is trying to make his code easy to read and understand. Failing to do so, makes it harder for your future self and for others. And failing to do so, makes it imho that you lose the title of "genius" and you are now competing for the title "egocentric selfentitled idiot".
Another problem was implementing edgecases too early. Only a small number of customers needed that function. So why not wait for the product to be ready and then implement them? Adding the complexity early, means you have to deal with that complexity for longer. That makes any development needing to deal with that complexity and making those changes also complex. Reducing the complexity reduces the work. Good for them to be able to do that. But why didn't they do that before?
@@RPG_Guy-fx8ns They replaced 150000 with a few thousand. That much code just can't be readable whatever it's written in.
@@RPG_Guy-fx8ns If anything, they did take control of the problem they were trying to solve by reducing the scope. Sometimes, "good enough" is good enough
We need Rick’s perspective on this. Get him on the stream
Wow they are really bragging about how they sent someone insane and then booted them for being insane
what really happened is they kept pushing projects on to rick and he would have to take care of everything. Rick was probably constantly asking for help.
best part here is they just ripped their code apart and introduced hundreds of possible failure points by using a bunch of opensource frameworks. Nothing like crushing a bunch of cubes through round holes.
I also had a rick on my team...
The problem was managment had no clue and he "produced" stuff which for a non technical person looked good even if the bugs backlog doubled every year since that rick joined.
Nobody could read his code.... the code was a mess
Once I told him that the code has at least 3 loops which we could remove and put it into one he screamed at me saying;" Stop being so logical"
One PO to me said once that that person is one of the best angular devs in Sweden... I just told him then the bar in Sweden must be really low....
This is far too common. Management usually don't understand a developers true holistic contribution to the productivity of the team and development of the engineering culture and product. They easily mistake busywork for productivity, even if the developer achieves this busywork by cutting corners or shifting workloads to other individuals or departments. Or maybe they do understand, but prioritize short-term gains for the purpose of meeting targets.
@@sbqp3
> "To mistake busy work for productivity and short term gains"
Yes, down deep this is the issue. Agile/Scrum mindset has ingrained very deep making everyone thinking busywork and short term is all that matters, From management to poor Rick itself. You can see how deep he was in this mindset too, Sprinting means being in a rush eternally and prisoner of short-term mindset until it explodes like he did
That's the reason why kings preferred ruling over idiot subjects and attempted to kill off their best generals as soon as the war was over.
This sounds like there was a company that had one competent guy in it, and all the other villager plebs rallied against him.
The described behavior of rick is not competent.
He sounds like he used his technical knowledge to justify acting toxic and destroying the workplace for everyone else.
He sabotaged the team so its more dependent on him so he can hold more power and use get-out-of-jail-free card
Management killed their top talent, and stopped supporting him when it became obvious that he needed some time to recover.
This hits a little bit too close to home. Kind of my dream scenario would be that whiteboard situation where I can help anyone with anything. I have talent in having a great amount of overview and memory of all sorts of components, past issues and past decisions, and how we got there. I am no Rick, but I can easily identify myself with almost all he did and can easily imagine becoming him and doing and saying all he did. I feel like he may have the same character as me. Very uncomfortable for me.
This was my path. I stayed in the team for like a decade without writing code any more, just coaching testers, giving archaeology sessions for stuck devs, and consulting on design choices. Feels good, and if you make sure only to do the work that no one else can, and to try to grow others into being able to do it, then it's not even a trap.
2:20 STOP PUTTING DOT INSIDE "", it makes no sense, idc if its a rule, it makes no sense
"Hello;" does this makes sense ? NO
Listening to this, I think I may have been on my way to becoming a Rick. Course correcting effective immediately.
How? What about your managers and clients who use all these extra features, you can't really fire them, right?
@@az8560 by a healthy division of labour and actually trusting my team's ability to come up with solutions. There's too much work and too few devs. My team is all junior devs so I have to train them and help them with their problems (even though I am a junior dev still), on top of doing my own tasks, which are piling up at a steady pace.
My team at my company historically was a small group where the design engineers did everything from management, to product engineering, to design engineering while micromanaged by the product line engineer. The PLE decided enough was enough, banded the team together to expand their offerings and earn the faith of corporate. Now we have 2 managers, 2 product engineers, 1 design engineer 1, 2 design engineer 2, 1 senior design engineer, and our PLE at the helm without the micromanagement. Growth unlike anything we've seen, collaboration across the board, and everything is dandy. We don't depend on any one person or small group of people to do stuff.
So fun watching prime slowly becoming Rick 17:15
He needs to add the burp there as well
I've been in something that was starting to develop into a similar situation and I recognized what was happening and killed it early. You never want to be "that guy". Just sat down with management and was honest with them. Just about every place I worked at, I would always ask my manager in one-on-one's "what would happen if I got run over by a bus." And if the answer was something like "I don't know.. the company would be screwed..", I told him he should do something about that. B'cos you never want the success (or failure) of the project all coming down to one person, and if it does, you never want to be that person who success or failure is riding on.
You never want a rock star in a team, I'd rather work with 5 average developers than 1 rock star developer. They always build their own ivory tower only they can understand and maintain and demotivate the rest of the team faster than you can say kumbaya.
After reading this I expected the final line to be "And then everyone stood and clapped while bowing in respect for the managers that created the solution for the problem they created"
The fact that 10% of his code stayed for final product means Rick is at least a top-bar Principal Engineer.
This whole article reminds me a lot of a book called The Phoenix Project. Really great book. Would actually be interesting to have you read on stream or do like a book club or something like that.
People are defending Rick in the comments here. Yeah, I'm sorry, even if he wasn't the only one who was in the wrong - he's at least 90% of the problem.
What I see in this article:
*Rick was writing a lot of clever code that went unchecked.* It's easy to make stuff overcomplicated when the project isn't mature enough yet, and it can easily fly below the radar because, well, it works (for now), so the management won't question it too much. Major violation of YAGNI, happens all the time, especially by "geniuses".
*People mistook the complexity of Ricks solutions for the sign of his intelligence.* Ironically, Albert Einstein (not Rick, the real one) said “The definition of genius is taking the complex and making it simple”. Yet in reallity, whenever we see something complex we often assume that it's we who are too dumb to understand it, and not the creator who made it so complex could have found an easier solution. Impostor syndrome, that many developers do have, doesn't help.
*Rick made himself irreplaceble.* It's sort of a meme that you should make a project so unintelligeble that you will never get fired. Only Rick, being an actual genius, followed the advice IRL. And it didn't help anyone to try to make him more replaceble because
*Rick was a control freak.* Didn't allow anyone else to make any technical decisions. Didn't want to delegate anything even when the house of cards was crumbling. Didn't write any documentation, because he didn't actually want anyone to understand the project on their own. He wasn't working 7 days a week because management made him, but because he didn't want any of his dumb coworkers to ruin his masterpiece. Because
*Rick had an ego the size of his codebase.* He loved the status of smartest guy in the room. He loved that everyone would come to him for advice. Eventually, the code became so complicated, he himself was having trouble understanding it, I think. Thats why there were so many bugs, and that's why the deadlines were running away. But the ego prevented him to see the failure of his ways. How could he fail?! He was the top talent, he was the king of the hill!
Unfortunately for him, the size of his ego generated the gravity field so strong it just had to be dealt with.
Honestly, fuck Rick.
well, a lot of these attitudes were affirmed by the team. For sure, he did overestimate his ability. If everyone depends on you, it takes real effort to not let it get to you. I've been in a similar situation as Rick and i noticed similar attitudes within myself. Luckily i chose not to let that get to me as Rick did
I’ve worked with three ricks.
The second and third I was much more experienced and in more of a lead/managemnt role. Saved them both.
The first was myself. “Push him into burnout and fire him” resonated hard.
The trick to managing ricks is to be the rickiest Rick.