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
epswing
Nov 4, 2003

Soiled Meat
I just rewrote a little internal command line tool into a proper/native windows desktop app, took about 4 hrs over 2 days, it was fun.

Now I’m completely deflated at the prospect of deployment; generating a single file executable, dealing with versioning, signing the exe in the Azure DevOps pipeline, having the pipeline copy the artifact to the storage account, serving the file with proper permissions, etc.

All the stuff that isn’t Writing The Code always sucks all the time.

Adbot
ADBOT LOVES YOU

wilderthanmild
Jun 21, 2010

Posting shit




Grimey Drawer
Just make sure you automate that bullshit so when they want you to make changes Wednesday next week you don't have to do it all by hand again!

thotsky
Jun 7, 2005

hot to trot
I would prefer to design the app, tell someone else to code it, review their code and then fix all the devops poo poo myself. I get bogged down in everything being "perfect" when coding so it just takes way too long.

Cup Runneth Over
Aug 8, 2009

She said life's
Too short to worry
Life's too long to wait
It's too short
Not to love everybody
Life's too long to hate


Man, someone should get all you guys into one organization and assign you different titles based on which part of the workflow you are handling

Falcon2001
Oct 10, 2004

Eat your hamburgers, Apollo.
Pillbug

epswing posted:

I just rewrote a little internal command line tool into a proper/native windows desktop app, took about 4 hrs over 2 days, it was fun.

Now I’m completely deflated at the prospect of deployment; generating a single file executable, dealing with versioning, signing the exe in the Azure DevOps pipeline, having the pipeline copy the artifact to the storage account, serving the file with proper permissions, etc.

All the stuff that isn’t Writing The Code always sucks all the time.

I do a lot of sysops style coding in my team, and the thing that absolutely sucks the life out of me more than anything else is loving permissions. At my BigTech company, questions like 'how do we determine what framework a given service is using' turns into a nightmarish list of Microservices, all of which have their own dumb permissions model, onboarding systems, clients, and use cases/etc.

My favorite part is that by and large, we separate permissions into Are You A Human or Filthy Robot Scum. For humans, this isn't SO bad; there's a whole system where human-driven interactive stuff can easily inherit the user's permissions that are generally easier to manage and tends to also grant access to the UX associated with a given API; so if you want to call the Service Configuration API, as long as you have perms to the Service Configuration Site, you're all good in the hood. Obviously you can still get into 'whoops need perms' but it tends to work out pretty fast.

But sometimes that's not the case, and for poo poo that ABSOLUTELY should be. For example, we have an old rear end alarming platform that's used EVERYWHERE, and for some godforsaken reason it does not support the Human Auth model and only uses service auth models...and service auth models are (for probably good reasons) a loving pain in the rear end nightmare space. So if a human wants to do things like 'crawl through our alarms and see what's up' you need to basically use the service-auth model on your personal VM and then call using that.

I also love onboarding when it's like 'what is the expected TPS' and I'm like 'I dunno man I'm gonna run this like a couple dozen loving times so maybe 150 TOTAL REQUESTS EVER YOU FUCKS BECAUSE YOU loving UX IS A NIGHTMARE I CAN'T TIE INTO AT ALL"

Anyway all of that sucks and I hate it. We should go back to usernames and passwords for everything and passwords must always be Password1.

Carbon dioxide
Oct 9, 2012

I can't seem to find this page of the thread, what is going on?

wilderthanmild
Jun 21, 2010

Posting shit




Grimey Drawer

Cup Runneth Over posted:

Man, someone should get all you guys into one organization and assign you different titles based on which part of the workflow you are handling

Nah, it's now mandatory that everyone be able to own their entire stack. So the infrastructure and DevOps guy is trying to figure out how the gently caress CSS works, the react guy is trying learn how to write SQL, and the C# guy isn't quite sure what terraform is, but he'll figure it out eventually.

Fellatio del Toro
Mar 21, 2009

old project that I recently left had me doing frontend, backend, databases, elasticsearch, devops, cloud admin, networking, answering user emails, had a rotating desk where they wanted people coming to the office so the scientist-programmers could ask questions, etc

shortly after changing projects I got inadvertently included in a meeting invite to some of the devs titled "Help Desk Shift" lmao :wave:

CPColin
Sep 9, 2003

Big ol' smile.

Carbon dioxide posted:

I can't seem to find this page of the thread, what is going on?

Just keep refreshing :f5:

Volmarias
Dec 31, 2002

EMAIL... THE INTERNET... SEARCH ENGINES...

Fellatio del Toro posted:

old project that I recently left had me doing frontend, backend, databases, elasticsearch, devops, cloud admin, networking, answering user emails, had a rotating desk where they wanted people coming to the office so the scientist-programmers could ask questions, etc

shortly after changing projects I got inadvertently included in a meeting invite to some of the devs titled "Help Desk Shift" lmao :wave:


https://www.youtube.com/watch?v=F2Z2CklSxM0

Cat Machine
Jun 18, 2008

Fellatio del Toro posted:

shortly after changing projects I got inadvertently included in a meeting invite to some of the devs titled "Help Desk Shift" lmao :wave:
Worked at a fairly large bank where I was somehow both the lead engineer for the smartphone apps and the guy who helped old people turn on an iPhone for the first time so that they could use said app. They had Jira tickets for it and everything.

America Inc.
Nov 22, 2013

I plan to live forever, of course, but barring that I'd settle for a couple thousand years. Even 500 would be pretty nice.

epswing posted:

Now I’m completely deflated at the prospect of deployment; generating a single file executable, dealing with versioning, signing the exe in the Azure DevOps pipeline, having the pipeline copy the artifact to the storage account, serving the file with proper permissions, etc.

All the stuff that isn’t Writing The Code always sucks all the time.

It's funny because the idea on paper is that they're taking work off your hands, but sometimes it's just boxing you into their particular workflow with no ability to change it.

Precambrian Video Games
Aug 19, 2002



steckles posted:

We get this every now and then. Parts of our code base are over 20 years old and sometimes a newish developer will get all "Let's rewrite this in PHP"

Nobody is saying this. Please tell me nobody is saying this.

CPColin
Sep 9, 2003

Big ol' smile.
A guy said that at my previous job and I had to say "absolutely not" a few times before he realized I was serious

spiritual bypass
Feb 19, 2008

Grimey Drawer
PHP has static types and is way faster than Python

steckles
Jan 14, 2006

eXXon posted:

Nobody is saying this. Please tell me nobody is saying this.
Never on the main code base, but someone once suggested PHP when we were updating some internal tools. Honestly, it was for a simple internal web page that didn't do anything particularly interesting so it probably would have been fine. We ultimately decided to retire the tool so it was moot anyway.

Macichne Leainig
Jul 26, 2012

by VG
God I love being treated like a resource and tasked with poo poo that is irrelevant to my skill sets and job title especially when there is already an appropriate party to handle the task.

Not to mention I am single-handedly working on a potential client integration which means lots of revenue if it succeeds by a specific date. We can put that on pause right? No? Then why did you ask me to do this!?

Pollyanna
Mar 5, 2005

Milk's on them.


Sounds like a failure of management to me. Unfortunately management can’t fail, it can only BE failed, you fuckin peon!!!!

Macichne Leainig
Jul 26, 2012

by VG
He said he wants to have it in this sprint, to which I replied "I already have work this sprint, so we can discuss adding this work in the next sprint planning." :colbert:

CPColin
Sep 9, 2003

Big ol' smile.
Fondly remembering when I finally won the battle that they should be giving me architectural tasks and not an endless series of "adjust the padding on the Fart button" tasks and a little while later they laid me off because "we don't need an architect"

prom candy
Dec 16, 2005

Only I may dance
Anyone got any thoughts on trunk based development? Hot? Or not?

The Fool
Oct 16, 2003


I hate long running branches with a passion

Macichne Leainig
Jul 26, 2012

by VG
I think it makes a lot of sense especially paired with feature branches. Makes Ci/CD pretty straightforward as well

prom candy
Dec 16, 2005

Only I may dance

Macichne Leainig posted:

I think it makes a lot of sense especially paired with feature branches. Makes Ci/CD pretty straightforward as well

Isn't it more or less the opposite of feature branches?

ploots
Mar 19, 2010

prom candy posted:

Anyone got any thoughts on trunk based development? Hot? Or not?

My current place does this, I’m a convert. Merge problems are smaller, and a great mechanism for finding out that some other team is also active in an area RIGHT NOW and you should go talk to them before spending weeks working on something.

The Fool
Oct 16, 2003


prom candy posted:

Isn't it more or less the opposite of feature branches?

feature branches exist, but they are short lived, only active as long as you are working on that feature, and all merge into main

Macichne Leainig
Jul 26, 2012

by VG
And then you can do all your CI/CD stuff on the merge PR. Works real nice imo

The Fool
Oct 16, 2003


this is contrasted to gitflow where you maintain a longer term dev branch (and staging and hotfix etc) and your feature branches merge into those, while those merge into your main branch only for releases

Volmarias
Dec 31, 2002

EMAIL... THE INTERNET... SEARCH ENGINES...

prom candy posted:

Anyone got any thoughts on trunk based development? Hot? Or not?

I find that the trunk is too large to type effectively with.

CPColin
Sep 9, 2003

Big ol' smile.

The Fool posted:

this is contrasted to gitflow where you maintain a longer term dev branch (and staging and hotfix etc) and your feature branches merge into those, while those merge into your main branch only for releases

I was very proud one day when my coworker who was working on converting an SVN repo to Git asked me about all this gitflow and branches stuff and I got to say, "There's only two of you working occasionally in this repo. Just ask each other before making big changes."

Xarn
Jun 26, 2015

The Fool posted:

this is contrasted to gitflow where you maintain a longer term dev branch (and staging and hotfix etc) and your feature branches merge into those, while those merge into your main branch only for releases

why the gently caress would you do that?

Love Stole the Day
Nov 4, 2012
Please give me free quality professional advice so I can be a baby about it and insult you

Xarn posted:

why the gently caress would you do that?

Because in a Large Organization, the expectations of upstream/downstream teams will have many small adjustments as the overall Product feature is being developed, the managers want to save money on the development environment, decades of tech debt and painful Major Incidents prevent you from having any CICD at all, and deployment as a process takes an entire day because of knowledge silos even for the components that your team owns due to lack of documentation and knowledge transfer as people leave the company and go elsewhere.

Falcon2001
Oct 10, 2004

Eat your hamburgers, Apollo.
Pillbug
Yeah I've only ever operated with a trunk-based model; the other ones seem totally byzantine to me. I suspect there's some software where it makes sense, but boy it seems like a nightmare.

Like we just finished up a big milestone and so there was a flurry of merges there at the end, and sure, for that specific case it was frustrating to deal with merge conflicts, but at least you're generally only dealing with your conflicts, and it doesn't seem like gitflow would have solved that at all; someone would still have had to do all the merging.

thotsky
Jun 7, 2005

hot to trot

prom candy posted:

Anyone got any thoughts on trunk based development? Hot? Or not?

It's the way to do it. I don't see why anyone would go with gitflow over trunk-based with short lived feature branches, it's a no-brainer upgrade in a world where CI/CD exists.

thotsky
Jun 7, 2005

hot to trot

Love Stole the Day posted:

Because in a Large Organization, the expectations of upstream/downstream teams will have many small adjustments as the overall Product feature is being developed, the managers want to save money on the development environment, decades of tech debt and painful Major Incidents prevent you from having any CICD at all, and deployment as a process takes an entire day because of knowledge silos even for the components that your team owns due to lack of documentation and knowledge transfer as people leave the company and go elsewhere.

That said, I currently work somewhere where releases involve literal paperwork and week long freezes.

ThePopeOfFun
Feb 15, 2010

No pull requests rules. The Senior with Opinions About Whitespace cannot waste his time on approvals. I can imagine a terrible scenario where my coworkers deployed poo poo code and hated speaking to each other. Trunk based would not work there. As a work life, heavy scrutiny and pulls requests are nice if you're anxious, new or want a chill job doing what you are told. On the other hand, trunk based forced my still very green self to think through problems, test, and ask for help if I needed it before deploying. I personally enjoy a faster pace. I found sitting on my hands between approvals and having to bug whoever was on approval duty grating.

prom candy
Dec 16, 2005

Only I may dance
The process I've been using for years is like a simplified git-flow, where we have main, develop, and feature branches. Main should represent what's currently on prod, and develop represents what's on staging. Feature branches are created out of and merged back into develop, and then to do a release we merge develop into main. It works okay except if we go a while without releasing then merges back to main can be a bit scary as we start to forget what's even in there. The other problem is sometimes we do have long running feature branches and that's even worse. The trunk based dev stuff I was reading about all recommended merging feature branches back into main no less frequently than every day and making use of feature flags to just hide in-progress work. If we got rid of the develop branch I'm not sure how we'd handle staging though. I guess we'd make tagged release branches off of main and release those to prod, and staging would always be consistent with main?

Edit: ^^^ I like PRs because I like people to have a view into what I'm working on and having a view into what they're working on. gently caress nitpickers though.

Doktor Avalanche
Dec 30, 2008

shouldn't feature branches be made from main since it's the latest "clean" branch (fully or at least almost fully tested and working)

Erg
Oct 31, 2010

prom candy posted:


Edit: ^^^ I like PRs because I like people to have a view into what I'm working on and having a view into what they're working on. gently caress nitpickers though.

yeah ideally "sitting on your hands between approvals" doesn't happen because you've probably got PRs you can be approving or something

im a big fan of trunk development for all the reasons already listed. the closest i got to git-flow was having a release branch that we'd merge and deploy every two weeks and i fuuuuucking hated it. i got stressed out every single time i had to be the person running it because what if we forgot to test something.

would much rather the trunk style and continuous deployment so if something's going to break, you'll know within an hour or something when it goes to prod

Adbot
ADBOT LOVES YOU

DkHelmet
Jul 10, 2001

I pity the foal...


Xarn posted:

why the gently caress would you do that?

A significant amount of shops don't have automated QA, or even a formal QA process. I've worked at places with 0% test coverage, at places with 0 DBAs on staff but 100+ SQL databases, and at one memorable place where the Principal Architect said that indexes slow down queries and should never be used. My last gig had the senior devops engineer not know how memory works on Linux and never set up horizontal scalability in AWS. A lot of places are like that.

When you're hovering at 0 or -1 on the CMMI/CMMII scale, it's extremely comforting to have gitflow. You say "We're preparing to cut a release, clear the decks" and the scrum master (or whomever is build bitch) closes up PRs to develop. A head engineer or the TPO creates the release branch, it goes to "QA" and all of the devs hammer through the Excel spreadsheet of tests. Minor repairs occur. The majority of devs can continue to work on the main develop branch while QA does their thing, which could take a few days as databases are reset and tests run by hand, dipping into the release branch to repair as needed. git flow release finish handles the complex case of "merging two branches with --atomic" that elude a lot of people. It's all very sedate and comforting, especially if you're in agilefall and have no automation. Slows things down and makes it manageable.

The other main benefit is repair in the past. People say they hate long loved branches but sometimes a release can be quarterly or longer. While develop has moved through a few sprints (and is comically unstable), bugs in release version 1.2.69 can be addressed in the past, again without having to think where the tag is, or getting your branch commands correct, or how many merge targets. You just git flow hotfix finish and magic happens.

tl;dr: Immature shops with low git skills, slow development and release cadence, and no QA, that cannot fail forward quickly need some kind of branching model where it's "easy" to maintain repairs in the past manage releases. As competency goes up it becomes more of a drag and you abandon for a trunk based model.

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