7 ms·
If someone completely new to my codebase came along and tried to evaluate my code I'd laugh. You can't jump in and "evaluate" without knowing context and being
by lohii 4y ago
If someone completely new to my codebase came along and tried to evaluate my code I'd laugh. You can't jump in and "evaluate" without knowing context and being familiar with the features.
- thepasswordis 4y agoDo you not think you could sit down with somebody and explain it?
- Aeolun 4y agoNew people regularly join our company and evaluate our code. Why do you think you couldn’t do that without joining?
- closeparen 4y agoNew people regularly join our company and take a few weeks to become productive at making small changes to one or two modules out of 5,000+ in the enterprise.
- SketchySeaBeast 4y agoHow long does it take them to be fully productive in the systems?
- Aeolun 4y agoAbout 6 months. That doesn’t mean they don’t instantly have a general idea of the quality of the codebase. The amount of WTF’s decreases significantly after the first 2 months (when they give up and accept that that is just how it is).
- alchemist1e9 4y agoWhat’s more funny is how people commonly believe like this their code is so special or different than everyone else’s. Reverse engineering a large code base is not anywhere as hard as most software engineers somehow believe. I was tasked with analyzing a large code base from a company that my employer had been an investor in and as part of their investment had been given IP rights, the company employees were floored when our team, lead by me had ripped apart their system into multiple components and reused them in way they hadn’t. Trust me if one is experienced enough they can understand your code perfectly fine, it’s definitely not as special as you think it is.
- mhh__ 4y agoThe code is almost never special, the business processes are. Everything seems so incredibly trivial until you reach something that isn't.
- mden 4y agoAgreed. Most code at the top tech companies isn't interesting or even necessarily good. The hardest part of jumping into a new code base is almost always understanding the problem it's solving rather than the technology used to solve it.
- coldcode 4y agoAt my last employer before retiring (not tech but used a lot) has a very unique (and way larger than Twitter) complex set of businesses. They change at an insane pace and often involve things that in the end don't ship, resulting in crazy complex code base networks. We also had 100's of teams building every kind of software imaginable (server api's, web apps, mobile apps, internal apps, hardware with embedded code, etc). Anyone from the outside coming in cold to examine the code would have no idea where to even start, much less be able to evaluate anything. It's not that any individual thing was necessarily complex, but there were so many interconnected business practices and related businesses that understanding how they relate is very hard for anyone who has been there for years much less someone from an unrelated industry. For example you could look at my team's mobile codebases and probably figure out what was going on, but understanding all the services we consumed, and what they consumed, etc. (given the deep mix of micro services and macroservices) would make understanding the why of the entire system impossible.
- 8192kjshad09- 4y agoReally interesting story, approximately how many lines of code were in that codebase? It's hard for me to imagine someone grokking a 10M+ line codebase without external help, but I've never tried it. I do agree with the assertion that most codebases are not as _special_ as they like to think.
- 4y ago
- ordu 4y agoI don't think Elon is trying to evaluate the code. It seems to me he is trying to evaluate people.
- throw_m239339 4y ago> You can't jump in and "evaluate" without knowing context and being familiar with the features. Yes you can, it's called an audit and there is nothing wrong with that. The company you work for should have regular security audits for instance, ideally done by a third party rather than internally to eliminate bias. This isn't a "code review".
- bagels 4y agoI'd argue you've done a bad job if a new person reading the code can't follow it.
- friend_and_foe 4y agoI don't think the goal here is code review. They're trying to gauge a few things: 1) are you competent? 2) are you coasting or genuinely contributing? 3) are you actually dedicated to improving the product or more concerned with office politics and inserting your ideology? A quick interview and a little demonstration of contribution can help assess these things significantly, you don't have to understand the codebase that much to do it.
- xiphias2 4y agoOf course I first read the documentation to understand a code base, but then just usually jump in to the part that I’m interested in. If it’s not spaghetti code base, it’s not that hard to do that.
- aiperson 4y agoEh, if you're competent, then sure. But some people have obvious code smells. You'd be surprised. A quick glance and it's obvious they're not competent. 6 layers of inheritance. Composition loops everywhere (A is in B, B is in A, A and B are in C, C are in A and b).
- akomtu 4y agoIn this case, it would be your new boss asking to make a short presentation of your work, and he has trusted software devs who can smell bs a mile away.
- thrwyoilarticle 4y agoYes you absolutely can. If there are obvious mistakes that would be caught by linting or review, you can know that the standard isn't high.