|
PederP posted:Why is your BA responsible for planning development work? Because Product Managers were asking to be paid too much money and a BA was cheaper.
|
# ? Mar 17, 2019 20:12 |
|
|
# ? Jun 13, 2024 04:35 |
|
I feel like there's been a little bit of koolaid going around at work lately. So I just need a reality-check: Writing modular, testable code hasn't somehow gone out of fashion with a fury lately, right? And by that I mean there's a bit of a movement starting amongst some of the other senior engineers in other teams that: DRY is useless, just inline everything. SOLID is stupid, 'everything in one method' - even when it gets to many-hundreds-of-lines is better than multiple logically separated classes. Unit tests are dumb, just don't write bugs. I know it's *probably* just the old imposter syndrome kicking in that I'd even ask this question but like...some of this is coming from people with reasonable skill - and has started to sway some of the architects a little bit as well, and so I begin to wonder if I'm the crazy one for finding this ridiculously undisciplined - the sort of thing I might be comfortable with in personal hobby projects that will never be public - but not professional code driving mission-critical functionality...Right?
|
# ? Mar 17, 2019 20:45 |
|
Cuntpunch posted:I feel like there's been a little bit of koolaid going around at work lately. So I just need a reality-check: This is news to me. You might want to ask them where these arguments are coming from. Just because people are good at their jobs doesn't mean they can't get bad opinions about it.
|
# ? Mar 17, 2019 20:55 |
|
Those opinions sound like they're coming from people who have realized that doing things right tends to take more time, but have not realized that taking more time does not make it wrong to do things right.
|
# ? Mar 17, 2019 21:03 |
|
It might also be a push back against OVERLY modular code, overly abstracting, etc. Don't do the work to create an injectable interface for a concrete implementation to back when there won't be another implementation written and it's fine for testing, etc.
|
# ? Mar 17, 2019 21:09 |
|
Volmarias posted:It might also be a push back against OVERLY modular code, overly abstracting, etc. Don't do the work to create an injectable interface for a concrete implementation to back when there won't be another implementation written and it's fine for testing, etc. See that's just sane and reasonable - not everything needs an interface. This is more 'inheritance is bad, whether it's interfaces or base abstracts' level thinking.
|
# ? Mar 17, 2019 21:14 |
|
Ask them how they implement observers.
|
# ? Mar 17, 2019 21:47 |
|
PederP posted:Yeah, absolutely. I have known a few BAs who turned out to be excellent PMs, so it's not an impossible transition to make. But I think it's crazy to combine the roles. I find it odd that your users don't want to interact with developers - I've always found that when developers are targeting users internal to the organization, the users will tend towards trying to circumvent project and organizational structures, directly asking developers for bug fixes, design changes, features, support, etc. Thus necessating that the BA, PM and/or product owner step in and filter/limit/prioritize the communication and wishlisting. We kind of have the opposite problem. The in-house development teams are in the same organization as the people who replace keyboards, and the business users don't really think of us as different groups of people. "My monitor is broken" and "I have no automated way to perform [business task X]" are considered variants of the same problem, and us asking them how they want software to work is received as well as someone in tech support asking what exactly is wrong with a busted monitor would be. A spec will consist entirely of something like "Write an application to parse these files" and any attempt to get color on why is like pulling teeth. When the resulting application doesn't do what they want (as is inevitable), they blame us for loving up. The guy hired as a project manager literally rolls his eyes whenever anyone says the words "use case." It's like they think we're a machine that you put quarters in and get software out, and if they're putting their quarters in and aren't happy with the result, then the machine must be defective somehow. Anyway I'm expecting an offer for a new gig this week
|
# ? Mar 18, 2019 00:00 |
|
Cuntpunch posted:I feel like there's been a little bit of koolaid going around at work lately. So I just need a reality-check:
|
# ? Mar 18, 2019 03:57 |
|
Cuntpunch posted:I feel like there's been a little bit of koolaid going around at work lately. So I just need a reality-check: DRY is necessarily the addition of abstractions, and those abstractions can leak badly if you haven't explored all the potential ways you might need to add a different use case or flow for something. As a rule, I'll usually copy/paste something a couple of times before I start to refactor stuff into a cleaner and less repetitive abstraction. I'm also okay with copying and pasting that abstraction itself before I start trying to extend it in some universal way. There's a point where exploratory code really needs to stop being exploratory, though. SOLID is good for components, and bad for workflows. It's better to be able to trace a linear process through 300 lines of code than to chase it across two dozen classes that each inject behaviors into confusing control points (in a way that requires you to diagram it into 300 lines of notes to understand later). Unit tests are great, but TDD is a bad fit for most applications that don't have reproducibility of results as their #1 development priority. Sometimes people are grossly mis-incentivized or just lazy, though.
|
# ? Mar 18, 2019 04:42 |
|
DRY starts to make a lot more sense when you’ve seen the other extreme - a huge list of code with absolutely no iteration constructs. More bugs deep in from scrolling past literally 5000+ lines of repeated code blocks varying in just slightly subtle characters every so often. While really bad loops are certainly a problem, so is a lack of loops and conditions as well in a stable codebase. One project I worked on before couldn’t use for loops because the proprietary compiler we were using couldn’t optimize away loops and we were highly register limited so we had to manually unroll over 25k lines of assembly (and also tried preprocessor macros that also broke said proprietary compiler). Because it was a relatively small part of the codebase we never got around to try to break that down either.
|
# ? Mar 18, 2019 13:34 |
|
raminasi posted:We kind of have the opposite problem. The in-house development teams are in the same organization as the people who replace keyboards, and the business users don't really think of us as different groups of people. "My monitor is broken" and "I have no automated way to perform [business task X]" are considered variants of the same problem, and us asking them how they want software to work is received as well as someone in tech support asking what exactly is wrong with a busted monitor would be. A spec will consist entirely of something like "Write an application to parse these files" and any attempt to get color on why is like pulling teeth. When the resulting application doesn't do what they want (as is inevitable), they blame us for loving up. The guy hired as a project manager literally rolls his eyes whenever anyone says the words "use case." It's like they think we're a machine that you put quarters in and get software out, and if they're putting their quarters in and aren't happy with the result, then the machine must be defective somehow. hmmm very familiar with this type of environment - "thanks for the meeting to go over requirements, can you take a look at my laptop while you're here? it keeps prompting me for a password when i check my e-mail. oh, also, are you good with excel?"
|
# ? Mar 18, 2019 13:55 |
|
Mad Wack posted:hmmm very familiar with this type of environment - "thanks for the meeting to go over requirements, can you take a look at my laptop while you're here? it keeps prompting me for a password when i check my e-mail. oh, also, are you good with excel?" I guess it’s less that they literally think we do the same things as it is that they think that we can productively interacted with the same way. I do think it’s a holdover from earlier days though (that predate me) when the broken keyboard guy and the “Hey build me a database” guy were the same guy.
|
# ? Mar 18, 2019 16:15 |
|
Vulture Culture posted:I'm the apologist for everything, so nuance is important. I'm uninterested in dogma and really interested in the cases where any specific dogma breaks down. So I'll make a case for everything you've brought up: I saw this in action last week. Our pentesters found that we needed better validation on uploaded files, so a bunch of validate $GENERAL_FILE_TYPE tickets went up after one person filled out some scafolding to make sure they'd get used where they needed to be, then various people grabbed them and started filling in implementations of validation attributes and writing tests for same. NBD, right? System working as intended. No, there wasn't enough abstraction for the project lead. Now there are separate validators discovered by reflection injected into attributes and the unit tests for these things all derive from a abstract base template classes. The generic test from on high doesn't understand negative results, though. As in, this example file should fail validation. It also doesn't understand that some files don't have headers to validate, so I had to add a check that reflects out a private member to see if it should disable that part of the test.
|
# ? Mar 18, 2019 17:24 |
|
raminasi posted:I guess it’s less that they literally think we do the same things as it is that they think that we can productively interacted with the same way. I do think it’s a holdover from earlier days though (that predate me) when the broken keyboard guy and the “Hey build me a database” guy were the same guy. Just curious since it sounds like you're already moving on, but did you attempt to remedy the situation in some way, or was it too far gone? How did people respond if so?
|
# ? Mar 18, 2019 18:04 |
|
My Rhythmic Crotch posted:Just curious since it sounds like you're already moving on, but did you attempt to remedy the situation in some way, or was it too far gone? How did people respond if so? The problems are way above my pay grade, and the business has been around long enough that as far as they’re concerned, they have no need to change.
|
# ? Mar 18, 2019 21:59 |
|
Vulture Culture posted:Unit tests are great, but TDD is a bad fit for most applications that don't have reproducibility of results as their #1 development priority. I agree with your point about nuance being more important than dogma, but I do disagree with your statement here. To me, TDD is not just about building a test suite, it's more just a better way to do reliable development, even if you throw the tests away once you move on from the feature/change. My tests keep me in-line while I'm developing a feature, and sometimes they will catch bugs in the future if I come back to it, but other times I have to throw the tests away anyways because the customer/system needs (or our understanding of the needs) evolved to the point where the interface I was testing against needed to change significantly.
|
# ? Mar 19, 2019 11:23 |
|
Lord Of Texas posted:I agree with your point about nuance being more important than dogma, but I do disagree with your statement here.
|
# ? Mar 19, 2019 11:37 |
Is there a term for when a project has been going on for so long and become such a tangled mess that you just want to burn it all
|
|
# ? Mar 20, 2019 15:13 |
|
Polio Vax Scene posted:Is there a term for when a project has been going on for so long and become such a tangled mess that you just want to burn it all
|
# ? Mar 20, 2019 15:20 |
|
Polio Vax Scene posted:Is there a term for when a project has been going on for so long and become such a tangled mess that you just want to burn it all Impetus for drinking.
|
# ? Mar 20, 2019 15:25 |
|
Polio Vax Scene posted:Is there a term for when a project has been going on for so long and become such a tangled mess that you just want to burn it all depends... how many times has the project been renamed at this point?
|
# ? Mar 20, 2019 15:40 |
|
Polio Vax Scene posted:Is there a term for when a project has been going on for so long and become such a tangled mess that you just want to burn it all is there any other kind of project in software?
|
# ? Mar 20, 2019 16:22 |
|
I'm sure there are occasional non-enterprise projects.
|
# ? Mar 20, 2019 17:59 |
|
Polio Vax Scene posted:Is there a term for when a project has been going on for so long and become such a tangled mess that you just want to burn it all Webscale
|
# ? Mar 20, 2019 18:46 |
|
Polio Vax Scene posted:Is there a term for when a project has been going on for so long and become such a tangled mess that you just want to burn it all Non trivial
|
# ? Mar 20, 2019 18:55 |
|
Polio Vax Scene posted:Is there a term for when a project has been going on for so long and become such a tangled mess that you just want to burn it all Legacy
|
# ? Mar 20, 2019 19:08 |
|
for me it's called Week 2
|
# ? Mar 20, 2019 19:13 |
|
Polio Vax Scene posted:Is there a term for when a project has been going on for so long and become such a tangled mess that you just want to burn it all Tuesday
|
# ? Mar 20, 2019 20:56 |
|
Life.
|
# ? Mar 20, 2019 21:42 |
|
Speaking of I just learned that we’re trying to process up to 2 gigs of JSON in memory and lol no loving wonder that fails.
|
# ? Mar 20, 2019 21:43 |
|
Pollyanna posted:Speaking of I just learned that we’re trying to process up to 2 gigs of JSON in memory and lol no loving wonder that fails.
|
# ? Mar 20, 2019 21:55 |
|
I’ll post a question about it at some point. What is relevant to this thread is how the team lead swore up and down that we were not loading 2 gigs into memory and refused to believe me when I said we are and then pretended like he knew it all along when the engineering manager took one look and said “yes you are”. I really wish I was taken seriously, but I guess I just suck!
|
# ? Mar 20, 2019 23:05 |
|
|
# ? Mar 21, 2019 04:17 |
|
This brings up an issue though. How many loving times do we have to sever. Jesus Christ i'm so tired of updating my resume and sending it out every 1.5-2 years. Just kill me already this sucks balls.
|
# ? Mar 21, 2019 04:50 |
|
Gildiss posted:This brings up an issue though. How many loving times do we have to sever. Jesus Christ i'm so tired of updating my resume and sending it out every 1.5-2 years. Organize ur workplace. It's all the same poo poo with different dressing. OR Get out of tech and start a bakery. At least then people get bread.
|
# ? Mar 21, 2019 07:00 |
|
Cuntpunch posted:I feel like there's been a little bit of koolaid going around at work lately. So I just need a reality-check: My take is that they have been working with the code for so long that they know all the ins and outs and indeed, at that point these approaches only cost time while not delivering very much. Now imagine two long time engineers go hiking together and get eating by a bear. Aside from the unfortunate but hilarious incident, how hosed would one be having to take over that code? You write code once and read it so many teams. You write code not for you but for the next dev looking at it, even if that is you in 6 months. Pollyanna posted:Ill post a question about it at some point. Gildiss posted:This brings up an issue though. How many loving times do we have to sever. Jesus Christ i'm so tired of updating my resume and sending it out every 1.5-2 years.
|
# ? Mar 21, 2019 12:03 |
|
Gildiss posted:This brings up an issue though. How many loving times do we have to sever. Jesus Christ i'm so tired of updating my resume and sending it out every 1.5-2 years. This is the primary reason I'm really trying my hardest to get back to my original field (astrophysics) after I'm out of Florida, beyond wanting to work on something I actually care about. I had this same existential crisis when I realized it's considered normal and expected to move around every few years in the development world, and realizing that's what the rest of my natural life looks like gave me flashbacks to the opening cutscene from Stardew Valley. Current plan A is: 1) Girlfriend finishes PhD and gets a job in Baltimore and we gtfo of FL, 2) Get job with Space Telescope Science Institute at Hopkins who I interviewed with in 2011 and was told I didn't have enough programming experience yet, 3) Hope JWST doesn't explode on the launch pad, 4) Work on processing that thing's epic data stream for the next 25 years. Plans B-F are the same thing but in various other cities and not quite as epic or as sure a thing (I figure with STScI if I almost got the job with no experience 8 years ago, I should have no issue with my current resume).
|
# ? Mar 21, 2019 16:06 |
|
Gildiss posted:This brings up an issue though. How many loving times do we have to sever. Jesus Christ i'm so tired of updating my resume and sending it out every 1.5-2 years. At some point though, I started feeling like the bar for changing jobs started getting higher. I don't want to give up my 5 minute commute, I like being able to disappear for 2 hours at lunch sometimes, almost never work OT, etc. An extra $10k per year is no longer a life-changing amount of money.
|
# ? Mar 21, 2019 18:26 |
|
|
# ? Jun 13, 2024 04:35 |
|
I like to vent about my job a lot. I still love it, even if my coworkers are dinguses. But that's a problem you'll encounter literally anywhere. The benefit of my job is I get to stay at home, work remotely and only seriously work 2-3 hours out of the day, so that leaves the rest of the time for... whatever the hell else I want to do. And that's definitely not something to complain about.
|
# ? Mar 21, 2019 19:05 |