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
Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed
If you're specifically trying to evaluate how microservices would work for you it actually makes sense to purposefully go overboard with it. A single microservice won't do a very good job of exposing you to the downsides of having to deal with coordinating a whole bunch of services, but you also don't want to start by porting over a bunch of big critical things, so a small thing split into far too many pieces is a good first test.

If they actually think it's good design, then you have a problem.

Adbot
ADBOT LOVES YOU

Pollyanna
Mar 5, 2005

Milk's on them.


Knowing when and where to draw the line is basically the holy grail of software development. I'm not surprised that they don't know how to do it.

ToxicSlurpee
Nov 5, 2003

-=SEND HELP=-


Pillbug

Pollyanna posted:

Knowing when and where to draw the line is basically the holy grail of software development. I'm not surprised that they don't know how to do it.

I've also noticed that playing into that is the fact that literally everything is a tradeoff in software. It's important to weigh the pros and cons, especially long term, but how many people either misjudge them or just don't consider it at all?

Cancelbot
Nov 22, 2006

Canceling spam since 1928

It's a fair point that they proved something. They wanted to see if they could break the monolith using microservices, by targeting a specific and common customer service task. The scale of the problem becomes evident in that each task is self contained in terms of user experience, but spiders out through a huge dependency tree that ultimately modifies a huge object in session. There are 28 such tasks, so you could naively extrapolate that around 80-90 services would be required to replace them all, including some shared services.

They did say they want a maximum of one hop out to keep the dependencies as light as possible, but I'm not sure how that works in practice because it's very easy to slide down the slippery slope of "one more dependency" that DI frameworks can lure you into.

My issue is that they are trying to solve the problem of being a big monolith means that it is a bad system, but replacing it with something that is conceptually identical, with the same constraints as when it was first built 8 years ago. Except this time it's lots of little services instead of lots of little classes. I see the benefit of microservices from a scaling and resiliency point of view, but I think that the problems are more nuanced than blob of code == bad.

Cancelbot fucked around with this message at 19:42 on Jul 14, 2016

Gounads
Mar 13, 2013

Where am I?
How did I get here?
Developer has a task to sort some items. The rules for sorting are slightly complex because we're sorting on a fraction n/d where n or d can be a positive integer, 0, infinite, or unknown.

There are 6 rules clearly spelled out, that if followed will give the desired order. She's been at this for 4 days. I just got a bizarre question something like "I'm done, but I'm getting -2.5 > -3.5" in my order. WTF. There are no negative values here.

I just looked at the code. There's at least a hundred lines trying to pre-calculate some sort of absolute value for each item that can then be sorted on. Real mental gymnastics for turning those rules into a value.

me: you should be able to encapsulate all this logic in a comparator function that you pass to the sort function

10 minutes goes by.

dev: ok, Will check with this.

I think this poor person just hit their head against the wall as they realized their solution is dumb and would probably never work.

So torn between spending more time mentoring and getting my work done.

Pollyanna
Mar 5, 2005

Milk's on them.


We had a discussion yesterday afternoon on what to do about one of the engineers on our team. Specifically, that he's totally useless and slowing us down. He's the type of person that can't really do anything without being babied through it, even though he's supposedly a specialist in the type of work he's doing (CSS, Javascript, etc.) He tends to introduce more bugs than he fixes, has been taking my coworker aside all day whenever he's working on something, and isn't very rigorous about making sure his poo poo works. I don't want to promote a silo culture of "please stop talking to me", and it's perfectly fine to ask questions - it's just that he doesn't have enough experience to figure things out on his own, especially not any basic poo poo like git or Rails. The rest of the team wants him out, and I feel a little bad saying that I'm neutral on him staying or not - he doesn't really bother me even if he sucks at his job. This isn't the first time he's had trouble on a project either, he's been taken off a previous one for the subject being way out of his league/competence.

One thing that did bother me a little bit about the discussion was that his personal interests and personal projects were used as ammunition against him. One engineer brought up his mentioning of his self-developed apps and projects as an example of how he doesn't care about the work he's doing and only focuses on what he wants to do. That worries me - this is the kind of red flag that people talk about but no one has actually encountered, where personal interests and development are instead taken as "you aren't doing your work so gently caress you". Is it actually such a bad thing to have personal projects like those? It makes much less likely to talk about my own stuff with my colleagues from now on.

Regardless, we're probably going to be losing an engineer soon. On the plus side, a whole bunch of suits showed up yesterday to have a presentation/meeting on how to transform the digital development team, so everything's totally on the up and up, right? :shepface: we're totally all gonna be let go lmao

New Yorp New Yorp
Jul 18, 2003

Only in Kenya.
Pillbug

Pollyanna posted:

I feel a little bad saying that I'm neutral on him staying or not - he doesn't really bother me even if he sucks at his job.

Him sucking at his job makes your life more difficult, either directly (cleaning up his broken poo poo) or indirectly (co-workers stressed out and tense from cleaning up his poo poo). You should care.

KoRMaK
Jul 31, 2012



If you are good/great at your job then talk about your side projects if you want.

If you suck at your job then yea maybe don't talk about your side projects.

Pollyanna
Mar 5, 2005

Milk's on them.


Ithaqua posted:

Him sucking at his job makes your life more difficult, either directly (cleaning up his broken poo poo) or indirectly (co-workers stressed out and tense from cleaning up his poo poo). You should care.

Yeah, that makes sense. If he's messing with the rest of the team, he's messing with me, unfortunately. I feel pretty bad about this, but he's just not experienced/smart enough to contribute positively to the team effort.

KoRMaK posted:

If you are good/great at your job then talk about your side projects if you want.

If you suck at your job then yea maybe don't talk about your side projects.

This is what I figured is the actual, real case. It makes sense, just from a social-perception point of view.

KoRMaK
Jul 31, 2012



Yea, keep social-perception involved in your decision making.

Space Kablooey
May 6, 2009


Is this a case where he does poo poo work but his personal apps are good? If this is the case I guess this is a classic case of being unmotivated.

Though I guess it's irrelevant if his personal apps are good, because he's doing a lovely job no matter what so no big loss to you either way.

Pollyanna
Mar 5, 2005

Milk's on them.


I have no idea whether or not his personal apps are particularly good cause I've never really used them, and the styling/design I see seems to be pre-baked framework stuff. That said, when he asked me to help him with a Flask project of his, he couldn't figure out how to make an endpoint render more than two kinds of an element on a page, so I really don't think his projects are actually any decent. I sure as poo poo wouldn't hire the guy for something I was making, anyway.

necrobobsledder
Mar 21, 2005
Lay down your soul to the gods rock 'n roll
Nap Ghost
You need to be clear to under-performers about your concerns as directly as possible while showing examples of what you'd like to improve and when expectations weren't met. If you hear mostly excuses instead of promises, you should probably get the papers ready to fire the guy because it's an attitude problem that won't be fixed or may be fixed temporarily but regress back to business as usual. I've fired under-performers before and my only regret is that I didn't fire them sooner. Who cares if someone's side projects are good anyway? They're not working well with you, that's kind of important. In fact, if someone does better work on the side than with your team, that is actually worse in a way.

Skandranon
Sep 6, 2008
fucking stupid, dont listen to me

Pollyanna posted:

Regardless, we're probably going to be losing an engineer soon. On the plus side, a whole bunch of suits showed up yesterday to have a presentation/meeting on how to transform the digital development team, so everything's totally on the up and up, right? :shepface: we're totally all gonna be let go lmao

You haven't been paying attention. He's going to be promoted to manage your team.

Cuntpunch
Oct 3, 2003

A monkey in a long line of kings
Could the talk about personal projects also be one about *how* he goes about his work?

We have a guy at work who tends to grab a task off the board, disappear into a hole for half the sprint, then finally pop up with buggy, poorly patterned, buggy-as-all-hell code.

I spend a ton of time cleaning up after him, because he's very much the 'personal project' sort of person, loves talking about the random toy he's playing with this week, and it reflects in his work. Every single week it's a new framework, a new style guide, a new library, a new whatever and some side project he did with it. So he will come in and just blindly start replacing libraries with new versions with breaking changes and then leave it to the rest of the team to clean up in his wake when a pile of regressions get introduced.

KoRMaK
Jul 31, 2012



Cuntpunch posted:

Could the talk about personal projects also be one about *how* he goes about his work?

We have a guy at work who tends to grab a task off the board, disappear into a hole for half the sprint, then finally pop up with buggy, poorly patterned, buggy-as-all-hell code.

I spend a ton of time cleaning up after him, because he's very much the 'personal project' sort of person, loves talking about the random toy he's playing with this week, and it reflects in his work. Every single week it's a new framework, a new style guide, a new library, a new whatever and some side project he did with it. So he will come in and just blindly start replacing libraries with new versions with breaking changes and then leave it to the rest of the team to clean up in his wake when a pile of regressions get introduced.

Ew, oh my god. Why do you guys enable that behavior?

necrobobsledder
Mar 21, 2005
Lay down your soul to the gods rock 'n roll
Nap Ghost
It's one thing if someone can make stuff work with new libraries and refractors but breaking stuff that used to work isn't cool. Cofounder of a company I was at before literally refactored half the codebase a week before a release against the engineer's wishes, but we all had some faith and he's the cofounder after all. He fixed half our bugs at the same time and we all just sat slack-jawed at how it worked now. But he wouldn't have tried if we had no tests.

Cuntpunch
Oct 3, 2003

A monkey in a long line of kings

KoRMaK posted:

Ew, oh my god. Why do you guys enable that behavior?

Management reshuffle means the new boss doesn't understand the team dynamics yet. He's got the contractors with him(because he'll spend 8 hours a day with them dealing with their "could you please show me how to write functions? ok great, could you please check that in for me?") and I'm outnumbered for the time being. The fact that we regularly have "oh hey I just blindly updated a nuget package because Nuget packages are 100% safe to update by major versions and wait what do you mean ASP is delivering assembly binding errors....uhhhh sorry I'm busy looking at stuff can you please fix that?" isn't really understood very well yet.

It's a matter of time, since he got kicked off a different project to join ours because he consistently tended to go "two week sprints mean I can deliver to QA at 2PM the day before the sprint ends!", and he's doing the same thing again. But really wants to push the issue with management to argue about how he is doing *all* the work for the project and he thinks that's unfair. Except that everyone pretty much knows he goes "oh I'm working so hard I'm putting in 4x9's!!! ok it's 10AM on a Friday by guys can't OT!" as he rapidly checks in all his work and suddenly there are bug reports within 30 seconds of anybody looking at it :v:

spacebard
Jan 1, 2007

Football~

Cuntpunch posted:

Management reshuffle means the new boss doesn't understand the team dynamics yet. He's got the contractors with him(because he'll spend 8 hours a day with them dealing with their "could you please show me how to write functions? ok great, could you please check that in for me?") and I'm outnumbered for the time being. The fact that we regularly have "oh hey I just blindly updated a nuget package because Nuget packages are 100% safe to update by major versions and wait what do you mean ASP is delivering assembly binding errors....uhhhh sorry I'm busy looking at stuff can you please fix that?" isn't really understood very well yet.

It's a matter of time, since he got kicked off a different project to join ours because he consistently tended to go "two week sprints mean I can deliver to QA at 2PM the day before the sprint ends!", and he's doing the same thing again. But really wants to push the issue with management to argue about how he is doing *all* the work for the project and he thinks that's unfair. Except that everyone pretty much knows he goes "oh I'm working so hard I'm putting in 4x9's!!! ok it's 10AM on a Friday by guys can't OT!" as he rapidly checks in all his work and suddenly there are bug reports within 30 seconds of anybody looking at it :v:

I think it's time to add some branch permissions to the repo. :v:

Hughlander
May 11, 2005

Cuntpunch posted:

Management reshuffle means the new boss doesn't understand the team dynamics yet. He's got the contractors with him(because he'll spend 8 hours a day with them dealing with their "could you please show me how to write functions? ok great, could you please check that in for me?") and I'm outnumbered for the time being. The fact that we regularly have "oh hey I just blindly updated a nuget package because Nuget packages are 100% safe to update by major versions and wait what do you mean ASP is delivering assembly binding errors....uhhhh sorry I'm busy looking at stuff can you please fix that?" isn't really understood very well yet.

It's a matter of time, since he got kicked off a different project to join ours because he consistently tended to go "two week sprints mean I can deliver to QA at 2PM the day before the sprint ends!", and he's doing the same thing again. But really wants to push the issue with management to argue about how he is doing *all* the work for the project and he thinks that's unfair. Except that everyone pretty much knows he goes "oh I'm working so hard I'm putting in 4x9's!!! ok it's 10AM on a Friday by guys can't OT!" as he rapidly checks in all his work and suddenly there are bug reports within 30 seconds of anybody looking at it :v:

Easy solution.

Accidentally wait until 10:00:01AM
code:
git fetch
git checkout master
git pull
git reset HEAD^ --hard
git push --force origin master
Monday Morning:
"Weird you checked in before you left? We didn't see anything, well just merge latest and push now QA is all ready for you!"

ToxicSlurpee
Nov 5, 2003

-=SEND HELP=-


Pillbug
So at work the pages are modular; there are a bunch of headers that are attached to pages before the body.

One of them is called [...]NoScript as it's a version of [...] that doesn't use JavaScript.

...the only things it's attached to use JavaScript very heavily. In fact they're some of the heaviest users of JavaScript in the whole thing.

They're also some of the only pages that only use one type of JavaScript. Others have multiple, conflicting frameworks crammed together.

Cuntpunch
Oct 3, 2003

A monkey in a long line of kings

spacebard posted:

I think it's time to add some branch permissions to the repo. :v:

It's funny you should mention branching!

We have *constant* issues with merge issues while working in a single branch. We're on TFS, and the team doesn't compulsively Get Latest and then *review* the diff before checking in. So especially when two different devs have added files, we just have stuff randomly get dropped from the project, etc.

Dude's solution? Clearly every single dev should create a brand new branch every single sprint for every single slice of every single story they're working on! More branches, less problems!

:smithicide:

Gounads
Mar 13, 2013

Where am I?
How did I get here?

Cuntpunch posted:

It's funny you should mention branching!

We have *constant* issues with merge issues while working in a single branch. We're on TFS, and the team doesn't compulsively Get Latest and then *review* the diff before checking in. So especially when two different devs have added files, we just have stuff randomly get dropped from the project, etc.

Dude's solution? Clearly every single dev should create a brand new branch every single sprint for every single slice of every single story they're working on! More branches, less problems!

:smithicide:

Never dealt with tfs, but In the git world, that's very normal.

Cuntpunch
Oct 3, 2003

A monkey in a long line of kings

Gounads posted:

Never dealt with tfs, but In the git world, that's very normal.

TFS (TFVC for the spergs) does not play nice with this strategy.

Bruegels Fuckbooks
Sep 14, 2004

Now, listen - I know the two of you are very different from each other in a lot of ways, but you have to understand that as far as Grandpa's concerned, you're both pieces of shit! Yeah. I can prove it mathematically.

Cuntpunch posted:

It's funny you should mention branching!

We have *constant* issues with merge issues while working in a single branch. We're on TFS, and the team doesn't compulsively Get Latest and then *review* the diff before checking in. So especially when two different devs have added files, we just have stuff randomly get dropped from the project, etc.

Dude's solution? Clearly every single dev should create a brand new branch every single sprint for every single slice of every single story they're working on! More branches, less problems!

:smithicide:

This is sadly rhetorical, but why is this a technology problem? Why not roll back the changesets of people who do this and fire people who don't look at the things they check in? Nope, clearly the answer is branches and unit test guidelines with code coverage percent thresholds, instead of just not hiring morons.

hirvox
Sep 8, 2009

Bruegels Fuckbooks posted:

This is sadly rhetorical, but why is this a technology problem? Why not roll back the changesets of people who do this and fire people who don't look at the things they check in? Nope, clearly the answer is branches and unit test guidelines with code coverage percent thresholds, instead of just not hiring morons.
Technology bandaids are better than nothing when senior developers have been reassigned according to the Peter principle and there's nobody left in the project to care about things the customer didn't explicitly ask for. The non-technical project manager and the junior developers left can still ignore CI test results until the project goes insolvent due to technical debt, but at least we get a timeline on how it happened. In theory, that could be helpful in making the next project less of a disaster.

ToxicSlurpee
Nov 5, 2003

-=SEND HELP=-


Pillbug

Bruegels Fuckbooks posted:

This is sadly rhetorical, but why is this a technology problem? Why not roll back the changesets of people who do this and fire people who don't look at the things they check in? Nope, clearly the answer is branches and unit test guidelines with code coverage percent thresholds, instead of just not hiring morons.

It's cheaper to hire morons. There's also a shortage of programmers on the world in general so good luck getting the best ones. Sometimes you just have to make do with what you can get.

necrobobsledder
Mar 21, 2005
Lay down your soul to the gods rock 'n roll
Nap Ghost
You don't even need the "best" ones for the majority of projects out there though, to be fair. The base level of competency to not create massive cost overruns far greater than the value you supposedly added is higher than most non-tech companies are willing or even able to bear.

Gounads posted:

Never dealt with tfs, but In the git world, that's very normal.
Are you familiar with CVS and SVN? Because TFS is a lot closer to that kind of branch and merge approach than what we're used to with git.

spiritual bypass
Feb 19, 2008

Grimey Drawer
The worst part about being in a SVN workplace is that you can't convince them to adopt git and branching because they all think branching is too difficult after years of using SVN.

Gounads
Mar 13, 2013

Where am I?
How did I get here?
It's been more than a decade since I last used svn, but, now that you mention it, bad memories are coming back.

return0
Apr 11, 2007
If I had to work at a place that used SVN, I would checkout the SVN repo into a Git repo and work in that.

Rocko Bonaparte
Mar 12, 2002

Every day is Friday!

return0 posted:

If I had to work at a place that used SVN, I would checkout the SVN repo into a Git repo and work in that.

Until the git repo explodes because they're storing gigabytes of binary files in it too.

necrobobsledder
Mar 21, 2005
Lay down your soul to the gods rock 'n roll
Nap Ghost

return0 posted:

If I had to work at a place that used SVN, I would checkout the SVN repo into a Git repo and work in that.
The git-svn scripts only ever worked so well for me and if you're using a slightly non-standard directory layout it's going to start getting real ugly. In practice, I wound up with the worst of git and the worst of SVN when I had to fix crap in the SVN repo. But really, if you get an SVN backup in place and you're really sure that it won't mess up your upstream when you try your pushes back, you should be ok.

FlapYoJacks
Feb 12, 2009
Replacement for me is at training until next week and I was asked to go back to my old project and work on a importer.

I spent all day yesterday setting poo poo up again to actually work on the old project. Super productive!

Doh004
Apr 22, 2007

Mmmmm Donuts...

Pollyanna posted:

We had a discussion yesterday afternoon on what to do about one of the engineers on our team. Specifically, that he's totally useless and slowing us down. He's the type of person that can't really do anything without being babied through it, even though he's supposedly a specialist in the type of work he's doing (CSS, Javascript, etc.) He tends to introduce more bugs than he fixes, has been taking my coworker aside all day whenever he's working on something, and isn't very rigorous about making sure his poo poo works. I don't want to promote a silo culture of "please stop talking to me", and it's perfectly fine to ask questions - it's just that he doesn't have enough experience to figure things out on his own, especially not any basic poo poo like git or Rails. The rest of the team wants him out, and I feel a little bad saying that I'm neutral on him staying or not - he doesn't really bother me even if he sucks at his job. This isn't the first time he's had trouble on a project either, he's been taken off a previous one for the subject being way out of his league/competence.

One thing that did bother me a little bit about the discussion was that his personal interests and personal projects were used as ammunition against him. One engineer brought up his mentioning of his self-developed apps and projects as an example of how he doesn't care about the work he's doing and only focuses on what he wants to do. That worries me - this is the kind of red flag that people talk about but no one has actually encountered, where personal interests and development are instead taken as "you aren't doing your work so gently caress you". Is it actually such a bad thing to have personal projects like those? It makes much less likely to talk about my own stuff with my colleagues from now on.

Regardless, we're probably going to be losing an engineer soon. On the plus side, a whole bunch of suits showed up yesterday to have a presentation/meeting on how to transform the digital development team, so everything's totally on the up and up, right? :shepface: we're totally all gonna be let go lmao

You're not a manager yet, right Pollyanna? Was this discussion had with engineers from all levels?

Pollyanna
Mar 5, 2005

Milk's on them.


Doh004 posted:

You're not a manager yet, right Pollyanna? Was this discussion had with engineers from all levels?

No way I'm not a manager. This was between our entire product team (2 mid-level engineers, 1 senior) with our direct manager.

Doh004
Apr 22, 2007

Mmmmm Donuts...

Pollyanna posted:

No way I'm not a manager. This was between our entire product team (2 mid-level engineers, 1 senior) with our direct manager.

Ouch. Not a fan of that at all. Performance related discussions should be handled on a 1:1 basis and not in a group environment like that. That doesn't mean issues with said co-worker shouldn't be raised, but should be done in private with one's manager (or one level up if the manager is the problem). It would then be up to the manager to go talk to people individually to get more information and hear out opinions in order to determine next steps.

Pollyanna
Mar 5, 2005

Milk's on them.


I don't like it either, but the manager really just kinda got cornered by the rest of the team some afternoon, so it wasn't exactly planned. Either way, it's a good way to start getting paranoid about whether the company talks about you the same way. :ohdear:

Hughlander
May 11, 2005

Pollyanna posted:

I don't like it either, but the manager really just kinda got cornered by the rest of the team some afternoon, so it wasn't exactly planned. Either way, it's a good way to start getting paranoid about whether the company talks about you the same way. :ohdear:

Manager should have said this isn't an appropriate platform for this issue and killed it at that point.

Adbot
ADBOT LOVES YOU

Doh004
Apr 22, 2007

Mmmmm Donuts...

Hughlander posted:

Manager should have said this isn't an appropriate platform for this issue and killed it at that point.

This. Really poor decision making on their part.

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