Тёмный

The Hidden Cost Of Speed 

ThePrimeTime
Подписаться 586 тыс.
Просмотров 105 тыс.
50% 1

Recorded live on twitch, GET IN
Article
stackoverflow....
By: Brayden A. Hord
My Stream
/ theprimeagen
Best Way To Support Me
Become a backend engineer. Its my favorite site
boot.dev/?prom...
This is also the best way to support me is to support yourself becoming a better backend engineer.
MY MAIN YT CHANNEL: Has well edited engineering videos
/ theprimeagen
Discord
/ discord
Have something for me to read or react to?: / theprimeagen
Kinesis Advantage 360: bit.ly/Prime-K...
Get production ready SQLite with Turso: turso.tech/dee...

Опубликовано:

 

24 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 312   
@nyanray
@nyanray 14 дней назад
"don't tell me what to do internet moustache man" LMAAAOO
@tirushone6446
@tirushone6446 14 дней назад
BRUH
@baxterdevin
@baxterdevin 14 дней назад
Damn, beat me too it! 🤣🤣🤣 Flip, you are Legend. Never stop being you.
@tiagodev5838
@tiagodev5838 14 дней назад
Hahahaha this made me laugh so much!
@flipmediaprod
@flipmediaprod 8 дней назад
it aint much but its honest work🙏
@williamtanardi3952
@williamtanardi3952 14 дней назад
00:32 Flip, truly a Godsent editor 08:42 L take, we will not be accepting this slander
@rawallon
@rawallon 14 дней назад
8:43
@flipmediaprod
@flipmediaprod 8 дней назад
that was real footage btw
@lesh4357
@lesh4357 14 дней назад
I think that article was all over the place. When a marketing guy came to me wanting something to demo, I said "yes, but once you're finished with it, it's in the bin, trash, junk. It's a MOCK UP, a facade. It will never be added to, developed or used in any other way". He looked puzzled, I told him "I can knock some cardboard boxes together, put something round on each corner and say, there you go - it's a car. It may have a resemblance to a car, but it never will be a car, will it ! ". I explained it has no real functionality, no validation, no error handling, no way of integrating it with REAL code. I gave him an example of just ONE input field - what if the user puts this in, what if they follow the number with a character, what about a space here and there. I explained 90% of the code is what you don't see. He began to get the idea. I then confirmed everything we said in an email CC-ing relevant people in. I also got him to confirm via email that he understood it takes away from real development work, and the cost comes out of his budget.
@JanVerny
@JanVerny 12 дней назад
This is a different problem. Of course managers don't get, that a car with no engine is not just one quick fix away from winning a Grand Prix. But in my opinion the problem discussed in the article is that project requirements often start with describing a single-seater that can corner well. And end up with wanting a bulletproof SUV with designer cup holders. So if you go fast and deliver features quickly at the start, you're likely to lock yourself into a path that's not compatible with changes in requirements. While if more attention is given to first actually develop the product and also to write more generic future proof code, you could potentially get more done by going slow.
@garma7939
@garma7939 8 дней назад
I do think this isa problem that is smaller in real life than you make it look though. The issue with inputting wrong characters should be handled by your forms library or at least by a standardised component that is ready to be used. Are you telling me you rewrite all that code for every input field? Adding a simple feature that uses standard components that are already in use (extra fields etc) really should be a 10 min job. The whole idea of an architecture is to make jobs like these easy.
@KucheKlizma
@KucheKlizma 8 дней назад
​@@garma7939Right just recycle a pre-existing standard forms library with zero research when rapidly prototyping a novel app that might be relying on a novel framework that might have entirely different escape characters and code injection vulnerabilities. That's definitely gonna allow a prototype to be shipped straight to production ready. Yes, I'm being sarcastic.
@garma7939
@garma7939 8 дней назад
@@KucheKlizma that's not what I said. I said reuse what you already have in production. You SHOULD have a forms library in production that already takes care of those issues.
@DonAlonzo
@DonAlonzo 14 дней назад
The most permanent thing in life is a temporary solution.
@user-jm6gp2qc8x
@user-jm6gp2qc8x 14 дней назад
That’s deep, actually.
@alexgabriel5877
@alexgabriel5877 14 дней назад
'Nothing is so permanent as a temporary government program. (c) Milton Friedman
@anonymousperson7536
@anonymousperson7536 14 дней назад
The entire point of the video is that this is not true.
@Leonard0F41G
@Leonard0F41G 14 дней назад
@@anonymousperson7536 What company you work at?
@eggmeister6641
@eggmeister6641 13 дней назад
@@Leonard0F41G he's unemployed most likely
@rick-lj9pc
@rick-lj9pc 14 дней назад
I agree that the critical flaw wasn't making a quick and dirty demo, the critical flaw was not saying hey if we want to do this for real we need to take the time to develop it for real.
@HartleySan
@HartleySan 14 дней назад
Early in my career, when I was too young and naive to know any better, I got myself into this exact situation. I learned a lot from that.
@adammiller9029
@adammiller9029 14 дней назад
The critical flaw is not asking how they will use it. You don't present a bunch of ways something can be used. You ASK questions, you have to actively seek information when you do requirements gathering. You can't expect your end users to understand what you're going to code well enough to know what they need to tell you, so you have to ASK. You shouldn't even have a demo of anything at all until you've asked stakeholders about what they want, the use cases for it, and plans for the future. These are very basic things that would take AT MOST an hour to hash out. You can't skip requirements gathering. Trying to work on solving a problem you do not understand is a rookie move.
@mangalegends
@mangalegends 14 дней назад
I remember working on a legacy desktop application asking why things were done a certain way, and I was told that the application was originally a demo that was pitched and won a contract. Apparently after the demo they were going to rewrite it correctly but the customer said something along the lines of "I don't understand, I don't want it redone. I want what you just showed me and I want it now" so their hands were tied
@HartleySan
@HartleySan 14 дней назад
@@adammiller9029 Yes, a rookie move my company makes all the time.
@deathZor42
@deathZor42 14 дней назад
@@mangalegends it's on the sales guy to explain that to the customer if they can't your sales team sucks.
@caedenw
@caedenw 13 дней назад
Easy analogy: you hired me to run a burger restaurant, then tried to sell to wholesale supermarkets but you still want me to cook everything
@privacyvalued4134
@privacyvalued4134 13 дней назад
35:41 "It's extremely difficult to add a feature to a big [100,000+ LOC] codebase." Not if you architected it properly. I've written hundreds of thousands of lines of code, if not millions. I take my time figuring out my architecture/core design BEFORE writing code so I don't wind up in a situation where I can't easily add new features.
@bluedevilbball4life
@bluedevilbball4life 14 дней назад
Thank you, Flip. Stuff around minute 9 is what i needed today
@flipmediaprod
@flipmediaprod 8 дней назад
got you my man🙏
@Red4mber
@Red4mber 13 дней назад
The hidden cost of speed is depression, anxiety, high blood pressure and tachycardia
@brentsaner
@brentsaner 14 дней назад
Yak-shaving isn't bike-shedding; it's dependency task completion. e.g. "I want to do X... so I am doing A right now, because X depends on W, which depends on V, which depends on U and T, which depends on..."
@meatcow417
@meatcow417 14 дней назад
Thanks for keeping the ad break Q&A in, those of us who spend most of our time on RU-vid don't get much Q&A.
@d3stinYwOw
@d3stinYwOw 14 дней назад
About your take on power to say no/pushback. Yes, they can pushback, until some product manager comes out and says "I am pm and do as I say" ;)
@7heMech
@7heMech 14 дней назад
00:32 gotta love the heads up 3:44 can see it was true 😅 Added a sponsorblock segment to skip duplicated part 👍🏻
@WindosNZ
@WindosNZ 14 дней назад
WE DON'T SHIP ON FRIDAYS! (Unless you're Flip. Flip can do no wrong.)
@penguindrummaster
@penguindrummaster 14 дней назад
Saw a really good talk from NDC where the speaker suggested the idea that how we talk about technical debt is wrong (or ambiguous), and how we deal with it is more important. Specifically, he used a few quotes from articles to try and highlight a correlation, with the ultimate conclusion being that the problem is, specifically, *unmanaged* technical debt. Then, he finds inspiration for how to contend with technical debt (managed or unmanaged) from a Victorian-era housekeeper's manual. That is to say that, to keep a house (or codebase) tidy, one needs to constantly be making small strides toward the ultimate goal of cleanliness. It will never be completely clean or perfect, but the vigilance will avoid a situation of unmitigated disaster that cannot be recovered from. In short, unmanaged technical debt is the problem, and all codebases must make active strides to keep it tidy over time, or else it will become untenable over the long term and everyone is unhappy.
@spaceowl5957
@spaceowl5957 14 дней назад
like this. I always try to leave a piece of code less messy than I found it. If I’m already spending time understanding what it does, I might as well write a comment about the confusing bits, so it’s easier the next time I look at it. If I’m already going to have to restructure it to add a feature, might as well try to simplify and improve the structure a little bit. I cannot write super well structured code the first time around, but I continuously try to make things a bit nicer than I found them and overall I find most of my codebase pretty easy and pleasant to work with, and I feel like it’s the most practical approach for managing messiness and complications in code for me.
@eric.p.hutchins
@eric.p.hutchins 9 дней назад
Agreed I think it's a really healthy way to view tech debt since, as Prime mentioned, all code has tech debt. You never really get out of it but you can make the best of it and learn to prioritize and constantly make small improvements. And I enjoyed that Kevlin Henney talk as well. He has a nice way of focusing on how we speak as developers.
@codegocomau
@codegocomau 7 дней назад
"Uncle" Bob Martin makes this point as well: your codebase becomes an unmanageable mess because you never took the time to tidy it up as you went along. Treat it like a mechanic's workshop and you'll always know how to get started on the next job.
@Hebruwu
@Hebruwu 5 дней назад
Isn’t that the principle behind LEAN?
@penguindrummaster
@penguindrummaster 14 дней назад
Some thing I've noticed about your videos is that you'll read an article that says "I made a mistake," and when you identify with the circumstances, you will fall back on how you viewed your outcome. If you see your outcome as a mistake, you'll agree with the author, but if you see your outcome as doing the right thing then you'll say that the author is wrong. I'm not trying to say I'm a paragon of virtue here, since self-awareness is a very hard skill to have. But I get the feeling you sometimes don't give the author their due. Presumably, they've gone through their experience, and this is their conclusion/resolution. That said, as a viewer (and a frequent one at that, lol), the thing that fascinates me in these is getting two viewpoints simultaneously. I'm not trying to tell you how to run your channel, just remarking on the style I guess. I'll probably keep watching, because, if nothing else, you read a lot of really insightful articles about the industry. At your best, you provide a really helpful insight into software engineering that even I (a senior developer) can find informative. Keep doing you, but maybe this causes you to reflect on how you approach some of these things.
@thekwoka4707
@thekwoka4707 8 дней назад
Them experiencing it doesn't inherently mean they got the right takeaway. But there could very easily be something left out of the narrative that made that a good takeaway. I'm most reminded of that "we migrated with prisma. never use prisma" and 80% of the things they said were serious issues with what they were trying to do and not with prisma, and the last 20% was something people sometimes complain about but nobody has yet actually demonstrated was a problem
@penguindrummaster
@penguindrummaster 14 дней назад
Shout out to Flip! Bro had me in stitches at 8:35
@flipmediaprod
@flipmediaprod 8 дней назад
appreciate you brotha💪
@Laz3rs
@Laz3rs 6 дней назад
8:58
@CristianNazare
@CristianNazare 14 дней назад
6:00 no, sometimes we don't have the possibility to say anything. My manager asked me for a approx timeline for the new project frontend implementation. I told him 3 weeks - he said i have 2 weeks. Did it in 2 weeks, with me pushing extra work time from my own free time and weekends. The client was not satisfied with the implementation. Got into an argument with the manager on the amount of work and time available, and he spews out nonsense "i have a team ready to do all of it in 1 week". Eventually I was the one who fixed and did everything. Instead of the 3 weeks I initially requested the project took 2 more weeks to wrap-up (edit:still not sure if i'll be getting paid for that also). No, developers usually DON'T have a say.
@StefanErwinBaumer
@StefanErwinBaumer 14 дней назад
When they cut your time, you ask them what features to cut / make a priority list so you can get as many important features done in the timeframe as possible. (there's diplomatic ways to phrase this) It is true though, that sometimes people don't give you a choice and just "force" you to fail a deadline and then make you responsible for a deadline you didn't even commit to. In this case, you should leave the company rather than work for free.
@thewordywizard4389
@thewordywizard4389 14 дней назад
I left a company exactly because a CEO did this. Unfortunately the one with the purse strings makes the decisions
@SourceOfViews
@SourceOfViews 14 дней назад
I mean there is always abusive employers, but usually at least, managers will actually listen. If they don't they are shitty managers. At that point the best thing to do is probably to just leave once you can.
@katanasteel
@katanasteel 14 дней назад
If he has a team ready to do it in 1 week, call his bluff and come back in 1week when nothing works and say now it'll be 4 weeks
@SourceOfViews
@SourceOfViews 14 дней назад
​@@StefanErwinBaumerdon't forget: DOCUMENT the deadlines you gave vs. what your manager gave the customers. It doesn't help too much if the entire company is fucked, but at least you can prove that it's not your fault.
@AlexMax2742
@AlexMax2742 14 дней назад
Being able to assertively push back is a skill, but it's not a skill that everyone can learn, and it's not a skill that works _for_ everyone, and it's not even a skill that works in some dysfunctional job environments.
@DaremKurosaki
@DaremKurosaki 14 дней назад
That last part is especially true. Sometimes management can be so disconnected from reality that any disagreement is treated as heresy. If something isn't deliverable, it's your fault rather then their unrealistic expectations.
@olbluelips
@olbluelips 14 дней назад
You have to learn this at some point or you’ll be walked on your entire life
@AlexMax2742
@AlexMax2742 14 дней назад
​@@olbluelipsYou have to have the right personality type that can get away with it, otherwise you run the risk of coming off as a a**hole or a b**ch. I've had much better success being fluent in "soft" business language and having an "Aw, Shucks" CYOA policy.
@JayMaverick
@JayMaverick 14 дней назад
Sounds like LinkedIn fan fiction.
@tbg07
@tbg07 14 дней назад
Bro!!!!!!! 😂😂😂😂😂😂😂😂😂😂😂😂😂😂
@kyguypi
@kyguypi 14 дней назад
The assertion that you should say "oh yeah, I can't get this thing set up in time for this important deadline because it would be too messy" instead of "sure, I can get this set up before your important deadline, but I'll need some time afterward to clean it up" is wild.
@DeveloperToast
@DeveloperToast 14 дней назад
Inducing Scope Creep, Technical Debt, Poor Resource Allocation, and Reputational Risks 101
@kyguypi
@kyguypi 14 дней назад
@@DeveloperToast I'm not sure what you mean by this.
@UniversityOfMassachusets
@UniversityOfMassachusets 14 дней назад
@@kyguypihe’s probably saying to make it good or just don’t make it at all otherwise you risk the following list he commented
@kyguypi
@kyguypi 14 дней назад
@@UniversityOfMassachusets but... Y'all know you can edit code after it's written, right? You can rewrite something. In the real world, there are business pressures that sometimes require that you have to get something together right now and then clean it up later. Technical debt doesn't matter if you're unwilling to meet business needs. If you're that afraid of technical debt, you can avoid it entirely by never writing code. In the real world, I write things fast to meet real world deadlines, and tell my CEO that I will need time later to clean it up. That's way better for him then me refusing to meet the real deadline and making the business suffer for it, and then I actually take that time to rewrite the thing, which turns out way better anyway because writing code twice actually tends to produce good code.
@austenmoore7326
@austenmoore7326 14 дней назад
Yeah then if you get asked to add stuff onto it you can just say something like “I’ll add that but the first solution was kinda duct taped together because you needed it really quickly, so I’ll have to spend some time fixing that before I do any add ons”.
@the-answer-is-42
@the-answer-is-42 13 дней назад
Reminds me of the university I used to study at. I heard the IT guys say they had no idea how the system actually worked. It was a big mess and changing anything was a horror because no one understood how the different parts of the system interacted with each other. Anyway, mentioning it because it seems like the "quick patch over quick patch over quick patch ad nauseam" the article was talking about. I think we just need to adapt the speed to the project and how critical it is for business. An internal website has a completely different set of requirements than firmware for medical equipment.
@michaelpingleton776
@michaelpingleton776 14 дней назад
8:52 I love Flip's sense of humor 🤣
@bianchialex
@bianchialex 14 дней назад
*Don’t tell me what to do internet mustache man*
@Zinbhe
@Zinbhe 14 дней назад
I love you too, Flip
@arik-mlvx
@arik-mlvx 14 дней назад
Scotty: "Star Fleet captains are like children. They want everything right now and they want it their way. But the secret is to give them only what they need, not what they want." Geordie: "Yeah well I told the captain I'd have this analysis done in an hour" Scotty: "How long would it really take?" Geordie: "An hour!" Scotty: "Oh you didn't tell him how long it would really take did you?!" Words of wisdom from one of TV's greatest engineers
@tesuji-go
@tesuji-go 14 дней назад
The key word here is “opportunity”. When business people say this, every line of code you write for them becomes part of a new or existing product line. It’s only a demo if the demo fails to land the customer. If you succeed, you also fail. Unless you treat the code as a product.
@visaac
@visaac 14 дней назад
Flip is a W editor. I love your chemistry Article was mid tho
@gund_ua
@gund_ua 14 дней назад
The most common issue with abstractions is "leaky abstractions" that's when they become brittle and don't really serve any purpose in the system. However a well designed abstraction will get you really far but to understand what makes a good abstraction early on requires a lot of experience - hence there is a common understanding that premature abstractions are bad, but if you will not do them or at least plan them in your head and then see what worked and what not - you will never get the intuition and skills required to do this better early in development. So do not listen to anyone and go think and design your systems and learn from your own mistakes but please don't use React - no amount of designing can help you there lol
@monad_tcp
@monad_tcp 14 дней назад
tech debt is great, it means we have infinite job to do. if software had no debt and could just be done. we would perhaps need 1% of the engineers we have. that's why when debt is too high you just throw away things and start again
@msc8382
@msc8382 13 дней назад
I'm posting from an anonymous account, and you don't have to take my word for it, but I feel compelled to share my perspective. Its a long story that could have been a blog post. I'm not regretting anything though, and you've been made aware of the nature of my comment. I’ve been in software engineering for over 16 years, and there’s no platform or problem I can’t tackle-whether it’s working with embedded systems at a register level or building no-code solutions. The only real constraint I face is time. In my role as a senior software engineer, I regularly collaborate with cross-functional teams and deal with quality assurance. One recurring issue I encounter is technical debt. In my experience, both in professional environments and open-source projects, most technical debt stems from poor design decisions-specifically, action-at-a-distance problems. Blindspots of their own design. It’s not the code itself that typically causes tech debt; it’s the underlying architecture that wasn’t designed to accommodate future changes. If you build a framework without prototyping and testing it against the right criteria from the start, you’re setting yourself up for failure. Inadequate testing practices, especially the notion that tests can be an afterthought, exacerbate this issue. One example that comes to mind is to use a third party service immediately to solve a infrastructure or functional requirement, without actually testing the system first yourself against your own criteria. This disconnect between coding and maintainability (testing or refactoring) is where most developers fall short. When technical debt eventually catches up, teams go into maintenance mode, trying to patch things up by retroactively adding tests to stabilize the system. Especially if you didn't test the external services, that's when you first learn if the instabilities of such services. The real issue is that the infrastructure was never designed for self-testing. A solid engineering approach would involve building the system in a way that prevents action-at-a-distance issues from arising in the first place. Testing shouldn’t be an afterthought; it should be integrated from the beginning. Of course, if you cannot explain to your bosses why this is needed, nobody is going to pay for it. Therefore, you must already know this needs to be done, and communicate it, or all testing will automatically be an afterthought. You're being sabotaged by the very people you work for, by YOUR own design. Engineers push back when the evidence shows a choice is bad. The moment your bosses give the green signal regardless, you're absolved of any responsibility of it going wrong. But if you don't communicate, you're still responsible by proxy of your role. A developer who does not communicate, cannot really provide a stable product because you don't have the resources to do it. It requires explanations. The difference between a software engineer and a developer often boils down to understanding and applying engineering principles. Engineering involves anticipating blind spots in your design and addressing them early on. Many who call themselves "engineers" are really developers stuck in a cycle of managing tech debt because they don’t apply these principles effectively (as a team if its a team effort). Having a large amount of tech debt is often a symptom of two things: either the organization fails to define criteria properly, or individuals are too confident in their abilities and overlook the importance of engineering practices. From my experience, most developers fall into the latter category-they’re good at coding, but they don’t understand the engineering discipline needed to prevent problems before they occur. A key way to distinguish a true engineer from a developer is by how they explain their code. Engineers will tie their explanations back to core principles, showing how they’ve accounted for potential issues like action-at-a-distance. Their explanations bring clarity to even the most complex problems because they've done the hard work of analyzing and understanding the underlying system. Developers, on the other hand, often can't articulate these connections and see tech debt as an inevitable part of software development-when in reality, it’s often a sign of poor engineering. As a software engineer, thanks to developers I'll have infinite work. Software engineers actually help finish the job in a sustainable (works for 10+ years) way. If you're working on a project that is already in maintenance mode after 2 years, that's a big big red flag of a dysfunctional company. Its perfect, all the dysfunction gives me significant more time and resources to apply engineering in. After all, engineers can solve problems developers can't. That is what makes an engineer an engineer. If you can't solve ANY software problem as an engineer, you're not an engineer. Note that I'm not saying anything about the time it takes. Some problems take decades to solve, even as an engineer. But you can solve them. If you cannot tell yourself that you can solve a problem you know NOTHING of within let's say, 25 theoretical years, you're not engineer. That's my metric for it. In that timeframe, you can either proof some parts cannot be solved, or approaches can be formulated to mitigate the potential action at a distances. So what do people do who cannot apply engineering principles: They say: "Oh no, our tech debt is now so large, we can no longer properly maintain the existing features! You know what, this will cost us too much! Let's re-develop the same product, only to end up in the same scenario, many years later! Lets not at all learn from our prior mistakes!" And such, the cycle of a new major version of a product every year has come to existence. Good for fooling customers who don't even know what they're working with, horrible for business health. You're essentially: "My prices need to be high, so I can afford doing the wrong thing over and over, and not learn from it. So instead of actually improving, we'll tell everyone we've a high quality brand and up the prices of our products." I'm telling you.. at some point, marketing is the coverup of failure.
@bobbycrosby9765
@bobbycrosby9765 14 дней назад
I swear by the boy scout rule. It lets you write imperfect code and code that needs to improve - code that you're constantly touching - naturally does. Code that doesn't need to improve - code you're never touching - doesn't. Oh, and you shouldn't be getting permission to do these minor code improvements. It's part of the change. If you're never refactoring old code when new features touch it you're just making everything worse, and it will be a bad tradeoff in a very short amount of time - in a matter of months. Nothing about a change request forces you to do it in the worst way possible.
@JorgetePanete
@JorgetePanete 13 дней назад
I get that we "shouldn't" get permission, but in my case it was enforced by the... very functional... reviewer/senior in charge saying it costs too much time and money. We couldn't do it unless it was a task.
@goodfortunetoyou
@goodfortunetoyou 14 дней назад
I think the difficulty here is that if you're a single person doing something from scratch, you're going to get something very different than if you're in a massive org with top-down control over internal projects, with multiple layers of review. It's just not the same type of environment. Groups are more than one individual, and you can specialize and segment things. If you're an individual with multiple hats, you're going to bounce between things.
@kuhluhOG
@kuhluhOG 14 дней назад
8:38 I don't think they meant "low-code" as in the move to write as little code as possible and instead having it generated or the sorts, but instead as an environment where software is NOT the main money maker or really a money maker at all. Don't forget: Most software is not written by software companies, it gets created in companies on the side for some internal thing they happen to do, but either rarely see a customer or are just a really small part of the actual product the company sells.
@williamlvea
@williamlvea 14 дней назад
This is how you get to "Corporate policy mandates that all changes to production must have >80% unit, function amd e2e test coverage; must have no publicly known vulnerabilities; must publish x/y/z metrics, and must have an approved installation/rollback plan in order to be approved by the change review board"
@duckydude20
@duckydude20 13 дней назад
i feel depressed. today since morning, it went such bad. your videos, helps so much. thank you ❤
@GreeneThumbs
@GreeneThumbs 14 дней назад
We love you too, Flip.
@agustinaguero2610
@agustinaguero2610 14 дней назад
In my company, there are a total of zero test, unittest/ab/integration...none of those, nada You could say, "thats not a big of a deal if it is a startup", the thing is, this company is 20+ years old. Things break, and we dont know why, i added logging with sentry to aliviate entering the machine and searching the logs... the cto..coulnd care less about these things..."they dont add value to the product"
@JanVerny
@JanVerny 12 дней назад
I go back n forth on this, because working in such codebase, actually trained me to be more mindful of how I make a change and also gave me confidence in my ability to reason about code, that you don't get when every single line change goes through 3000 tests and 7 step review process. On the other hand, every now and then I change 300 lines of code at once and have no idea if everything is still going to work the day after.
@agustinaguero2610
@agustinaguero2610 12 дней назад
@@JanVerny its exacly this, cool thing to be mindfull of every piece of code, but when i migrate data/functionality, things breaks maybe 2 weeks on the line because you didnt consider a small functionality that you didnt know it even existes
@CodyDIY
@CodyDIY 13 дней назад
30:50 nailed it. As a supervisor I can tell you that the people who are constantly pushing back are not given the benefit of the doubt when they inevitably mess up. Choose your battles.
@JP-hr3xq
@JP-hr3xq 11 дней назад
I run a dev team. There are SIX product houses in our company who think we work exclusively for them. There are 10 product managers pushing for work to get done. I have two developers. I am not even supposed to write code at all, but I'm five projects deep while the other two are handling five between them. There is no solution because our exec said he's gonna "solve the systemic problems by hiring more management roles to increase oversight".
@richardclark9535
@richardclark9535 5 дней назад
Good the hear Uncle Bob might be back, he's one of your top tier guests.
@YaroslavFedevych
@YaroslavFedevych 14 дней назад
I have an impression that the author of the article got burned quite badly and the suggestion he is laying out here is overcorrecting. And since the burns still hurt, the style is so rambling.
@meryplays8952
@meryplays8952 13 дней назад
I like this article. It mirrors the situation in my organization and various behaviors. I tend to push back or implement something properly. But in a society in a dire financial situation, it is harder and harder. Management many times is willing to believe everything.
@olbluelips
@olbluelips 14 дней назад
19:20 “People don’t suck at design; it’s fundamentally difficult to design well” Same thing imo
@NostraDavid2
@NostraDavid2 14 дней назад
Skill issue, really.
@JanVerny
@JanVerny 12 дней назад
Not the same thing. If you sucked at design that would imply that you will never get it correct. Or at best you'll get it correct by an accident. Meanwhile acknowledging that design is a difficult problem just means that people should be given more time to do it.
@defeqel6537
@defeqel6537 13 дней назад
33:50 I think we can ALL agree that the curly brace belongs on the next line
@azdabka
@azdabka 14 дней назад
Thank you Flip!
@TheHackysack
@TheHackysack 13 дней назад
love you, flip
@AgentZeroNine1
@AgentZeroNine1 14 дней назад
The Prime sounds more and more like a LinkedIn CEO as time moves on. Makes me remember that I need to force myself to read more.
@monad_tcp
@monad_tcp 14 дней назад
6:11 what's the point of luring people getting accolades and getting praise if you're not going to use it later as leverage to speak for yourself and be very firm. That was a prototype, it was amazing, now lets build the real thing otherwise we might have problems.
@koderkev42
@koderkev42 6 дней назад
04:00 is why I don't take shortcuts. I've worked long enough to know, "it doesn't have to be perfect ... we just need something".
@madlep
@madlep 11 дней назад
Oscar nomination for film editing right there.
@lucasteo5015
@lucasteo5015 14 дней назад
opens up a project "ah what a wonderful day"
@tomorrow6
@tomorrow6 14 дней назад
Searches git for #cbt
@Duizelig
@Duizelig 14 дней назад
ohhh we are not talking about drugs? wrong type of speed i will come back when im sober
@privacyvalued4134
@privacyvalued4134 13 дней назад
The right fights worth fighting: Legal, ethical/moral, and handling money. If someone asks you to do something that will land the company in legal trouble, say no and point out why. If someone asks you to do something unethical/immoral but not necessarily illegal, just ignore them and work on other things - usually the problem will go away on its own. If someone asks you to do something that will result in mishandling money that is a gray legal area, push back hard. You don't want to involve yourself in any of those situations and you'll save the company millions in fines and even save someone, perhaps yourself, from jail/prison. You'll be amazed how often people request such things!
@leonidas14775
@leonidas14775 14 дней назад
Dilbert: "I have an infinite capacity for more work. But as the workload increases, the quality of work approaches zero."
@abhinavlakhani5637
@abhinavlakhani5637 13 дней назад
Love you too flip!
@DaverSomethingSomething
@DaverSomethingSomething 14 дней назад
This article describes a lot of internal tooling teams/engineers. Developer/Operators with mostly informal training and experience just band-aiding the company together, while the company gets used to the diving catch method of getting things done rather than a more organized and structured methodology. Even when R&D matures into quality practices as customers demand reliability, the internal tooling and infrastructure teams don't get the same customer quality requirements and don't develop reliable methodology. The things I've seen...
@JanVerny
@JanVerny 12 дней назад
Yeah, I work on internal tooling and as you say. It's a horror. I learned to overestimate a lot and spend the time trying to improve whatever I know management wouldn't approve me to work on.
@brianm.9451
@brianm.9451 14 дней назад
You’re right that how business values developers is one thing. But I work for a company that decided running fast was important. So fast, in fact, we turned prototypes into production apps. What did it cost us? Developer experience. Business has no interest in refactoring tech debt.
@ShootingUtah
@ShootingUtah 14 дней назад
Every manager I've ever seen has failed upwards! I've explained this before but it's the business gray man concept. People only get promoted when they're mediocre enough to not threaten their boss's position. So mid level failures get promoted!
@JanVerny
@JanVerny 12 дней назад
Impossible, I would have to be a CEO already. :D
@JoshDix531
@JoshDix531 8 дней назад
IMO, if you have to have a meeting about something a goal should be to define a precedent/procedure so that you don't have to meet on it next time. If the confidence isn't there make part of the procedure be to send a notice like "hey we did this last time, gunna do it again for this new issue x". So I am open to the "meeting about it..." idea but not the "every time" part.
@TimothyWhiteheadzm
@TimothyWhiteheadzm 12 дней назад
It is a common problem that management doesn't know what it takes to build good software. It is easy to do a quick mockup but a lot more time consuming to get a fully working product. But that is a communication problem between programmers and management and the writer seems to be solving this by changing his strategy so that management isn't confused whereas the correct solution is better communication
@adamhenriksson6007
@adamhenriksson6007 14 дней назад
The thing is that, by NOT speaking up and simply doing your best and doing what is expected of you, you put yourself in the best position humanly possible to increase your say, power and pay. You not only still have your job by fulfilling requests without complaining or challenging opposing interests, but later on you are guaranteed to be the single most productive member of the company by far while still having a larger headcount. All developers respect you and dare not to challenge your status as top dog IT guru, else they lose their access to eldridge knowledge they need to simply do their job. No risk of conflicts that risks your reputation or pay, no risk of failed rewrites getting you fired and replaced by consultants, and so much leverage you can argue for increased equity and not even feel bad about it. There is a reason speaking up is what is missing in these discussions. Not only is it hard, but it also does not pay unless that is what is expected of you.
@1234minecraft5678
@1234minecraft5678 14 дней назад
I like this Video for Flip, the BEST Internet Mustache Man Editor.
@AbhayKshatriya
@AbhayKshatriya 14 дней назад
Good job flip
@darkbit1001
@darkbit1001 14 дней назад
Arguing about a single line of code, or a variable name always brings so much frustration. I think some people just want to be difficult about things.
@worgenzwithm14z
@worgenzwithm14z 13 дней назад
YAGNI YAGNI YAGNI YAGNI WET WET WET WET KISS Dude then leaves and somebody else has to maintain all of that code
@nwsome
@nwsome 14 дней назад
18:44 Exactly!
@meatcow417
@meatcow417 14 дней назад
Nice knee Flip!
@dumbpenguin900
@dumbpenguin900 14 дней назад
This is me right now. Took over a project that was meant to be a temporary thing but now that service is being used daily and growing. The architecture is uneccessarily complex and simple functions and some raw sql would do the job. I needed to hear 6:00 because I was afraid of saying No and speaking up on why its so hard to maintain and update. Time to speak up!
@supriyomonndal6199
@supriyomonndal6199 14 дней назад
Flip takes the win .
@orterves
@orterves 14 дней назад
The best engineers will build only what they need for the initial project spike, but in such a way that they don't paint themselves into a corner in the future
@marceelino
@marceelino 9 дней назад
But it's still horrible tool and people are stuck with usesless product. I think devs are just full of themselves
@Konfab
@Konfab 14 дней назад
Literally doing the POC for a project right now.
@TrancorWD
@TrancorWD 14 дней назад
Not for nothing, but given how often my interview questions about extra work load are just lies or they have no idea. I just get them to outline the "that will never happen" scenarios, because working late is going to happen. And pto is bs
@jakezepeda1267
@jakezepeda1267 14 дней назад
Every time I watch one of your vids I feel like I know absolutely nothing and wonder how I even have my job.
@LionKimbro
@LionKimbro 14 дней назад
3:22 3:48 time loop? I thought I was imagining it, but there it is..!
@ScottimusPrime-j3q
@ScottimusPrime-j3q 14 дней назад
I've worked on multiple teams that really push this kind of culture. Once you push to ship something subpar in order to meet a deadline, product/execs will then set that as the base expectation moving forward. You think you're doing something good for the company by making it happen "just this one time", only to be pressured to do it over and over. Truly psychotic
@avocadoarmadillo7031
@avocadoarmadillo7031 13 дней назад
Haha the UFC Flip V Prime match: SO GOOD
@adambickford8720
@adambickford8720 14 дней назад
IME the kind of agency prime is talking about is well above IC dev pay grade. In practice your advice/warnings are ignored, and the blame game comes in the future.
@Lord-Sméagol
@Lord-Sméagol 14 дней назад
CrowdStrike: "We tested it with valid data and it worked, so we deployed it!" Try testing it with loads of duff data and see if it behaves! That's what you get for pushing it out the door before it's ready, especially something with kernel access!
@l3lackoutsMedia
@l3lackoutsMedia 14 дней назад
I think i was hired to add more features to a red glowing wall of erroneus typescript. Honestly the main purpose of typescript in that project was to underline all of the code with something red.
@alanonym8972
@alanonym8972 14 дней назад
It is funny that Stack Overflow dude considers that cleaning someone's mess is the worst part of the job. I love doing that. Just going through comically bad code, find what you were looking for (maybe with a lot of tests to make sure that you understand correctly what the code is about), making a POC for whatever your were there to do, then making the decision to either add your own bit of tech debt or fix it while you are there by adding the right tests and refactoring what you need. I love feeling the improvements of the code day by day, the constant discovery of something new, the feeling of always getting better at reading the code, debugging and understanding the domain. I love the feeling of deleting code that became useless because you just did it better, with a better understanding and a better technical and/or domain knowledge than the previous dude, or just because it was dead code to begin with. I love the constant juggling between "this is bad, but it does the job and it is not worth investing in refactoring for now", and "I spent WAYYYY too much time understanding that, I need to make it easier for the next time". I always find it more enjoyable to fix something existing rather than building something new, because I already know how useful that stuff already is. Maybe it is because I haven't seen any truly bad code yet (I am mostly a java/js/ts dev, so everything is salvageable, even years of gross negligence), maybe it is because management trusts me and knows their place when I talk about how I will approach it, maybe it is because I always give higher-than-reality estimates in order to have some clean up time, I don't know.
@sealsharp
@sealsharp 14 дней назад
I get what you mean. To me it feels like a puzzle when stuff gets ordered piece by piece and then there are moments when a few parts are decoupled enough to delete a big chunky piece it's like having a big block in tetris disappear, it's so satisfying.
@gglegenday
@gglegenday 14 дней назад
Primagen always giving hot turd takes in the first 10seconds. Amazing. Dont ever stop ❤
@RickeyBowers
@RickeyBowers 14 дней назад
Every complex successful process has failure modes (pathological cases in the extreme). Early on, all one can do is make note of the edges. These might appear out of testing or be fundamental in the design. What does scaling do to those edges? Sometimes they become intractable and the process is no longer viable.
@mattymattffs
@mattymattffs 14 дней назад
That bit at the end about the developer you don't want to work with because they fight everything. Yeah, that reminds me of someone. Not so much that he fights and argues ever change, but because he doesn't actually want to do them and instead argues about who's going to own that change. The problem is that he is a very senior developer and he he does own the product and he makes most of the decisions of the product. He is Rather fundamental to the company so you can't really get rid of it cuz it would immediately destroy some of our products. There are other people that work on them and fix bugs but no one nearly as instrumental as he is.
@rafaelpereiradias2567
@rafaelpereiradias2567 14 дней назад
9:42 sheet!
@FlanderDev
@FlanderDev 11 дней назад
I think i've never seen Flip edit this much before.
@duckydude20
@duckydude20 13 дней назад
18:59 agree, premature abstraction are same as premature optimization. 21:52 lets go e2e mentioned... 31:59 idk who said, loose small wars to win big war.
@am01264
@am01264 14 дней назад
Sounds like the story of a "beloved hero" that tripped over his own ego at some point. As a one man data wrangler & automator for my team, I find 60% of success is setting low expectations and being upfront with expected challenges. The rest is some combination of (1) writing code that does what it says on the tin (and no more); (2) assuming you will make mistakes (asserts) and reserving abstractions & infrastructure as tools of last resort. Put another way - less spaghetti mess, more tapas.
@keyboard_g
@keyboard_g 14 дней назад
Turns out in the long run Experts Exchange business model would have protected from ai scraping where StackExchange failed.
@niclash
@niclash 13 дней назад
Tech Debt == Legacy Code. Legacy Code == Code that is deployed in the wild.
@ov1kenobi663
@ov1kenobi663 14 дней назад
18:50 I hear you, but that's why we have 'façade' at least then I can make a "new" façade that handles all the functions "better" and swap them out in A+B testing
@ov1kenobi663
@ov1kenobi663 14 дней назад
you don't need to use all the principles to be OOP, encapsulation is often enough
@ov1kenobi663
@ov1kenobi663 14 дней назад
I literally have evidence where my type system "saved" my ass, lol
@gruntaxeman3740
@gruntaxeman3740 14 дней назад
There are ways to avoid that code-spaghetti-monster. 1. Gather us much as possible requirements and upcoming features so architecture and UI can extended to those. 2. You need one good developer to choose right architecture and tools and setup groundwork, making one simple feature so others can copy patterns from that. 3. Software design relates to organizational structure. This way you divide people into areas of responsibility. Like if some part of software is written using different language, that is logical point to reserve different people for these tasks. Adding more people doesn't help anything. Instead it is better that developers can fully focus on their area of codebase. When it is familiar, it is then more productive to work with it. Cross cutting stuff is tricky. Like premature optimization, also premature refactoring is evil. So it is not good idea to put too early stuff in src/common. Instead it is better that each developer keep their stuff in their own module, and they should not add dependencies carelessly. And when the software works, we can then refactor repeating stuff to handle all requirements in all modules. Technical debt happens but the problem is when technical debt is cross cutting everywhere instead of isolated to small part of code. So just don't add dependencies carelessly or make stuff to src/common that really doesn't cover all cases. Stuff in src/common should be something that whole organization can depend on now and something like 12 years future.
@JohnDoe-bu3qp
@JohnDoe-bu3qp 14 дней назад
Praise is short lived.
@marcsh_dev
@marcsh_dev 14 дней назад
Ive been doing what I call campsite programming. Every time I go into some section, I add my additions, and try to make the code better than how I found it. Basically iterative tiny refactoring in each change.
@LiveErrors
@LiveErrors 13 дней назад
every week i go over to my buddy, we make dinner and then go shooting we are threee people in the house at this point and that doesnt accelerate how fast we can make that dinner much compared to when we were two people, heck sometimes only one of us can do anything meaningfull at the time
@benjaminhon86
@benjaminhon86 13 дней назад
That's why you don't use rust to start your next project. Because you are gonna have to rebuild your app 3 times in the course of your development. With rust you are more baked in the more you write making it impossible to refactor or respond to design changes
@helloworlditsworld
@helloworlditsworld 14 дней назад
Prime can you do a video on what it was like running your own startup?
@JoeStuffzAlt
@JoeStuffzAlt 14 дней назад
Sometimes the management don't want things to be built properly. "We are doing these tests over and over to where if I code some integration test, 85% of the tests will go by fast." (situation is a very obvious ROI). "NO! NO TESTING!"
@matthewp4046
@matthewp4046 14 дней назад
W editor
@pencilcheck
@pencilcheck 14 дней назад
8:59 wow
@MaxHaydenChiz
@MaxHaydenChiz 8 дней назад
Re: type systems; you can *technically* prove any provable property of your code with them. But the languages designed to make this practical are either experimental (Idris) or obscure and intimately connected to a theorem prover (Galina, the Ocaml-like language inside of Coq/Rocq). How to make this stuff usable outside of the realm of "failure is absolutely unacceptable; no cost is too great" is something a lot of smart people have been and are still working on. Historically the issue was just that the overhead was about 10x. But in larger projects with lots of automation, it has come down significantly. With better tooling, it would probably be at about 50% for most use cases. *But*, you still have to have developers who can use it. And based on how lost people got when Prime tried to code Ocaml, I think we are a long way off from this stuff replacing Javascript. The underlying concepts would probably need to start being taught at the undergrad level as a first step. (How many undergrads even do basic verification with loop invariants and the like? I don't think many do.)
Далее
CloudFlare - Trie Hard - Big Savings On Cloud
26:04
Просмотров 40 тыс.
Should You Still Learn To Code? | Prime Reacts
1:00:21
Просмотров 311 тыс.
skibidi toilet 77 (part 3)
04:51
Просмотров 14 млн
Неплохое начало лекции
00:51
Просмотров 135 тыс.
Linus On C vs Rust Linux Problems
34:51
Просмотров 131 тыс.
Software Engineers have no Deep Knowledge in 2024?
8:54
Okay, I'm a bit scared now...
28:05
Просмотров 108 тыс.
How Senior Programmers ACTUALLY Write Code
13:37
Просмотров 1,5 млн
"We Ran Out Of Columns" - The Worst Codebase Ever
23:29
Memory Optimization
12:36
Просмотров 37 тыс.
Zen 5 And AI Doom w/ Casey Muratori
1:49:58
Просмотров 105 тыс.
DHH Is Right About Everything
2:02:54
Просмотров 226 тыс.
Microsoft Is A Blackhole Of Talent And Money
36:58
Просмотров 288 тыс.
skibidi toilet 77 (part 3)
04:51
Просмотров 14 млн