5 ms·
It's not about behavioural defects. It's that the _code_ is trash. It is unmaintainable and slows down all future changes, exactly because the person who wrote
by tsss 4y ago
It's not about behavioural defects. It's that the _code_ is trash. It is unmaintainable and slows down all future changes, exactly because the person who wrote it didn't take the time to think about the future or even good architecture in the present. Every time I touch their code I have to almost redo their work because:
- It's impossible to understand what is going on (For example when people load huge json or sql files into a single test and you don't know what scenarios it covers because they are too lazy to write dedicated minimal test cases. Another common offense is a not well-defined data model that gets mutated everywhere in dynamic languages like Python or JavaScript where you never know what shape an object has or where it comes from)
- Their code allows so little extensibility that following the same "pragmatism" as they did and just hacking it in would exponentially increase the complexity
- There are no abstraction boundaries which almost surely means insufficient test coverage (which I have to amend before I can even start with my own work so that I don't introduce regressions) or the tests are coupled so closely to implementation details that any change necessary for my own work will require me to rewrite all the existing tests
You are fast because you pawn off your design work to whoever comes after you. Of course you have fewer defects: your colleagues have to put in more time to maintain the same level of correctness or else risk introducing bugs. That's the cost of bad maintainability. It's well known that changing existing code is harder than writing new code, double so if it is not written with care. Someone has to be the janitor to keep the cruft from accumulating and if it's not you, then everyone else has to pick up your slack. Ideally, every person in the team would continually clean up and always leave a code base better than they found it.
Lastly, I want to say that there is very important difference between simple and easy and simple doesn't come for free.
- 100011_100001 4y agoIt sounds like you have personal experience in this. I hear you. From what I have observed through code reviews that I, or others, have looked at that doesn't happen with my code unless there is a very fundamental shift. Even then I try to keep my inputs and outputs clean so that pieces can be removed if need be. Of course I am not always as successful as I would like to be. Now my first 2-4 years, that happened a lot, and I am not going to claim that I was fast. I was slow and either the code review would point something out that I would literary have to start from scratch or the next person that touched it would have to. This was actually the driver for me to focus more on simplicity. I basically discovered a direct correlation between complexity and how bad my code was. To this day, if I catch myself doing something overtly complex it's a sign that my solution to the current problem is inadequate. Ironically, my response would be the same if my code was trash. So I won't be able to convince you regardless.
- deleted 4y ago[deleted]
- SamBam 4y agoI am confused why you are just taking the least charitable assumption based off OP's short post, and writing these long screeds just taking it as given that your assumptions are true.
- askafriend 4y agoI think they're just using this as an opportunity to rant about a personal situation.
- scarface74 4y agoMy personal assumption is that anyone who thinks of themselves as a “10x developer” using the criteria he is using, probably isn’t. He only has 5 years of industry experience and I’m assuming at only one or two companies.
- greenpeas 4y ago> I became a Jr Dev at 33 years old... > I'm now 42 years old... That's 9-10 years.
- freedomben 4y agoDo you know OP or have you seen their code? If not, you're making a lot of assumptions about them based on what they've said that are about as uncharitable as possible, to the point where it kind of seems like you have an axe to grind against OP. I'm speculating here but I think that you have some major hurt and pain in your past and something OP said is triggering the memory(ies). There definitely are (many) people in the dev world that do what you're accusing OP of doing, so I'm guessing you've been heavily burned by that (as have I). I actually moved industries to get away from that. In my case it was the Java (especially "enterprise" java) culture/ecosystem/etc, and things got a lot better for me when I wrote off my deep investment in Java and pivoted to C++ and Ruby. I would definitely advise to move around early and often, both company and tech stack. Try out startup life if you've been in big corp, or vice versa. IME startup life is a lot more prone to the "ship it fast" pressure that results in terribly unmaintainable code, so a big corp where you can work on a core product (core enough that it gets plenty of investment and appreciation but not enough that it's the number one money maker, otherwise the Eye of Sauron will be omnipresent and encouraging bad practices). Life is way too short to be miserable at work, especially in a field like ours where hold a ton of the cards.
- Too 4y agoSeen the same thing happen with devs that proud themself to write “simple” code. Sure, every individual script they write is simple in itself, but in the end you have thousands of them that don’t compose or reuse at all, with lots of implicit dependencies and assumptions between them. Leaving the rest of the team slowed down, trying to make sense of it, careful not to add even more to the existing mess, while mr “pragmatic” keeps adding even more copy-paste. Basically the total complexity becomes bigger than the sum of its parts. What you bring up is a common and concerning scenario. It would be better received without the accusatory tone, until you know more about actual situation. There are many good and fast developers that don’t apply to this concern.
- deterministic 4y agoI have worked with 10x developers. They exist. Not only are they more productive than most developers, their code is also more bug free than most developers. Get over it.