“IT people” here, operations guy who keeps the lights on for that software.
It’s been my experience developers have no idea how the hardware works, but STRONGLY believe they know more then me.
Devops is also usually more dev than ops, and it shows in the availability numbers.
Yup. Programmers who have only ever been programmers tend to act like god’s gift to this world.
As a QA person I despise those programmers.
“Sure buddy it works on your machine, but your machine isn’t going to be put into the production environment. It’s not working on mine, fix it!”
Thus, Docker was born.
“Works on my machine, ship the machine.”
My answer is usually “I don’t care how well it runs on your windows machine. Our deployments are on Linux”.
I’m a old developer that has done a lot of admin over the years out of necessity.
As a developer I can freely admit that without the operations people the software I develop would not run anywhere but on my laptop.
I know as much about hardware as a cook knows about his stove and the plates the food is served on – more than the average person but waaaay less than the people producing and maintaining them.
I’ve always found this weird. I think to be a good software developer it helps to know what’s happening under the hood when you take an action. It certainly helps when you want to optimize memory access for speed etc.
I genuinely do know both sides of the coin. But I do know that the majority of my fellow developers at work most certainly have no clue about how computers work under the hood, or networking for example.
I find it weird because, to be good at software development (and I don’t mean, following what the computer science methodology tells you, I mean having an idea of the best way to translate an idea into a logical solution that can be applied in any programming language, and most importantly how to optimize your solution, for example in terms of memory access etc) requires an understanding of the underlying systems. That if you write software that is sending or receiving network packets it certainly helps to understand how that works, at least to consider the best protocols to use.
But, it is definitely true.
. I think to be a good software developer it helps to know what’s happening under the hood when you take an action.
There’s so many layers of abstractions that it becomes impossible to know everything.
Years ago, I dedicated a lot of time understanding how bytes travel from a server into your router into your computer. Very low-level mastery.
That education is now trivia, because cloud servers, cloudflare, region points, edge-servers, company firewalls… All other barriers that add more and more layers of complexity that I don’t have direct access to but can affect the applications I build. And it continues to grow.
Add this to the pile of updates to computer languages, new design patterns to learn, operating system and environment updates…
This is why engineers live alone on a farm after they burn out.
It’s not feasible to understand everything under the hood anymore. What’s under the hood grows faster than you can pick it up.
yeah i wish it was a requirement that you’re nerdy enough to build your own computer or at least be able to install an OS before joining SWE industry. the non-nerds are too political and can’t figure out basic shit.
This is like saying before you can be a writer, you need to understand latin and the history of language.
weird, i studied latin and the history of language just because i found it interesting. i am always seeking to improve my writing skills tho.
Before you can be a writer, you need to sharpen your own pencil.
I like informing yourself about the note taking app you’re writing with a little more. It makes it a bit more obvious that it’s kind of obvious but can have many advantages.
Personally though I don’t really see upside of building a computer as you could also just research things and not build it or vice versa. (Maybe it’s good for looking at bug reports?)
A 30 minute explanation on how CPUs work that I recently got to listen in on was likely more impactful on my C/assembly programming than building my own computer was.
you wouldn’t want somebody that hates animals to become a veterinarian just because of money-lust. the animals would suffer, the field as a whole, too. maybe they start buying up veterinary offices and squeeze the business for everything they can, resulting in worse outcomes- more animals dying and suffering, workers get shorted on benefits and pay.
people chasing money ruin things. we want an industry full of people that want to actually build things.
I don’t really see the connection to my comment.
In this example wouldn’t the programmer be more of a pharmacist? (The animal body the computer and its brain the user?)
Your statement is not wrong, it just seems unrelated.
As a devops manager that’s been both, it depends on the group. Ideally a devops group has a few former devs and a few former systems guys.
Honestly, the best devops teams have at least one guy that’s a liaison with IT who is primarily a systems guy but reports to both systems and devops. Why?
It gets you priority IT tickets and access while systems trusts him to do it right. He’s like the crux of every good devops team. He’s an IT hire paid for by the devops team budget as an offering in exchange for priority tickets.
But in general, you’re absolutely right.
Am I the only guy that likes doing devops that has both dev and ops experience and insight? What’s with silosing oneself?
I’ve done both, it’s just a rarity to have someone experienced enough in both to be able to cross the lines.
Those are your gems and they’ll stick around as long as you pay them decently.
Hard to find.
Because the problem is that you need
- A developer
- A systems guy
- A social and great personality
The job is hard to hire for because those 3 in combo is rare. Many developers and systems guys have prickly personalities or specialise in their favourite part of it.
Devops spent have the option of prickly personalities because you have to deal with so many people outside your team that are prickly and that you have to sometimes give bad news to….
Eventually they’ll all be mad at you for SOMETHING…… and you have to let it slide. You have to take their anger and not take it personally…. That’s hard for most people, let alone tech workers that grew up idolising Linus torvalds, or Sheldon cooper and their “I’m so smart that I don’t need to be nice” attitudes.
Fantastic summary. For anyone wondering how to get really really valuable in IT, this is a great write-up of why my top paid people are my top paid people.
Apologies for the tangent:
I know we’re just having fun, but in the future consider adding the word “some” to statements about groups. It’s just one word, but it adds a lot of nuance and doesn’t make the joke less funny.
That 90’s brand of humor of “X group does Y” has led many in my generation to think in absolutes and to get polarized as a result. I’d really appreciate your help to work against that for future generations.
Totally optional. Thank you
Could you give an example of something related to hardware that most developers don’t know about?
Simple example, our NASes are EMC2. The devs over at the company that does the software say they’re garbage, we should change them.
Mind you, these things have been running for 10 years straight 24/7, under load most of the time, and we’ve only swapped like 2 drives, total… but no, they’re garbage 🤦…
Accurate!
Developers are frequently excited by the next hot thing or how some billionaire tech companies operate.
I’m guilty of seeing something that was last updated in 2019 and having a look of disgust.
Well, at least you admit it, not everyone does.
I do agree that they’re out of date, but that wasn’t their point, their software somehow doesn’t like the NASes, so they had to look into where the problem was. But, their first thought was “let’s tell them they’re no good and tell them which ones to buy so we wouldn’t have to look at the code”.
That sounds extremely lazy. I’d expect more from a dev team.
Me too, but apparently, that wasn’t the case.
My reasoning was, they’d have to send someone over to do tests and build the project on site, install and test, since we couldn’t give any of those NASes to them for them to work on the problem, and they’d rather not do that, since it’s a lot more work and it’s time consuming.
Couldn’t they remotely connect to them?
I think it’s on a case by case basis but having help desk ppl help you out and opening powershell and noodling without any concept of problem solving made me make this face once.
It probably goes both ways, I’m a dev and I assembled computers at 12 yo so I believe I have a lot of experience and knowledge when it comes to hardware. I’ve also written code for embedded platforms.
IT people in my pov can really come across as enthusiast consumers when it comes to their hardware knowledge.
“did you guys hear Nvidia has the new [marketing term] wow!” . Have you ever thought about what [marketing term] actually does past just reading the marketing announcement?
At the same time I swear to God devs who use macs have no idea how computers work at all and I mean EXCLUDING their skill as a dev. I’ve had them screen share to see what I imagine is a baby’s first day on a computer.
To close this rant: probably goes both ways
Interesting comment on the Mac. At my workplace we can choose between Mac or Windows (no Linux option unfortunately, my personal computer runs Debian). Pretty much all the principle and senior devs go for Mac, install vim, and live in the command line, and I do the same. All the windows people seem over reliant on VSCode, AI apps, and a bunch of other apps Unix people just have cli aliases for and vim shortcuts. I had to get a loaner laptop from work for a week and it was windows. Tried using powershell and installing some other CLI tools and after the first day just shut the laptop and didn’t work until I got back from travel and started using my Mac again.
I have to use windows for work. Installed vim through winget and set a powershell alias, allowing me to use it similarly to linux. Windows ist still just ass though.
If you don’t have access to Linux, MacOS is the closest commercially available option so it makes sense.
Also please take what I said lightly, I by no means want to bash Mac users and generalize them. It just has been my experience. I’m sure there are thousands of highly competent technical users who prefer Mac.
Why wasn’t wsl an option?
WSL is interesting because it manages to simultaneously offer everything a Linux user would want while also actually capable of none of what a Linux user would need it to do. Weird compatibility issues, annoying filesystem mappings that make file manipulation a pain, etc
In a Windows environment I’ve found it honestly works better to either ssh into a Linux machine or learn the PowerShell way of doing it than to work through WSL’s quirks
Lmao, devs who insist on using VIM and the terminal over better graphical alternatives just to seem hardcore are the worst devs who write the worst code.
“Let me name all my variables with a single letter and abbreviations cause I can’t be bothered to learn how to setup a professional dev environment with intellisense and autocomplete.”
Spoken like someone who knows absolutely nothing about vim/unix.
I know it has a steep learning curve with no benefit over GUI alternatives (unless you have to operate in a GUI-less environment).
Which makes it flat out dumb for a professional developer to use. “Lets make our dev environment needlessly difficult, slowing down new hires for no reason will surely pay off in the long run”.
This is it – the dumbest shit I’ll read today, and I was just dunking on Nazis.
no benefit over GUI alternatives
Lol nice bait
You are making prejudiced, generalized, assumptions and presenting them as facts.
You are at best naive if you think people use vim and a terminal instead of “better graphical alternatives” (which there are none of if you’ve really gotten into vim/emacs/whatever). And we don’t do it to seem hardcore (maybe we are, but that’s a side effect). Software in the terminal is often more simple to use, because it allows chaining together outputs and has often simpler user interfaces.
The second paragraph is word salad. Developers should name their shit properly regardless of editor and it’s quite simple to have a professional dev setup with ‘intellisense’ and auto complete in neovim. In fact, vim/neovim and I assume emacs too have much more features and flexibility of which users of IDEs or vscode wouldn’t so much as think of.
I assume your prejudice comes from the fact that vim is not a “one size fits all no configuration needed” integrated development environment (IDE) but rather enables the user to personalize it completely to their own wishes, a Personalized Development Environment. In that regard, using one of the “better graphical tools” is like a mass produced suit while vim is like a tailor made one.
Just let people use what they like. Diversity is a strength.
Or maybe…hear me out…different people like different things. Some people don’t like GUIs and enjoy working in the command line. For some other people, it’s the opposite.
It’s just different preferences.
devs who use macs
Do they exist? Are you sure they are devs?
MacOS is literally certified UNIX though.
I’m not a Mac user at all, and I’m lucky enough to be able to run Linux full time at work, but it seems like macs should be alright in many cases.
Our entire .NET shop swapped to MacBook Pros from Dell Precisions for like 2-3 years because our head of development liked them more. Then went back to having a choice after that. So now we have a mix. In all honesty it’s not much different for me but I use everything…Windows, Mac, Linux. Whatever works best for me for the task at hand. DotNet runs on all three so we kind of mix and match. Deploying to Azure allows a mix of windows/linux and utilizing GitHub Actions allows a mix of windows/linux in the same workflows as well. So it’s best to just learn them all. None of them are perfect and have pros/cons.
I dabble in hardware and networking too. I built my first computer when I was 11 by myself. My parents are kind of tech illiterate. I have fiber switches and dual Xeon servers and the such in my house. My NAS is a 36 hot swap bay 4U server. That knowledge definitely helps when deploying to the cloud where you’re responsible for basically everything.
Also, yes. I can do more than .Net languages…that’s where my job currently falls though.
That’s the face I’ve made just yesterday when my friend told me she’s now eligible for a subsidized IT mortgage. That thing was one of Russia’s last ditch attempts at stopping skilled workers from fucking off to different countries. The problem is, she’s a web designer. I guess that counts as IT nowadays, so good for her. But it’s bitter to hear as sr. backend tech who never hit the criteria…
More like:
“IT people when software people talk about their requirements”No, we won’t whitelist your entire program folder in Endpoint Protection.
I started getting messages every week from a carbon black scan blocking access to some npm’s package.json.
IT just white listed files named package.json.
How is software not a subset of IT?
IT is an administrative function and is really part of operations.
Software development is generally a creative position and is a profit center. If you work somewhere where you develop internal apps, you may have a different perspective.
Think of it like an engine: The mechanics working on the engine aren’t the engineers designing the thing.
Honest question: what do we call who is driving the engine?
A user
Drivers would be end users, Clients and project managers sometimes.
Think about it. Many drivers don’t know about checking the oil, maintaining proper tire pressure, tire wear, brake wear, air filters or topping off fluids.
I can do all of the above, but I’m nowhere near a mechanic. Just car savvy. So I could make suggestions to mechanics or engineers that look cool but are insane for functionality.
Infrastructure maintenance is management, security and day to day business, while software engineering is mostly concerned with itself. They use distinct tools and generally have nothing to do with each other (except maybe integration).
We need new terms, IT means “works with computers, but more than Word and Excel” for too many people. In Switzerland they split the apprenticeship names to ‘platform engineer’ and ‘application engineer’, which I think is fitting.
Well yeah, it’d be like if an advertising copy writer said their job was “English”.
Containerise everything!
Exactly what a dev would say… you guys don’t have to deal with that 3rd gen i3 Jenny from accounting is running.
In my experience it’s been IT people telling me you can’t use a certain tool or have more control over your computer cause of their rules.
The expression is appropriate but the meme assumes that im doubting the IT person’s expertise. I’m not, I’m just not liking the rules that get in the way of my work. Some rules do make sense though.
Edit: just wanted to point out, yes I agree, you need the rules, they are still annoying tho.
I think you probably don’t realise you hate standards and certifications. No IT person wants yet another system generating more calls and complexity. but here is iso, or a cyber insurance policy, or NIST, or acsc asking minimums with checklists and a cyber review answering them with controls.
Crazy that there’s so little understanding about why it’s there, that you just think it’s the “IT guy” wanting those.
So you don’t trust me, but you trust McAfee to give it full control over the system. Yet my software doesn’t work because something is blocked and nothing is showing up in the logs. But when we take off Mafee, it works. So clearly McAfee is not logging everything. And you trust Mcafee but not me? /s kinda.
No one on earth trusts McAfee, be it the abysmal man or abysmal AV suite.
If the EDR or AV software is causing issues with your code running, it’s possibly an issue with the suite, but it’s more likely an issue with your code not following common sense security requirements like code signing.
you don’t code sign during development…
It’s not common, but it should be.
Still, that was just one example. EDR reacting to your code is likely a sign of some other shortcut being taken during the development process. It might even be a reasonable one, but if so it needs to be discussed and accounted for with the IT security team.
You’re talking about during CI. Not during the actual coding process. You’re not signing code while you’re debugging.
“Their rules” are basic security precautions
Their rules have stopped me from being able to do my job. Like the time the AV software quarantined executables as I was creating them so I literally could not run my code. When security enforcement prevents me from working, something needs to change.
I’m IT and my cousin is software. I had to teach him basic computer maintenance…
I spent a weekend helping my buddy who graduated magna cum laude with an Electrical and Computer Engineering degree build a PC. Given a breadboard and some schematics, he could probably have created working prototypes of half of the components, but figuring out where to put the screw risers under the motherboard? Forget about it.
I’m almost done with my CS degree, I started learning programming at age 10, low-level software development like drivers and embedded really interests me and that’s the direction I want to go in for a career, but I had to ask my friend who was studying with me to help me build my PC. Hardware just scares me. I’m worried ill bork something :3
I’m both IT and development…and I’ve caught both sides being utterly wrong because they’re only familiar with one and not the other
This is the same between many different software development disciplines, fpga devs (or hardware devs for that matter) vs. driver devs, driver devs vs. backend dev, backend devs vs frontend devs, integrators vs everyone.
I don’t get it. And I’ve been both.
Is it about how some software shouldn’t need the resources that they demand for?
Meh it’s usually for shitty companies that expect their devs to write real software, ssh into things, access databases, but put the same hurdles in front of them as joeblow from sales who can’t use an ipad to buy a sandwich without clicking a phishing link. So every new project is slowed down cause it takes weeks of emails and teams conversations to get a damn db sandbox and it’s annoying.
On the other hand IT doesn’t know you and has millions of issues to attend to
IT guy here. If we give one user special rights, that login will get passed around like a blunt at a festival to “save time”.
Users are dumb and lazy, and that includes devs.It’s not special rights, it’s project materials approved by leadership, and noted on a published and approved feature roadmap
Edit assuming requisitioning a scaled db replica is “special” is kinda aligned with the meme lol
I’d say… elitism
This is exactly my face when IT is telling me the rules for my passwords.
Sorry, those rules come from our cybersecurity insurance, or some compliance rules.
We hate them as much as you do.Then why are they different between systems? Do you have different insurers per application?
What applications do you have that IT controls the password requirements for?
IT controls your AD credential requirements in most cases and that’s pretty much it. It sounds like your employer needs to implement an SSO solution.
It is the AD credentials. It’s a fortune 500 company and it doesn’t even come close to NIST recommendations.
We have like 3 different ADs as a result of mergers and acquisitions, and the requirements are all different.
Oh…
Well you’re fucked then
What are the requirements?
One of them is EXACTLY 8 ASCII characters, may not contain any English dictionary word, no repeating character. At least 1 number, and at least 1 special characters. Just obliterates the search space.
Those other applications come from an external vendor, we only provide the VM to run them.
We hate those even more than you do.You can’t
Every single issue that occurs with those applications gets thrown in our laps to fix.
This includes all of yours as well as all your colleagues.
See I think this is where in general people in it misunderstand the impact.
Like, if it’s -40 and your furnace breaks, who is having the worse day, you or the furnace repair man?
The repair man might be grumbling because they have to do their job, but you’re grumbling because you’re freezing. You both might be grumbling, but by way of impact there is a massive asymmetry in impact.
This entire thread is giving me impostor syndrome
the User vs Builder relationship has been a bit tense for thousands of years
“Have you tried unplugging your Pyramid and plugging it back in?”
I try to be understanding with my software brethren. We’re different sides to the whole. Ying and yang, so to speak.
That said, I’ve gotten some brain-dead requests from you developer types.
I’m not saying all of you are the problem, but there’s definitely some of you that need to learn how things work.
It goes both ways. At my old job, they took away local admin. But for some reason they configured visual studio to run as admin. So, I just wrote a little program that opens the shell. Whenever I needed admin, I just ran that program from Visual Studio.
Fair enough. Local admin is generally not something that I would want to restrict from people, especially those that are, or at least, should be, more knowledge than most.
I’ll fight for that right for people most of the time.
Some users I would say should not have it, but generally developers are not those people. You know the ones.