24 ms·
> No one made a conscious decision not to write tests, not to do PR reviews, or not to refactor. Then you've never worked at a company like my current one. Th
by larzang 7y ago
> No one made a conscious decision not to write tests, not to do PR reviews, or not to refactor.
Then you've never worked at a company like my current one. The developers all very much want to do those things, but are forced not to by a management that is suspicious of the value of these things no matter how many times avoidable bugs pop up or massive refactors become unavoidable to add new functionality and management gets "I told you so"-ed. Tests are regularly postponed to follow-up issues that mysteriously never make it into sprints and preventative refactoring is a non-starter.
What the developers want or are capable of is meaningless in a situation where they have no leverage over how they spend their time.
- Edmar 7y agoI am curious about your example. When you guys tell management about the best practices what is their response? What is their reasoning on not doing PR reviews, tests, etc ?
- Ensorceled 7y ago"We don't need the gold plated version, we just this to work and we need to ship it YESTERDAY" If you try to explain they just say things like "don't write bad code so you won't need tests and refactoring" My new rule of thumb is: don't work for companies without a technical co-founder.
- blt 7y agoI agree having technical leadership makes a huge difference. Still, most developers don't realize that if they push back hard enough, a lot of those loud "done yesterday" requirements dissolve. Non technical people always ask for more than they expect they'll get.
- Ensorceled 7y agoTrue, but at some point, it's just exhausting. Every conversation is an exercise in pushing back.
- NedIsakoff 7y agoAt my current company it’s basically the roadmap.
- larzang 7y ago"In the real world...", "Nobody cares about how it works as long it works...", etc. This is a company where the top level management 1) thinks it knows best about everything, 2) micromanages everything, and 3) trusts absolutely no one to do their jobs. The CEO has a software degree but never really worked as a programmer professionally and is as obsessed with exclusively shipping features as any MBA, and it flows down from there. When you hire subject-matter experts to do professional work and then refuse to believe that they might know more than you about how to do that work, you're going to have deep dysfunction.
- humanrebar 7y agoI can't speak for everywhere, but it's generally not that hard to get another software job. Places like that tend to have few people with both experience and the ambition to improve things. The turnover rate in general is usually high. Anyway, developers tend to have plenty of leverage, in switching jobs or teams if nothing else.
- tonyedgecombe 7y agoWhy are you asking for permission to do the right thing?
- commandlinefan 7y agoProbably the time-tracking bait-and-switch. As a developer, you have to account for every hour you spend on "company time", and you have to forecast those hours ahead of time (usually at the beginning of a "sprint"). You've got a little bit of wiggle room to sneak important things (like refactoring code, writing tests, reading documentation) in between the forecasted tasks, but not days. I guess your employer hasn't gotten "agile" (which is management-speak for "not agile") yet.
- commandlinefan 7y agoAt an old job, they were using an older XML marshalling library that hadn't been maintained in years, but it was everywhere in the code. Well, it finally got to the point where the thing just stopped working (some schema it couldn't parse), so somebody suggested that we "refactor" the code to use the more standard, well supported JAXB. Well, since we're talking about a couple million line code base that parsed XML literally everywhere, the refactoring ended up taking months (mind you, this was something we were completely dead in the water if we didn't do). However, it got into management's collective hive mind that refactoring = several months of no new features, so they prohibited anything called refactoring.