Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Queen Victorian
Feb 21, 2018

So, I’ve spent the last two days doing my darnedest to bash a square peg into a round hole after being told I wasn’t allowed to use the round peg I’d already made to fit in said round hole. :v:

The sprint just ended with 2/3 of my stories incomplete and the usual scolding from the lead dev. The reason these two were not resolved was because I had to take the first one back to the drawing board and implement this bloated third-party monstrosity of a data table plugin to render an effectively static table (the API handles all the sorting and pagination and poo poo already so we don’t need 95% of this plugin’s functionality), and then fight with the ugly, overbearing styling to make it not look like crap (the way they wrote the style markup makes it exceedingly difficult to override without putting a bunch of !important flags everywhere). I had originally spent like an hour making a little table render function that utilized a normal HTML table and provided identical onClick output and also looked better. But nope, had to replace it with the third-party shitpile for consistency reasons (also lead dev might have been on a power trip at the time). And I didn’t finish the last one because I wasted so much time refactoring the previous one and couldn’t even start until way late in the sprint, but it’s pretty much fully operational, just needs unit tests and some UI polish. I built it while the previous story sat untouched in code review for an entire day.

I’m in the final days at this job (already signed new offer and handed in resignation) so I’m just venting because this happens every loving sprint - I finish the goddamned thing with (usually) plenty of time, but no one reviews it in a timely fashion and I take the blame for not completing it, with my last full sprint at this company being no exception.

I’ve decided to just not bother with opinions or going out of my way to argue for the best way forward, so I’m doing exactly what I’m told (even if it’s loving stupid and a waste of my time and bad for future upkeep) because I don’t care anymore and next week it won’t be my problem anymore.

At least I can learn from this experience and apply my newfound knowledge of which third-party libraries to avoid and how to not apply them to completely inappropriate use cases to my new company. I’m also going to consider using some of the downtime between leaving the job and starting the new one to make my own loving table component. I actually made a really nice one with D3/Crossfilter/jQuery a while back, with sorting and pagination and filtering and everything, but no one appreciated it and it’ll get obliterated soon because we’re they’re rewriting the front end in React and the recently hired React dev doesn’t understand D3 and the lead dev axed Crossfilter because it competed with his fancy new API queries. Won’t be all that difficult to make something similar with D3/Crossfilter/React.

Adbot
ADBOT LOVES YOU

Queen Victorian
Feb 21, 2018

sunaurus posted:

If this ever happens to you again at another company, I think the best way to handle it is to just force your team to go more in depth during backlog grooming, and note down any implementation details that your team agrees upon in comments. The whole "using a library vs rolling our own" question should probably have been answered before you even assigned an estimate to the story.

Yep, now I know to do rigorous analysis of both the use cases and the library itself and really emphasize that doing this legwork now will save us lots of time and headaches later.

Come to think of it, we were initially going to roll our own component. We planned a meeting, I did some research and thinking beforehand and went in prepared to pitch a plan for building an easily configurable/customizable table that covered all our use cases. However, our new “React expert” dev went ahead and started pitching this library he pulled up on the internet and totally caught me off guard (I thought we were supposed to talk about designing a component and whiteboard and stuff), I didn’t get a chance to speak, and boss agreed to adopt it. All happened within ten minutes.

Then at the next retro, I brought up that we should probably spend more than ten minutes evaluating a giant third party library before deciding to adopt it. Then new dev (who had been vaguely disrespectful and patronizing beforehand) went on a mansplaining tirade about how I need to be accepting of change and try new things and if we slow down and analyze instead of move fast and break things then we will fail and die and ya know, no tech company ever made it big by being careful ever and to get with this picture. It was loving unbelievable. Everyone else either sat there and did nothing or threw me under the bus. Then I complained to the CEO, and while he was receptive and concerned, nothing changed (except increased passive aggression), and then I started seriously looking for a new job (there were other problems and I should have left ages ago but... imposter syndrome).

I almost feel vindicated having had such a poo poo time making this stupid little table with this huge dumb library because it means my instinct was correct and that deciding to adopt it after ten minutes was a bad idea. Still though, I figured we’d just use it for the few big serious data tables we have (where it makes sense) rather than shoehorn it into every remotely tabulated thing in the app (which is why I decided to just roll my own little table - the big third party one wasn’t applicable because it was such overkill. How naive of me).

quote:

Man, I've spent about a year now in what I consider to be an actually agile team, and reading your post reminded me just how much I dislike scrum (which is what I was doing in two teams before my current one). I hope you have a better time in your next team.

Yeah I hope so... my new team seems way more cohesive and everyone in general has vastly better social and communication skills, so I hope that’ll translate into a less lovely process.

The scrum process here sucks for a number of reasons - the lead dev is, uh, pretty robot-like and is obsessed with process and quantitatively analyzing process, so it frequently feels like our contributions are merely regarded as data for his sprint report bar charts and poo poo. It’s also very unrewarding - we get scolded when we do bad, but not praised when we do well (I guess not scolding us counts as praise?). Also no qualitative considerations for anything. My poo poo being done for days but not reviewed before the end? Sorry, not in the done column so you suck at dev once again. Actually, what’s been happening with some of my stuff is that it DOES get reviewed, but it’s so closely scrutinized that I can’t make all the loving changes in time and get them resolved (oh, and we had to make a new rule about resolving merge request discussions - the poster of the MR is no longer allowed to close discussions on their own MR because the new dev had this nasty habit of just marking discussions as resolved without responding or making changes if he disagreed or didn’t want to deal with it. So instead of boss just talking to him and telling him not to be so loving rude, all of us get saddled with this inconvenient rule to prevent the one dude from blowing off MR discussions on his MRs). And then while my stuff is being intensely scrutinized and held up for petty issues, the new dev’s stuff sales through code review. So overall scrum has become an incredibly demoralizing ordeal. And I’m pretty sure all my stories are cursed.

redleader posted:

was this third-party plugin named after a traditional japanese martial art, or after the chemical symbol for silver?

Neither of those - it’s the most generically named one, but not the latest major version because of course not (latest would actually be awesome because it’s now a headless component that no longer forces its horrible pseudo-table UI (the source of most of my problems with it) on you and instead lets you write your own).

Queen Victorian
Feb 21, 2018

Keetron posted:

I am happy to hear you got out of the abusive relationship as the above is never EVER true.

Thanks, and I know - that was a facetious quip. I did bring up the lack of positivity and how unrewarding being on this team felt in the exit interview.

tak posted:

Wait what

How big was this company?

Small startup - forgot I didn’t mention that in this thread (I did in a couple others I think). So only one small team working on everything. I actually went to the CTO (my direct boss) first to complain about how I was treated at the meeting, but he opened with “I think [new dev] made a good point at the meeting”. So I escalated.

CEO is great but not always aware of what’s going on with the dev team (he works more closely with sales/marketing). He took me seriously, but with it being such a small company, it could be deduced pretty easily that I made a complaint, and it’s not like I could move to another team.

Queen Victorian
Feb 21, 2018

Is it mean of me to bask in the schadenfreude of watching mansplainin’ new dev (and also the other devs) struggle to build a data visualization off a flawed spec while not helping even though I know how to fix it?

A couple months back I built a working prototype of this particular visualization, but everyone seemed to forget it existed. Then UX consultants came up with the final spec, which for some idiotic reason puts the irregularly occurring events on an ordinal scale (so the events look like they’re occurring at a regular interval, despite the timestamps telling you differently - I even asked if this was a case of sloppy/inaccurate dummy data, but nope). This also causes other difficulties, like trying to show the change in days of the week and have the visuals for that line up with the ordinal timestamps.

The solution is just to use a goddamn time scale. Then all that stuff becomes really easy to implement (and you’re not misleading users about when/at what interval these events are actually occurring - I actually asked several people about it and they all said they’d never assume that if there were timestamps the scale would not be a time scale). So he kept on trying to hack together some janky solution to make the thing look like the picture and still somewhat work with actual data. If it weren’t for me leaving, this would have been my project and I would have just put my foot down and overridden the ordinal scale spec because I know better.

I mean, if they ask me for help/my opinion, I’ll certainly oblige. And I’d point them to the prototype code if they asked, too. But they haven’t, so I’m just sitting here letting them do it the hard and wrong way. Today is day three of this ordeal.

Queen Victorian
Feb 21, 2018

Protocol7 posted:

I would say rip the bandaid off now and help them, because if it comes to light that you were sitting on something useful and didn't do anything with it for a good while, it will probably bite you in the rear end.

Yeah good point. However, the prototype is plain D3, and new dev is writing the production version in React, and the way he incorporates D3 is to use as little of it as possible (because he’s not good at D3) and have React render everything (except for animations, which is handled by some third party library). At this point the prototype probably won’t be useful - making a new graph that displayed the data in the same way was the easy part, and the only difference really is that the prototype uses a time scale for the events. So it’s really just ordinal scale use that’s making it a such a bitch.

And at the beginning, I DID tell them they should be using a time scale, and when boss said that it’d be too late to reconsider the type of scale because the spec was finalized, I reminded him that changing the type of scale in the code was trivial (like changing ‘ordinalScale()’ to ‘timeScale()’ and maybe tweaking some tick params - literally two minutes of work). Still, couldn’t be done for some reason. Not my problem anymore if they’d rather trust some consultants who obviously aren’t good at data visualization.

They’re currently trying to figure out how to make dual pagination (for timestamps and the day of week display) work and not ignore values on the end or something, yet another issue that wouldn’t exist if they had used a time scale like I suggested. I’m honestly a bit surprised they haven’t decided that the ordinal scale nonsense is a clusterfuck on their own and ditched it.

Oh.. now they’re talking about adding new API functions to handle this crap :wtc:

Queen Victorian
Feb 21, 2018

Last week I posted about a godawful graph my now-very-soon-to-be-former coworker was building, and today it went into code review. It is so much worse than I imagined.

He followed the bad design spec to the letter, so it has design problems, like not looking anything like the existing graphs and missing some crucial visual indicators like differentiating normal and anomalous events (you can’t tell which are anomalous until you hover over them and bring up the tooltip). The ordinal scale BS is just as hacky and unintuitive as I thought it would be. Then he went and pulled in some charting library (we do not otherwise use charting libraries - just D3 because we’ve always been hardcore like that (or at least I was hardcore like that), so that was probably a source of strife - trying to make a third party stock chart do weird custom poo poo. And he somehow couldn’t get <foreignObject> to work for adding icons from our icon set so he implemented icons from some
random other set as SVG paths. And overall strange component structure. Also typos and bad variable naming.

And none of this weirdness and badness was caught in a timely manner and corrected because this guy has a strange habit of only doing a single commit/push when his thing is complete.

I’m so very glad I no longer have to work with him or in an environment that finds any of the above acceptable. Especially the part where everyone apparently has to blindly follow consultant design specs even if they’re bad and/or don’t jive with the rest of the visuals.

At least my final component got through code review without any issues. Boss said it was really good. :kiddo: Even after I handed in my resignation and mostly checked out I still made sure to at least write good code for the sake of writing good code - pride in workmanship and all that.

Queen Victorian
Feb 21, 2018

Clanpot Shake posted:

How old is this guy? He'll stop doing this when he loses a week's worth of work because he didn't want anyone to look at his precious half-finished opus when he drops his laptop into the street but something tells me he hasn't been around long enough to see that actually happen to someone.

Good for you getting out. Place sounds incredibly toxic.

He’s 24 or 25, so yeah, probably hasn’t had an incident that would teach him otherwise. I’m also not sure why he hasn’t been told outright to do bite-sized commits and regular pushes like everyone else. I had an incident in high school in which I lost an entire essay when I accidentally dislodged the computer’s power cord with my drat fidgety feet. Now I don’t gently caress around and make sure to push my poo poo at least daily.

Yeah, I’m super glad to be leaving. It wasn’t always bad and got worse gradually, and I was suffering from worsening seasonal depression, so I was slow to notice the shift and then felt too lovely about myself to bail when I did notice (I credit getting treatment with giving me the boost I needed to find some self respect and get out). It’s crazy how just a couple of personnel changes can so drastically alter the vibe of a team for the worse.

Queen Victorian
Feb 21, 2018

Keetron posted:

So yeah, this young dev shielding his code until he is almost done is betting on the sunk cost fallacy to get his lovely code merged as he cannot take critisism halfway.

I think you nailed it.

A while ago, he and I built a series of form components - these were all very similar. I was a React noob then, but still figured out how to make a self-contained component that handled both input and submission. He built his with a superfluous wrapper component that divided functionality for no reason. And did the single giant commit thing so we didn’t see it coming and couldn’t see his thought process.

When boss asked why he built it with the wrapper, he said it was more readable (it loving was not and boss knew it). I was told to approve it anyway. Having him refactor it would have meant starting over from scratch and there wasn’t time for that, so there you go.

And yes, he takes criticism pretty poorly.

Queen Victorian
Feb 21, 2018

I always try to divide my commits into logical chunks, like ‘revise styling’ or ‘add validation functions’ so they show the progression and make it easy to do reverts and cherry picks and whatnot if needed. They’re all squashed and rebased at the end, but it’s nice to have them visible during the process.

The thing about my former coworker’s habit was that his poo poo wouldn’t even show up on the remote until he was ready to put up the merge request. And then when it did, all you could see was the single commit.

Yep I just said former coworker. Last day was yesterday, and today I’m meeting my future coworkers for lunch downtown ahead of this big tech conference that we are attending (they got me a ticket even though I haven’t technically started working for them yet). :yotj:

Queen Victorian
Feb 21, 2018

So I finished the first week at my new job and, uh, wow... it’s so different when you and your skills/knowledge are actually valued and your teammates are cool and friendly and not patronizing douchebags or process-obsessed surly robots.

So yeah, everyone here is lovely, and the lead dev (my direct supervisor) is great and actually respects what front-end/UI/design people do. In general, everyone here is really into my design background and so far CEO is pleased with my very thorough design analysis of the product (my project for most of the week was to learn/assess the application and also learn the codebase).

I think this job is going to be pretty good. :kiddo:

Queen Victorian
Feb 21, 2018

Thanks guys.

Carbon dioxide posted:

Although I do have a suspicion that there's more bad jobs around in countries that have a tradition of not valuing their employees, such as the USA.

At my old job the C-levels were European, but they managed to not bring over any of those good European workplace philosophies and instead embraced the American ones.

At my new job, the CEO is American and female, which might have something to do with the much better gender balance and attention to team happiness/harmony here.

Volmarias posted:

Congrats! :unsmith:

You'll find plenty of reasons to hate it in a year but at least you're not working with absolute garbage people.

Oh, I’ll be sticking around to bitch about the codebase because oh my lord, but yeah, don’t have any complaints about my coworkers. Taking on a hosed up codebase with rad people at your side is infinitely preferable to working on a good codebase with lovely people as far as I’m concerned.

As for the codebase, this application is in a less mature state than the one at my last job, and some very.... interesting early decisions were made in the front end that I will get to unfuck. Though it does help that they’re acutely aware of the issues and are pretty much giving me free reign to figure out how to restructure both the workflows/design and the front-end codebase (I guess that’s another thing - new job is definitely a step up in terms of developer rank and influence).

Queen Victorian
Feb 21, 2018

I think another important thing to look at in companies and their leadership is the aspects of the work environment they choose to prioritize. Leadership at my new company strongly prioritizes having a chill office full of nice not-rear end in a top hat people and good work/life balance, because the belief is that they’ll get the most productivity out of a happy, well-rested team. They were very forthcoming about this during the hiring process.

On the other hand, leadership at my old company eventually fell into the trap of thinking that the way to optimum productivity was to push everyone to work more/harder and be all “[company] is my life and so is coding in general!”. I even got a talking to about not being a team player because I wasn’t dragging my work laptop home every single night. gently caress that. All it did was make me resentful. I even asked my new boss if I should be taking my work laptop home every night night and he was like “lol no” and then told us all to go home at 5.

Queen Victorian
Feb 21, 2018

Open/shared offices are unavoidable in startups. However, if set up right, I don’t mind them, personally. I think I’m actually more productive in an environment with other stuff going on in the background than in silence and isolation. When I freelanced, my favorite spots to go work were coffee shops. Library was too quiet.

Even so, new office does have multiple rooms - admin/sales, dev, etc. There is also a totally separate quiet/solitude room (something my old office didn’t have). So I guess having at least some division with walls and doors is better than a full-blown “open concept” office where you don’t even have your own designated desk or some poo poo. Also the WFH policy is a lot more generous.

Queen Victorian
Feb 21, 2018

I tend to head out for lunch around 1:30-2, so I miss other folks’ chatty unproductive post-lunch periods.

At my old office, it was dreary and awkwardly quiet all the time, so lunch timing didn’t matter (outside of hitting lunch places before they closed). No one chatted about anything (definitely not out loud, and not even a lot on Slack). I always felt like I was imposing if I tried to talk to anyone, so I generally didn’t. It sucked a lot.

Queen Victorian
Feb 21, 2018

My new office is two miles from my house and a straight shot on the bus. My total commute time is a bit under twenty minutes, and than includes time spent waiting for the bus and walking to and from bus stops.

It’s an improvement over the commute at my last job, which was a bit farther away and involved either one bus and lots of walking or two busses.

I am definitely spoiled. I’d get recruiters on LinkedIn telling me about some amazing tech job opportunity, and then it turns out that the company is way out in some suburban office park that is not served by public transit. Nope.

Vulture Culture posted:

I'm just grateful that with my 2-hour commute each way I can start from the train and have those hours mean something

:stonk:

I mean, at least it’s passive and you can get stuff done during that time, but still, that’s a huge chunk out of the day.

Queen Victorian
Feb 21, 2018

Keetron posted:

Take a bicycle, you git.

The street that gets me to work is four cramped lanes of terror and bad drivers. There have been some improvements made for bike access and safety elsewhere in the city (like designated bike lanes painted into streets), but not this area. Also my bike got stolen a while back. :(

However, I’ve been considering jogging to work because there is a shower at the office. Want to give it a try before the weather gets bad, at least.

Queen Victorian
Feb 21, 2018

Nostalgia4Ass posted:

Is there a separate running path? Seems strange to not want to bicycle but be willing to run in the same traffic.

There is a sidewalk which is fine for walking/running, but it’s too narrow for bikes and also you’re not supposed to ride your bike on the sidewalk anyway. Also I hate people who ride their bikes on sidewalks that I’m trying to walk on and I don’t want to become what I hate. Besides, the bus ride is my time to read news and catch pokemon and poo poo.

Queen Victorian
Feb 21, 2018

Hey guys, so I’ve been in my new job for a month and a half now and it’s going very well. People are cool, overall environment is positive and rewarding. It’s amazing how much better I am at things here now that I’m no longer being poo poo on all the time or feel like I’m being set up for failure every sprint. Also the absence of sexist dickholes is a huge plus. And it’s really nice being on a dev team that has an even gender ratio.

However, the front end codebase is an ungodly nightmare and the more I delve into it the worse it gets (the dev responsible for architecting it is no longer with the company). It’s inconsistent, brittle, convoluted, difficult to read, inefficient, and contains all sorts of duplication (like three components that all display the same options list, just in slightly different contexts). A lot of it is sheer sloppiness and cutting corners without regard to maintainability or other developers working on it down the line, and the rest is a bunch of misapplied overwrought patterns. The whole thing is eligible for Coding Horrors, pretty much.

The upside is that the next major version is substantially different enough that we can justify a ground-up rewrite in which I get to take charge of structuring and building the view layer (after designing the UI :sun:) and can Do It Right This Time. Looking forward to some greenfield work and getting away from attempting to improve and maintain a thing that is unmaintainable and strongly resistant to improvement.

edit: Oh hey lots of posts happened while I had the reply open. My previous job started doing a yearly personal goals thing with some small fraction of work time dedicated to it (which quickly turned into on your own time, and it was required and would be talked about in your performance review). I designed myself a cool project with crossfilter.js to improve a neglected event log display in the application, but my boss later canceled it because I guess the lead dev didn’t want anything encroaching on his API work.

My new job doesn’t have anything explicitly, but we’re encouraged to spend time here and there learning new things and being inquisitive and whatnot, and to go home at a reasonable time and have a life.

Queen Victorian fucked around with this message at 06:58 on Oct 24, 2019

Queen Victorian
Feb 21, 2018

Oh man I’m so slow at responding to things...

New job honeymoon is still ongoing (or this is just what having a good job is actually like and I’m still overjoyed to not be scolded and undermined all the time).

PhantomOfTheCopier posted:

First, congratulations! It's so nice finding a good spot.

Second, I got a little misty because I realized that "I'm being poo poo on all the time and feel like I'm being set up for failure", which is one of the reasons I'll be taking part of my forthcoming day off to check the world of job openings.

Thanks! And good luck in your search and be sure to tell everyone you know that you’re looking for something new. My current job was never an officially listed opening. I met my now-boss via connections under non-job-search-related circumstances and she became very keen on hiring me once she learned about my skill set and that I was looking to jump ship from my old job.

quote:

I don't claim to have anything quite as egregious as you, but my team is consistently playing this game of "we approve of all the design details... (work done)... we don't approve of what our packages require to ship those design details". Given that I don't see this with other code reviews, I'm starting to feel singled out.

Heh, tell me about it. I actually started building a document to record instances of me getting singled out and nitpicked to death in the review process with specific examples and comparisons to similar stuff in other developers’ merge requests that did not get the same level of scrutiny. And that time when my boss ordered me to approve one of the new kid’s MRs despite it still being full of lovely and wrong CSS. I bailed before having a chance to present it to anyone, though.

quote:

Yeah "if there's always a problem when you're around the problem is you", but in this case I think I'm just not the best person to support the team's passions at this time.

Anyway it took multiple iterations to learn the right balance of "sticking with it" and "knowing when enough is enough". Glad that you've started a bit earlier learning that.

I thought the problem was me for a long time (too long), but then I came to realize that all the being poo poo on and set up for failure was what was wearing me down and making me resentful and defensive. So by the time the patronization and the unfair review process reared their ugly heads, I was at the end of my rope in terms of being able to handle all the crap being thrown at me and the only way to make the situation better was to remove myself from it.

As for the part where I change jobs and go from being a slow and bad codemonkey with zero decision-making power to calling the shots for the front end and being a productive and good code contributor, I think I was just living down to the abysmal expectations at my old job, and I didn’t go the “well I’ll just prove them all wrong :cool:” route because I was too worn down from the combo of being poo poo on, constant fear of being undermined/thrown under the bus, and imposter syndrome so I just embodied the lovely dev they made me out to be. And it wasn’t like there was any opportunity to shine when you’re set up for failure from the start and risked eroding your standing if you said anything and they disagreed with you.

I guess the moral of the story is that a negative environment where there is no psychological safety can be extremely detrimental to productivity and morale. Even if it doesn’t seem THAT bad, I’ve found that environments can keep degrading if management doesn’t do anything about bad undercurrents.

Case in point, here’s how our most recent retro went:

:sun:: *pulls up Pivotal* Okay guys sprint’s over and we got a lot done, especially towards implementing the new feature for [customer] - they will really like this next update! Looks like our velocity is down a bit, but we hit some snags in review and [junior dev] has been out of town. Still, great job on everything you did accomplish!

While at my old job, they’d almost always go like this:

:reject:: *pulls up Jira analytics report* Once again we’ve failed to complete all the points we committed to. Coming up short this sprint has pushed out our estimated release date by another five days and it’s going to get further delayed if we don’t reverse the downward trend in our velocity. This is unacceptable.

Guess which one inspired us to get more stuff done and which one didn’t.

PS: sorry if all I seem to do here is rail on my old job. I think I’m still processing all the poo poo I went through and it’s cathartic to write down my thoughts on it.

Queen Victorian
Feb 21, 2018

netcat posted:

I wish this actually worked. I've tried so many times to tell people to review my work in progress stuff only to get ignored every time. Of course actually getting people to review your code at all is a struggle.

This was one of the many banes of my existence at my old job - I would put up a WIP and invite everyone to comment on it and review progress so it wasn’t a huge chore to review all at once at the end, but nope. And then after you finished and submitted your poo poo on time and everyone else failed to review it before the end of the sprint, the failure was still on you.

At my new job, we’re pretty good at reviewing in a timely fashion - tasks are divided into much smaller chunks and are easy and fast to review.

Queen Victorian
Feb 21, 2018

vonnegutt posted:

Has anyone effectively taught their PM/management how to prioritize / manage customer requests? It seems that as my company gets more customers, my manager has lost all ability to prioritize. I'm being asked to jump on issues "ASAP!" while in the middle of other things because "a customer is unhappy!" and surprise surprise, those new issues are poorly described and inevitably require reworking after initially being "approved" because they were basically a custom demand from a single customer.

It's super frustrating because before this, I thought the company's approach to prioritization was actually getting a lot better. There were long-term goals and strategic thinking about the product, but now that we have some customers, every long-term feature is getting sidelined in favor of "move the button because random customer demanded it".

My new company records which customers are making requests and then we track how much time we’re sinking into said requests. I’m told that after tracking started, it was revealed that the most demanding customers were the ones paying the least, so now they are low priority. Also their feature requests were often pretty esoteric and not useful for customers outside of this one sector the demanding customers mostly belonged to, so not worth it to prioritize.

The only time it’s worth it for us to drop everything and implement a customer feature request ASAP is if the customer is one of the top payers and won’t renew without the requested feature.

In general, it helps to run some cost/benefit analysis on implementing a requested feature. If the feature would take 80 hours to implement and only benefit a single customer who isn’t paying you that much in the first place, gently caress that. But if the feature takes 1-2 hours to implement and would be useful to many customers other than the one requesting it, that’s well worth it because you make the customer happy, it’s low effort, and it’s something you can tell other customers about and make them happy too.

Queen Victorian
Feb 21, 2018

I scored a 0.8/6, but that’s because I’ve started this job relatively recently, and even though it’s been a bit higher stress lately, I generally don’t carry that stress home and the higher ups keep telling me how important my projects are and how well I’ve been doing on them, and I just got an unexpected raise.

Then I took it again while pretending to still be at my previous job and I scored 5.9/6 :v:

I was in serious denial about how insanely burnt out I was at that job, and I think if I hadn’t landed my new job, I would have had to quit anyway because my cynicism and constantly horrible, defensive mood was on track to getting me fired.

Queen Victorian
Feb 21, 2018

Slimy Hog posted:

Hi it's me: an engineer who likes his job.

EDIT: It's also my 2nd week at a new gig after leaving a company that was poison, that doesn't make a difference right?

I left a toxic job and am coming up six months at the new nontoxic job and I’m still quite happy so either the honeymoon period is really long or it’s really just a good job that pays me well and where non-assholes respect and value my work.

Queen Victorian
Feb 21, 2018

SurgicalOntologist posted:

Is there any interviewing-as-a-service that isn't a waste of money and won't piss off the candidates? I'm leading a three-person team and we need to evaluate for skills we don't have. Plus it takes a lot of time and we're not very good at it. But outsourcing this seems like a lovely thing that we won't be able to trust and will turn people off. I'm guessing we should just suck it up and do the best we can but I'm curious if there's any alternative that isn't a terrible idea.

My small company with a very small dev team has pretty much the same predicament - lead dev with all the backend knowledge got poached. Those of us left on the team are frontend and not well equipped to evaluate for a senior full stack/backend position (or data science/engineering).

Our solution was to hire out the technical screen but continue to handle all other aspects of the interviewing process ourselves. We still do initial phone screens and then later stage behavioral interviews. So far it’s worked out pretty well, even though I had misgivings at first. The other steps still take up a lot of our time, but it’s much better for both the candidates and us to be heavily involved, and I’d rather we take the time to identify a good candidate than to rush/outsource and end up with a bad hire (seriously, one bad hire can completely poison a small team). The candidate’s technical chops are only part of the equation at the end of the day, anyway.

We did try utilizing recruiters’ technical screens at first, but that gave us a pile of candidates that ranged from underwhelming to garbage. And a University of Phoenix MBA that one time. I know there are better recruiters out there, though. If you want to go this route, it really depends on the quality of the recruiter and their screening methods.

Overall, interviewing-as-a-service seems like a bad idea on multiple levels: you come off as unable/unwilling to give your candidates the time of day, as you’ve shunted them off to a third party, you’re missing out on evaluating important aspects you are able to discern yourself (i.e. is the candidate a sexist prick or not, do we actually get along with this person), and the candidate doesn’t get as much of a chance to evaluate your company and the prospect of working there.

As for not being very good at interviewing, I’ve been conducting interviews and I’m definitely not good at it. What helps is practice and tag-teaming with someone else who’s better at it, even if they aren’t as knowledgeable about the particular skills you’re looking at.

Queen Victorian
Feb 21, 2018

This thing seems cool, but I can’t help but think it’ll get all out of whack once you take it outside softball demo cases a la Hotdog Not Hotdog.

As a UI designer in the enterprise data analytics space, I can imagine a lot of scenarios where it would be easier for me to just write the drat component directly than to dick around with natural language input that basically needs to legalese-level watertight to correctly get your point across to the AI.

And then once you have the AI generate you a component, how does manual tweaking work? If you wanted to be able to tweak it and still be compatible with modification efforts by the AI, I imagine it would have to keep track of manual changes so it continues to be in the correct context.

And what if I wanted to make something more complex than an “online business card” type website or toy app? Would it be able to build you an app with CMS functionality, like for a portfolio you can add projects to? What if I want the component’s parameter to be a complex data object? Would I have to describe how the app/component is to interpret the object? Or does it even work for that level of description? How can I instruct it to talk to the API? Does it consider security? If I’m a restaurant and I want to post an online menu, do I have to spell out how it’s to format each entry or can I give it a text doc or CSV with the menu items and just tell it the display rules? The more I think about it the more questions I have.

Anyhow, the natural language space in AI is fascinating to me. At a previous job I got some exposure to bleeding edge agricultural/industrial robotics and would daydream what the human-robot interface would be like - the ultimate one was just natural language and maybe showing it a map, just like how you communicate with a human worker. I think we are still a ways off from that, though.

Queen Victorian
Feb 21, 2018

My old company did a “hackathon” once. It sucked. It wasn’t even a real hackathon, just a mandatory evening continuing education session in which we learned new stuff we were to implement in our new version (no hacking or experimenting involved) and were only given lovely cheese pizza and Mountain Dew and no alcohol (because the lead dev had the palate of a seven-year-old and the higher ups were being tightwads about beer or something).

We had to vote on an evening that worked for us, and lead dev seriously thought Friday and Saturday were appropriate options. I’m not spending one of my weekend evenings venturing to the sketchy neighborhood in which our office was located after dark by myself just so I can learn the intricacies of Redux or whatever over greasy pizza while sober with coworkers I don’t like - gently caress that poo poo.

My current company is an entirely different story. Most folks here are 30s+ and have families and lives, including the C-levels, so late night hackathon poo poo is regarded as disrespectful of employees’ time and work-life balance and we don’t do it. Any special activity takes place during normal work hours on company time. I’m so happy I changed jobs.

Queen Victorian
Feb 21, 2018

Che Delilas posted:

gently caress ALL of that. This is the kind of situation where enforced WFH saves the day, because you can sign on, mute and do whatever.

I retrospect it seems as though the founders cargo-culted the implementation of “tech startup culture” because they went through the motions and used the terminology but the results never quite matched up with expectations. Hence the continuing education seminar hackathon. When the company culture wasn’t absent it felt superficial and forced. Which was weird because the CEO (who I’m still buds with despite leaving on not the best terms) is a sociable, amiable guy who’s pretty fun to hang out with :shrug:. I guess the dev team leadership was what dragged everything down. CTO was kind of aloof and the lead dev he hired was seriously one of the most dour fucks I’ve ever met, so no wonder being on the dev team there was so miserable.

prom candy posted:

A company I used to work for a long time ago did one weeknight per week where they would provide beer and you could come in and hang out and work on your own stuff or work stuff or whatever. It's the kind of thing that would send me running if I heard about it now but this was a small company with people I really liked and free beer in my early 20s was a pretty good motivator.

Yeah if this was voluntary it seems fine. Just so long as the voluntary nature of it isn’t used to covertly gauge “team loyalty” or some bullshit metric like that and worm its way into performance reviews and poo poo. Which I wouldn’t put past a lot of tech startups.

Queen Victorian
Feb 21, 2018

Ghost of Reagan Past posted:

I highly doubt anything like that is really voluntary, and it will at least color how management sees you.

My current company takes great care to avoid having extracurricular stuff color management’s perception of you, and that’s the thing - it’s a conscious effort. Also, these extracurriculars never have anything to do with work by design.

I got in trouble at my old company for not taking my laptop home with me in the evening because by not taking it home, I was showing the rest of the team I wasn’t dedicated enough to the company and setting a bad example or someshit. I dragged the loving thing home every night and dumped it in the foyer because I sure as gently caress wasn’t going to waste my evenings checking in on work stuff when I could be drinking heavily in order to decompress from work. They constantly let little things like that color the perception of your performance and “dedication” and it seriously wore me down after a while. If you weren’t an antisocial workaholic sperglord, you couldn’t win.

But that’s small potatoes in the great scheme of tech startups with lovely cultures - friend of mine got fired from Uber ATG for balking at being asked to work 70 hour weeks while being salaried at 40 and then having the gall to ask to be paid for 70 hours a week. That whole place is amazingly hosed up.

Queen Victorian
Feb 21, 2018

ultrafilter posted:

A friend got this from a recruiter:

Honestly if I’d gotten a message like that from a recruiter while at my previous job, I would have been all over it. My previous job got to the point where it was so bad I would have taken a lower level job with worse pay (even though I was already severely underpaid) just to escape and still be in a position where I got to use my skills and experience.

Then again, by the time I turned in my two weeks notice, I wasn’t that far off from ragequitting to go flip burgers at Wendy’s and/or start taking up furry porn commissions.

Queen Victorian
Feb 21, 2018

This discussion is funny to me because at my last job I got chastised for being overly verbose when I front-loaded even somewhat complex questions in Slack posts. Or I got told to take it to email, or to just ask in person, and the actually correct action I should have taken regarding my question seemed to vary by phase of the moon or something because my approach was always the wrong approach. No one took kindly to dribbled out walls of unsubstantial messages either, so damned if you do, damned if you don’t.

It’s not a problem at my current job because everyone on the dev team has good writing and communication skills, and we’re all old enough to have started texting when we got charged per text and therefore never got into the habit of spewing out a pile of useless messages before getting to the point.

Queen Victorian
Feb 21, 2018

Woebin posted:

Oh yeah, the UI person and the others who are in multiple teams are expected to attend both teams' agile ceremonies, so they're stuck with double the amount of dailies, refinement meetings, sprint planning meetings, retros, reviews... it's a lot, really. The UI person especially seems to be getting really worn out from it, a couple of times when there have been meetings she's messaged me afterwards to say that something I said made her feel questioned or belittled. I do have a tendency to be blunt in ways that can come off as critical, and to put my foot in my mouth, and I apologized and explained how I'm pretty bad at certain social aspects but do my best, and asked her to let me know if I could do anything on particular to avoid causing similar feelings in the future. I figured it was all on me the first time it happened, but the second time it really seemed to me like she was actively reading malice into my words or something and I started thinking maybe she specifically dislikes me or something.

Anyway she's on sick leave now, and in retrospect I think it was probably a combination of the stress getting to her and my own unfortunate way with words that triggered those messages of hers. That plus the design process being just as much of a mess as everything else, where she'd basically be forced to make up design sketches on short notice which were then passed to the devs as part of requirement documents without proper review, so we'd end up either starting work to implement stuff that often outright conflicted with higher level design guidelines or getting into long back-and-forths about why these designs needed adjustment and how. That probably felt more personal than it was sometimes, too.

Ugh, the more I talk about this the more anxious I get. I swear there's a lot of great stuff about this job too! If it was just the dev team and the PO did her job of acting as a filter between us and stakeholders/suits it'd be pretty much perfect, but that ship has sailed by now.

As a UI designer myself, I do not envy the one at your company. It seems that she’s in a high stress, low psychological safety position, and having been in a similar position, I can say that you start to feel like everyone is out to get you, and you start getting hyper defensive. In my defensiveness I’d find myself lashing out and effectively picking fights with coworkers when I felt belittled/humiliated or singled out even though I’m typically easygoing and not very confrontational. I mean, I was certainly getting poo poo on for real and she might be too, but even if I wasn’t it still felt like it.

The fact that she’s being pushed into generating conflicting designs that cause problems due to splitting her time between two teams/disorganized process is probably doing a number on her professional self esteem/exacerbating imposter syndrome.

In an ideal world, she wouldn’t be doing double duty on overhead bullshit and would have good rapport with and respect from the dev team and you’d all work together harmoniously through well thought-out, clearly documented processes to design and implement cool UIs that are to spec.

At my current company (which is waaaay better than my old company in pretty much every regard), I’m the designer and also the front end developer, so in a developer capacity I answer to the principal dev and for matters of design, they answer to me (though it’s usually me implementing my own designs). Helps that we have excellent rapport and no one has a huge ego. When everything is good and happy, it’s easy to deal with blunt criticism because there’s that underlying psychological safety and mutual respect, but when that foundation isn’t there, that sort of criticism can absolutely wreck you.

Queen Victorian
Feb 21, 2018

Bingo Bango posted:

I got stressed just reading this

:same:

Luckily everyone at my office just uses the default yellow ones.

At my previous job a former coworker would use the one that rotates between all the skin tones, so I guess that works too.

Queen Victorian
Feb 21, 2018

Not sure about anything specific to developers - I learned technical writing in the context of design (mostly product use instructions and copy for packaging and presentations), but we used the same textbook that the general technical writing course used. Maybe get a college textbook and highlight sections that are relevant? Also I think finding examples of similar documents that are well written would be helpful because you can point to something concrete and explain why it’s good.

In my experience, I’ve learned that good technical writers are worth their weight in gold and that unfortunately, many people are just not good writers and it’s very difficult to teach them to be better without dedicated tutoring/coaching (which they may not like or want). I once ran a blog for engineering and robotics and stuff and took student submissions from tie-in courses and I quickly learned that it was faster and easier for me to just wholesale rewrite their incomprehensible garbage than to keep sending it back with revision notes that they either didn’t understand or refused to implement. And that was before I got to basic grammar and poo poo. These were otherwise smart people, too.

Queen Victorian
Feb 21, 2018

Grump posted:

anybody else's coworkers getting extremely loving lazy with WFH during covid? I have one dude on my team who hasn't submitted a PR in 30 days and hasn't done a PR review in 32 days. miraculously, he hasn't been fired yet :confused:

I was reading this like “lol don’t doxx me” but then I got to the no PR in 30 days and.. yikes. My productivity has definitely suffered due to WFH and overall quarantine-induced malaise and lethargy, but not nearly that badly. We usually each do a couple PRs a week on average. Sometimes I don’t finish stuff in time for review but I make sure the WIP branch is pushed so coworkers can see what I’m working on. Having (very brief) daily stand ups and weekly review meetings is helpful for keeping us on track and aware of what everyone is working on.

I honestly can’t wait to get back to the office where I was more productive and could actually interact with coworkers (and solve problems much more easily and quickly) and go out to lunch and stuff. And had actual work-life balance rather than having it all bleed together.

Queen Victorian
Feb 21, 2018

I’m in the actually enjoy retros camp (probably because I also like griping). At my current job, they are productive (we can discuss issues frankly and come up with solutions for next time) and I actually like everyone on the dev team and genuinely enjoy spending time with them. Also full-blown retros happen pretty infrequently with how we schedule project cycles. Weekly reviews serve as mini retros as needed.

Totally different story at my previous job. Retros happened every other week and were excruciating - pretty much just us sitting there for two hours getting scolded for failing to deliver after being set up to fail. The lead dev was a dour, antisocial guy who managed to create a profoundly miserable and unsupportive environment. Didn’t help that one of the other devs was an insufferable sexist prick and the rest of them, while decent people, I just didn’t click with. In conclusion, retros are hell when your team sucks and you have zero psychological safety - no one you can trust to back you up and no one you can trust to not throw you under the bus.

Queen Victorian
Feb 21, 2018

prom candy posted:

This is nice to read after all the poo poo you were posting last year about your terrible job

Thanks! Honestly the new job (which I guess isn’t all that new anymore since it’s been over a year but who can tell with how hosed the passage of time is during the age of quarantine) is better in just about every single aspect up to and including waaaay better pay.

I actually credit this thread and the folks in it for giving me some much needed perspective about how bad and damaging it actually was because I’d been in it too long and couldn’t tell anymore because in the beginning it was great and frog in boiling pot and all that. Finally getting on antidepressants and snapping out of a paralyzing bout of imposter syndrome also helped. I’m still working on unlearning some maladaptive tendencies but it’s way better than before.

As for my cool and good team, I took part in interviewing them thanks to the inclusive and transparent interview process we have here. If I’d sensed any red flags or bad vibes from a candidate I have full confidence that the higher ups would have jettisoned said candidate. Very unlike my old job where I was peripherally aware we had an open position and then all of a sudden a new coworker would be dumped on us (in a very small team where it was kind of important that we all meshed).

One thing I will add is that I don’t believe that the shittiness of my old job was intentional or malicious. There were significant growing pains and the dev team suffered from mismanagement, management being oblivious to the undercurrents of poo poo and a couple bad hires. But in a small company and a super small team, a couple bad moves like that can completely gently caress things up for everyone.

Queen Victorian
Feb 21, 2018

Huge take-home projects that you have to build from scratch basically amount to spec work. It’s one thing to give a project that actually takes 2-3 hours and then there’s asking the person to build an entire app and merely claim it should only take 2-3 hours.

I think my company hit the right balance. I was given a busted little toy app that I had to fix and improve. Seeing if a candidate could find their way around the code and diagnose problems and also write a bit of new code was sufficient to gauge aptitude without wasting many evenings of your life.

My boss later told me that it often ended up being a litmus test for whether the candidate was able to code at all without plagiarizing a solution. There were apparently a ton of candidates that looked good enough on paper to get to the take-home test stage but ended up being lying hacks.

Test needs to be rewritten (frontend paradigm has changed and we want to evaluate some different skills), but when we get to it it’ll still be the same concept - dumb toy app that’s already built that just needs fixing and tweaking.

Queen Victorian
Feb 21, 2018

Truman Peyote posted:

I think we as an industry badly overestimate the value of hiring "good programmers." in practice, most of what makes a programmer good is communication skills, and most of how we interview technical people doesn't measure that effectively.

This is more or less my sentiment. My current company is fairly good about looking at soft skills and aptitude. The take-home coding exercise (which is existing code that you have to fix, not a giant time-sucking project spec) serves first as a means to determine whether a candidate is lying about knowing how to code/plagiarizing (boss said liars/plagiarizers were unfortunately common), and then to gauge poo poo like observation skills and problem solving ability. I feel it’s more aptitude-oriented than making someone write a bunch of code from scratch or implementing algorithms.

We had an amazing candidate a while back (that we unfortunately lost to another offer) who was low experience and high aptitude. Like, came in with a Udemy certificate and blew masters degree holders out of the water (well she had a masters too but in a completely unrelated field). Talked us through how she would go about researching a solution when asked about something she didn’t know how to do, uncannily good at asking us questions about problems she was solving to glean extra context, overall excellent communicator, all the soft skills that you can’t teach. Probably would have been weeded out by an interview process that focused on existing hard skills and direct experience.

My previous company was really bad about hiring on the basis of existing hard programming skills and ignoring all other qualities. So they got a dour antisocial team lead and then a hot-headed toxic junior dev . All the technical skills between couldn’t overcome the utterly miserable work environment they created.

Queen Victorian
Feb 21, 2018

A former colleague of mine once worked at a place with enforced code pairing that was very frequent if not daily (don’t remember) and he said that it was miserable and exhausting and made a whole lot worse by his assigned coding partner being an antisocial weirdo who barely acknowledged him much less talked through the code with him. Yes, definitely a nightmare.

I’ve found as-needed ad hoc code pairing, especially for troubleshooting, really beneficial. It’s one of the things I miss about being in the office. We can still screen-share and whatnot, but it’s not the same as being in the same room, looking at the same screen and trading off the keyboard and figuring poo poo out together. I also miss whiteboarding. I’ve been tempted to pick up a Wacom or something so I can do live sketching during brainstorming meetings because I’m tired of drawing things on paper and holding them up to my screen.

Adbot
ADBOT LOVES YOU

Queen Victorian
Feb 21, 2018

HMS Queen Victorian, Bona Fide Artist

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply