Joking aside, I was intrigued by the list of good things at the end of the post. Some I could understand, but some seemed to fall into that strange category of things that people say are good but really seem only to lead to more of the things they say are bad. In this list we have:
> There are actual opportunities for career development.
Does "career development" just mean "more money"? If so, why not just say "there are opportunities to make more money"? If not, what is "career development" that is not just becoming more deeply buried in an organization with the various dysfunctions described in the rest of the post?
> It's satisfying to write software used by millions of people.
Is it still satisfying if that software is bad, or harms many of those people?
> Does "career development" just mean "more money"? If so, why not just say "there are opportunities to make more money"? If not, what is "career development" that is not just becoming more deeply buried in an organization with the various dysfunctions described in the rest of the post?
In life, everyone that thinks a lot is eventually confronted with the reality that we're all just minor players within much bigger systems. When you follow this thread, pretty deep questions start to fall out like "how can I be just in an unjust society?". Or "what's the best way that I, as an individual, can have a positive impact on my community?". Or "Is there any point in trying to change systems given my small role within them?".
To these types of questions there's various different responses and consequences. Some people dive in feet first and engage heavily with the mechanisms they have to enact change (such as local politics, grass roots political movements, activism etc). Some people, overwhelmed by the weight of the system, disengage entirely.
Now to answer your question, I believe in the work that we're doing (or else I probably wouldn't have joined). Career development at the company isn't just more money (though that's obviously a component), it's being given more responsibilities alongside the capacity to enact more and more change.
Faced with a dysfunctional organisation that you're a part of, what do you do? The options as I see it are roughly:
- Change companies, and acknowledge that the dysfunction is insurmountable.
- Do your job and stay at the position you're in.
- Embed deeper into the dysfunctional organisation, with the view that you can be an agent for positive change.
>Is it still satisfying if that software is bad, or harms many of those people?
To some people, yes. There are people out there that take satisfaction in doing harm. Not me, nor do I believe the work I do is harmful. I didn't think I had to be so granular as to say "It's satisfying to write software I believe is a net positive to society used by millions".
Thanks for your thoughtful reply. I see what you're saying, although with the way the world is going, I'm increasingly doubtful of the potential of that approach, because it seems that companies are becoming more brazen about explicitly selecting for their narrow and immediate self-interest. In other words, the more you use your responsibility and influence to enact change, the more likely you'll just lose that responsibility and influence (i.e., get fired, demoted, or just shunted away to places where you can make less of a difference). However, that's not entirely the case everywhere yet, and it sounds like maybe you've found a place that's big but still not entirely evil, which sounds promising. :-)
In any case, I didn't mean to imply that what you're doing is any more objectionable than anything I or a zillion other people do when we make the same tradeoffs you allude to. What I was mostly reacting to was that you mentioned those things in the section on things you viewed positively, whereas they seem to me like they still incorporate a tradeoff involving a significant amount of badness. Perhaps though you simply meant they were tipped at least slightly toward the positive side on balance, which makes sense.
Sure, "It's satisfying to write software I believe is a net positive to society used by millions". But, if there was no increase in compensation, you would try to move up the corporate ladder?
I'm not trying to invalidate your post; I think your essay is great. I think it just does have enough cynicism. These $ENTERPRISE companies basically set up their employees some kinda game. There are certain rules (some written, some unwritten) for how you get a good performance review and how you get promoted. Just like there were dumb rules for you had to write code on a whiteboard to get the job despite the fact that you have never written algorithms ever, much less on a white board. So you have to balance how much you are doing something actually useful with jumping through whatever hoops that are downstream of whatever idea your VP has come up with this week. In the ideal case you move yourself to a part of the company that aligns with your values and interests so that the promotion comes easily, but sometimes it is easier to stay where you are and just grind through whatever absurdity it takes to stay employed.
> Does "career development" just mean "more money"?
Big companies means more opportunities to lead bugger project. At a big company, it’s not uncommon to in-house what would’ve been an entire startup’s product. And depending on the environment, you may work on several of those project over the course of a few years. Or if you want to try your hand at leading bigger teams, that’s usually easier to find in a big company.
> Is it still satisfying if that software is bad, or harms many of those people?
There’s nothing inherently good about startups and small companies. The good or bad is case-by-case.
My experience at big companies has been that you only get the opportunity to do something big if you are willing to waste years "proving yourself" on a lot of tedious bullshit first. The job you want is not the job you get to apply for, and I've never had the patience to stick it out. Smaller companies let me do meaningful work right away.
> Big companies means more opportunities to lead bugger project. At a big company, it’s not uncommon to in-house what would’ve been an entire startup’s product. And depending on the environment, you may work on several of those project over the course of a few years. Or if you want to try your hand at leading bigger teams, that’s usually easier to find in a big company.
Okay, so career development means "bigger projects"?
> There’s nothing inherently good about startups and small companies. The good or bad is case-by-case.
Well, maybe not, but I think the post illustrates some ways big companies are worse. I'd say that, all else being equal, companies tend to get bigger by becoming more doggedly focused on money, which tends to lead to doing evil things because you no longer see refraining from doing so as important compared to making money. Also, all else equal, a company that does something bad on a small scale is likely less bad than one that does something bad on a large scale.
Unfortunately, because most of those 3000 will think about the fact their org is 3000 people. Not that the user base for the new product is 5 people using it only on the weekend.
> Does "career development" just mean "more money"?
No. Career development includes paid training sessions, title promotions (junior -> senior, etc.) opportunities to work on larger projects in more significant roles (resume building), and opportunities to transfer into management, as well as (in some cases) opportunities to publish conference papers and the like. As you get older, this kind of career development becomes more important because it is recognized by people who will hire you.
I don’t think enterprise software is by definition bad. You can absolutely make good enterprise software, but doing that while adhering to the morass of requirements is a skill unto itself.
And something that most people in an enterprise are just not all that interested in, since they’re never judged on how pleasant the software they deliver is to use.
Hell, they not ever see any of the users interacting with the software. I’ve been at $ENTERPRISE for 7 years, and I’ve visited our users exactly once.
I was in Enterprise software and even though I didn’t visit users, I dealt with them regularly eg through video calls or engaging with them via support forum if support escalates an issue.
And yes we were judged on how pleasant to use our software was. If we miss a feature or ship a feature that customers intensely dislike, best believe that we’ll get a torrent of negative feedback on our support channels
Agreed. Another point IME is that the problematic requirements are also often non-essential, such as using a certain in-house framework made by some director, or building the whole project inside some abomination, like the workflow system of the Enterprise Content Documentation system.
This is how I’ve seen two-month projects becoming multi-year multi-team behemoths.
> ... Remy's Law of Enterprise Software ... the list of good things at the end of the post.
Like the poster of the blog article, I too have worked in very large enterprise. Think 200K staff, 10K distinct servers, etc...
I had the lucky opportunity to assist the CTO in hundred-million-dollar enterprise software purchasing decisions. I got to interview vendor after vendor, grilling them to see if they're compatible with "large enterprise".
Most weren't.
This wasn't about some Kafkaesque hoops they had jump through while blindfolded and on fire, although I'm sure that's the impression most of them got.
The requirements were simple and perfectly sound architecture principles that they either met or did not meet. If they didn't meet them, then maybe their software was "good enough" for tiny clients, but would never work at scale.
I even made a list, which from memory was something like:
1. Support single-sign-on from external sources such as LDAP, OAuth, whatever. (We're not going to sync our directory and every user password to your insecure garbage software.)
2. Have some sort of audit log. Administrative or configuration changes especially. (Some places have hundreds of admins, not all of whom are fully trusted.)
3. Have an unattended installation process, even if it's just VM cloning or whatever. (I'm not clicking through your GUI wizard 500 times at 3am on Sunday morning.)
4. Allow incremental migrations/upgrades. I.e.: The "easy" process of stop-the-world; one-way-big-bang; start-the-world process is not viable in an enterprise with 10K tenants where the upgrade may or may not work for all of them on the first try.
5. Scale. This can be as simple as having indexes on "user" and "tenant" tables, which is easily overlooked when the typical dev works with a scale of 1 user and 1 tenant. Similarly, using combo boxes / drop downs is a no-go for most fields such as security groups. (We have 700K security groups. No, we can't delete 699.9K as a workaround to make your GUI not crash from an OOM error.)
6. Accessibility is mandatory. With up to 200K permanent and 1 million occasional users, every disability will be represented. Not just vision or hearing problems, but motor-neuron issues, amputees, etc... (You name it, we have someone on staff with it.)
Etc...
Seen in that light, Enterprise software starts to make sense. It's not baroque or malicious, it's just taken on a certain form to suit a purpose.
For example, I didn't understand why Active Directory uses search dialog boxes for every "picker" GUI control instead of a simpler drop-down or something similar... until I worked in an environment with 2 million objects in the directory.
Great list. I remember being called in to look at software my company was thinking of buying, once... Only our finance/accounting people had looked at it so far. The thing barely worked. The desktop window kept flashing. Special characters were accepted and then broke the output. Extreme lack of features needed for the supposed goal.
I was able to find us an open-source / self-hosted solution that worked far better (bookstack). But I was amazed at how far the company selling the software got with us -- seems like most never get pushback, they just make sales by labeling themselves as fit-for-purpose regardless of whether or not they generally work.
You shouldn’t have 700k security groups though. I know that you end up with that, but it feels like a sign of organisational disease (not that we’re doing much better, but the ratio is more 1 to 1, instead of 3.5 to 1
> For example, I didn't understand why Active Directory uses search dialog boxes for every "picker" GUI control instead of a simpler drop-down or something similar... until I worked in an environment with 2 million objects in the directory.
And that’s when you realize that searching in AD is actually dog slow, and you are better off just syncing the whole thing to a proper database, then checking if the object still exists after.
Seriously, why does a search that takes 1ms in postgres take 3 full seconds in AD?
Disagree that it's written in lawsuits, it's written to please every customer under the sun and due to this, code base has become Rube Goldberg machine that few people understand.
> > It's satisfying to write software used by millions of people.
>
> Is it still satisfying if that software is bad, or harms many of those people?
I work for a bank, so the software/service my colleagues and I deliver is probably at best "bottom of mind" for most people and at worst actively despised by many (maybe not even our specific implementation of it, but the idea in general that you depend on some behemoth to receive and send money).
Still it's very satisfying to deliver it, because if I mess up it's my mom that will no longer be able to pay for her online purchase or that large energy company everyone knows that can not pay out their salaries. What I do directly impacts people's lives in very practical and real ways. I would really miss that if I worked on some niche SaaS product with a few customers only.
>> There are actual opportunities for career development.
> Does "career development" just mean "more money"?
To me it seems it’s related to the specialist-generalist point that it’s easier to focus on one thing rather than to do all the chores you face in SME environments.
> Is it still satisfying if that software is bad, or harms many of those people?
sadly many engineers might detach or feel powerless or simply not their part of the job, and only be attracted to the huge scale. sadly you can only ever work at that scale if you work for a few of the giants, of which mostly all do the same algorithmic dark patterns extraction methods shareholder benefit maximalism capitalism pushes them into
> At this point I hadn't realised that finding who is responsible for something in a large organisation is very much not straightforward.
This resonated strongly with me. Last time I worked in an Enterprise shop, I happened to inherit the approval system - every app in the entire org, whether an internal app or from a vendor, got configured into this home-grown monstrosity of an access approval system. It actually worked well despite being made of spaghetti, but one side effect of being the tech owner was that I knew exactly who was in charge of every system in the organization. At some point I realized that my success there was at least partially due to being the human who knew how to connect all the dots, because when someone needed such info, the answer for the entire org was, "Ask Dave."
I did a contract at an airline.
I was tasked with figuring out why the barcodes a new system was generating weren't scanning.
I never did find a person still working there who knew what was wrong,
but by sheer persistence I finally found an old email someone had saved a copy o to their space on the company SharePoint.
The problem turned out to be the wrong kind of cryptographic signature on content.
- new leadership will push out the old guard and replace them with friends
- groups get renamed for the Nth time in N years. People continue to do the same job, but now the department has an additional "Innovation", "Discovery", or "Leadership" inserted into the title
> - groups get renamed for the Nth time in N years. People continue to do the same job, but now the department has an additional "Innovation", "Discovery", or "Leadership" inserted into the title
Sometimes, I wish we name the team ‘Pikachu’ and continue on working. This way, others would know the name does not really matter, so they would stop changing the name. The amount of work to change the documentation and lets others know our team changed name has caused a lot of unnecessary work.
God do I hate teams and systems with cute names. It's all cute and fun until you're the one from another team who needs to integrate with you and decode what Pikachu and Tyrion are responsible for, and discover that Fassbender is just a nickname for a Postgresdb maintained by the "It's over 9000" team. AuthService, CacheService, Db and EntrypointTeam are perfectly fine names. I don't care that namespaces are still aligned with 4 names ago, as long as I can somewhat infer what things do based on their names
It won't gonna change how people (mostly management) see the name. I've seen whole empire named after Pokemon, only for another round of restructure that will change teams name to another Pokemon.
While talking to friends at other empire:
> I've been digging around, who are the members of Ludicolo?
I was on a pair of teams (why two teams? who knows) that worked with a given project for about five years. Every year or so, we'd change names - so I've been on "$PROJECT Access", "$PROJECT Insights", and some third thing I forget the name of.
I unironically suggested we just call ourselves $PROJECT RED and $PROJECT BLUE, and refer to the entirety of the team-pair as $PROJECT PURPLE. Nobody liked that, but it is what we ended up calling ourselves internally.
This comment gives me mixed feelings and some nostalgia for when our company was < 100 people and one of the core software teams was called “meow” - today we call it human robot interaction.
>- new leadership will push out the old guard and replace them with friends
My mortal nemesis brings his whole helpdesk and development team across slowly whenever he starts at a new business. Which is crazy, because as far as I can see the benefit to him is simply loyalty. They dont complain or go over his head when he fails to deliver. I have receipts from staff who worked with him at other businesses where he just follows the same pattern.
1. Identify problems (The problem is the lack of a new CRM from a big microsoft partner.)
2. Spend lots of money to fix the problem (Free trips to vegas 3 times per year thanks to the CRM partner and microsoft)
3. Fail to deliver the CRM (The problem was not a big enough scope)
4. Rescope the project. (more bennies)
5. Would have failed to deliver it again however I just got a new job transforming another business enjoy your crapheap.
We have an internal infrastructure-as-code library built on Terraform CDK that automatically provisions monitoring resources in Datadog and Pagerduty. One day, I simply removed a required argument named 'team', realizing that it has a half life of 7 months.
Everywhere I've worked that added "Excellence" to a name did it when they really wanted to say: "This team wasn't working hard enough before , so I told them to be better now".
About urgency, there is a simple way to tell what is really urgent and what is "urgent".
If your boss tells you it is urgent, it is probably not.
If people working in the field call you directly, now you have a real emergency.
The reason is simple. If it comes from your boss, it probably went up the ladder, showed up in red in some report made to the top management who then got all worked up, started shouting orders that got down the corporate ladder until it hit you. In reality, it may have taken weeks between the time the problem happened and the time it came back to you. It can wait until you finish your current task.
People stuck on the field are not going to wait that long, they want a solution now and if they can't do it by themselves, they will focus all of their energy into finding people who can and contact them directly, instead of just writing a memo to whoever wants to read it.
Very fun and interesting article. I'm currently working in enterprise for around 3 years. I sure am growing technically, but I feel like I learn more about people, communications and bureaucracy here. That comment about budget and mouse is also on track, but with financial stability that working in $ENTERPRISE brings, I can just buy the mouse myself. Maybe some empire will question me regarding the unauthorized mouse, but I can just... ignore... um, talk myself out of the fake urgencies of mouse authorization.
> If the selection function for senior leadership is tuned to a certain personality type, you're doomed to repeat your mistakes.
Amen, Amen... Preach brother!
All this rings true, from the complete org dysfunction, to the security theatre, all of it paints the hellscape of large enterprises in great detail.
My own personal struggles in this corner world resonate strongly here. I worked in a large energy company, with layers upon layers of incompetence and waste.
Including paying a consulting company a small fortune to build a data warehouse that was so locked down that they had to pay them more and regularly, to access the data it contained.
Security theatre where bozos would open your desk drawer if it was unlocked and confiscate your paper notes and books unless you crawled back to the apologizing.
Sometimes I consider optimizing for money, and getting a much higher paying job at $ENTERPRISE, then peacing out once I have enough saved for an extended sabbatical. But just the thought of going through the interviewing hazing ritual takes the wind out of my sails immediately.
I'm currently at $MIDSIZENOLONGERSTARTUP, which incidentally has its own slew of insane and draining things that are breaking me in its own way.
In my experience it's the small shops who are more likely to batter you with 12-stage interview processes, LeetCode-style tests, and creepy 'Record a video of yourself talking about why you want to work for BONTO' exercises. I've worked nearly my entire career at enterprise companies, and I can safely say they've always treated me with more respect in both the interview process and the job itself, than the smaller companies. Keep in mind, I live in Australia, and I've never worked for FAANG, which will skew my perspective.
> But just the thought of going through the interviewing hazing ritual takes the wind out of my sails immediately.
Several times, I've been ready to do really great work for my two favorite FAANGs, but their insistence on the hazing rituals wipes out any interest I have.
Joking aside, I was intrigued by the list of good things at the end of the post. Some I could understand, but some seemed to fall into that strange category of things that people say are good but really seem only to lead to more of the things they say are bad. In this list we have:
> There are actual opportunities for career development.
Does "career development" just mean "more money"? If so, why not just say "there are opportunities to make more money"? If not, what is "career development" that is not just becoming more deeply buried in an organization with the various dysfunctions described in the rest of the post?
> It's satisfying to write software used by millions of people.
Is it still satisfying if that software is bad, or harms many of those people?
In life, everyone that thinks a lot is eventually confronted with the reality that we're all just minor players within much bigger systems. When you follow this thread, pretty deep questions start to fall out like "how can I be just in an unjust society?". Or "what's the best way that I, as an individual, can have a positive impact on my community?". Or "Is there any point in trying to change systems given my small role within them?".
To these types of questions there's various different responses and consequences. Some people dive in feet first and engage heavily with the mechanisms they have to enact change (such as local politics, grass roots political movements, activism etc). Some people, overwhelmed by the weight of the system, disengage entirely.
Now to answer your question, I believe in the work that we're doing (or else I probably wouldn't have joined). Career development at the company isn't just more money (though that's obviously a component), it's being given more responsibilities alongside the capacity to enact more and more change.
Faced with a dysfunctional organisation that you're a part of, what do you do? The options as I see it are roughly:
- Change companies, and acknowledge that the dysfunction is insurmountable.
- Do your job and stay at the position you're in.
- Embed deeper into the dysfunctional organisation, with the view that you can be an agent for positive change.
>Is it still satisfying if that software is bad, or harms many of those people?
To some people, yes. There are people out there that take satisfaction in doing harm. Not me, nor do I believe the work I do is harmful. I didn't think I had to be so granular as to say "It's satisfying to write software I believe is a net positive to society used by millions".
In any case, I didn't mean to imply that what you're doing is any more objectionable than anything I or a zillion other people do when we make the same tradeoffs you allude to. What I was mostly reacting to was that you mentioned those things in the section on things you viewed positively, whereas they seem to me like they still incorporate a tradeoff involving a significant amount of badness. Perhaps though you simply meant they were tipped at least slightly toward the positive side on balance, which makes sense.
I'm not trying to invalidate your post; I think your essay is great. I think it just does have enough cynicism. These $ENTERPRISE companies basically set up their employees some kinda game. There are certain rules (some written, some unwritten) for how you get a good performance review and how you get promoted. Just like there were dumb rules for you had to write code on a whiteboard to get the job despite the fact that you have never written algorithms ever, much less on a white board. So you have to balance how much you are doing something actually useful with jumping through whatever hoops that are downstream of whatever idea your VP has come up with this week. In the ideal case you move yourself to a part of the company that aligns with your values and interests so that the promotion comes easily, but sometimes it is easier to stay where you are and just grind through whatever absurdity it takes to stay employed.
Big companies means more opportunities to lead bugger project. At a big company, it’s not uncommon to in-house what would’ve been an entire startup’s product. And depending on the environment, you may work on several of those project over the course of a few years. Or if you want to try your hand at leading bigger teams, that’s usually easier to find in a big company.
> Is it still satisfying if that software is bad, or harms many of those people?
There’s nothing inherently good about startups and small companies. The good or bad is case-by-case.
Okay, so career development means "bigger projects"?
> There’s nothing inherently good about startups and small companies. The good or bad is case-by-case.
Well, maybe not, but I think the post illustrates some ways big companies are worse. I'd say that, all else being equal, companies tend to get bigger by becoming more doggedly focused on money, which tends to lead to doing evil things because you no longer see refraining from doing so as important compared to making money. Also, all else equal, a company that does something bad on a small scale is likely less bad than one that does something bad on a large scale.
Deleted Comment
If you want to become a researcher in data science or developper evangelist for instance, you'll need a org that can sustain your work.
Or if you want to be a micro service architect, you'll be booed in a 3 people shop but heartfully welcomed in 3000 people companies.
Same for engineering manager paths, it only makes sense if you have the headcount.
> software is bad, or harms
What you work on doesn't need to be Enterprise software. Hopefully it isn't.
Unfortunately, because most of those 3000 will think about the fact their org is 3000 people. Not that the user base for the new product is 5 people using it only on the weekend.
No. Career development includes paid training sessions, title promotions (junior -> senior, etc.) opportunities to work on larger projects in more significant roles (resume building), and opportunities to transfer into management, as well as (in some cases) opportunities to publish conference papers and the like. As you get older, this kind of career development becomes more important because it is recognized by people who will hire you.
That was not my takeaway, because earlier he alluded (twice) to the fact that titles are a thing:
1. A senior technical person who can't turn on a computer and an analyst not being able to speak english,
2. `I have met no less than 6 (six) people with the title "head of architecture".`
So I am guessing that is what he means by "career development"; you can acquire impressive titles.
And something that most people in an enterprise are just not all that interested in, since they’re never judged on how pleasant the software they deliver is to use.
Hell, they not ever see any of the users interacting with the software. I’ve been at $ENTERPRISE for 7 years, and I’ve visited our users exactly once.
And yes we were judged on how pleasant to use our software was. If we miss a feature or ship a feature that customers intensely dislike, best believe that we’ll get a torrent of negative feedback on our support channels
This is how I’ve seen two-month projects becoming multi-year multi-team behemoths.
- in more than two AWS regions
- required screen reader / disability support
- required multi-language support
- required multi-cloud
- actually needed a big Hadoop cluster - most enterprise data processing can be done on a MacBook Pro M4.
Like the poster of the blog article, I too have worked in very large enterprise. Think 200K staff, 10K distinct servers, etc...
I had the lucky opportunity to assist the CTO in hundred-million-dollar enterprise software purchasing decisions. I got to interview vendor after vendor, grilling them to see if they're compatible with "large enterprise".
Most weren't.
This wasn't about some Kafkaesque hoops they had jump through while blindfolded and on fire, although I'm sure that's the impression most of them got.
The requirements were simple and perfectly sound architecture principles that they either met or did not meet. If they didn't meet them, then maybe their software was "good enough" for tiny clients, but would never work at scale.
I even made a list, which from memory was something like:
1. Support single-sign-on from external sources such as LDAP, OAuth, whatever. (We're not going to sync our directory and every user password to your insecure garbage software.)
2. Have some sort of audit log. Administrative or configuration changes especially. (Some places have hundreds of admins, not all of whom are fully trusted.)
3. Have an unattended installation process, even if it's just VM cloning or whatever. (I'm not clicking through your GUI wizard 500 times at 3am on Sunday morning.)
4. Allow incremental migrations/upgrades. I.e.: The "easy" process of stop-the-world; one-way-big-bang; start-the-world process is not viable in an enterprise with 10K tenants where the upgrade may or may not work for all of them on the first try.
5. Scale. This can be as simple as having indexes on "user" and "tenant" tables, which is easily overlooked when the typical dev works with a scale of 1 user and 1 tenant. Similarly, using combo boxes / drop downs is a no-go for most fields such as security groups. (We have 700K security groups. No, we can't delete 699.9K as a workaround to make your GUI not crash from an OOM error.)
6. Accessibility is mandatory. With up to 200K permanent and 1 million occasional users, every disability will be represented. Not just vision or hearing problems, but motor-neuron issues, amputees, etc... (You name it, we have someone on staff with it.)
Etc...
Seen in that light, Enterprise software starts to make sense. It's not baroque or malicious, it's just taken on a certain form to suit a purpose.
For example, I didn't understand why Active Directory uses search dialog boxes for every "picker" GUI control instead of a simpler drop-down or something similar... until I worked in an environment with 2 million objects in the directory.
I was able to find us an open-source / self-hosted solution that worked far better (bookstack). But I was amazed at how far the company selling the software got with us -- seems like most never get pushback, they just make sales by labeling themselves as fit-for-purpose regardless of whether or not they generally work.
And that’s when you realize that searching in AD is actually dog slow, and you are better off just syncing the whole thing to a proper database, then checking if the object still exists after.
Seriously, why does a search that takes 1ms in postgres take 3 full seconds in AD?
Deleted Comment
if safety standards are written in blood then enterprise software is written in lawsuits
> > It's satisfying to write software used by millions of people. > > Is it still satisfying if that software is bad, or harms many of those people?
I work for a bank, so the software/service my colleagues and I deliver is probably at best "bottom of mind" for most people and at worst actively despised by many (maybe not even our specific implementation of it, but the idea in general that you depend on some behemoth to receive and send money).
Still it's very satisfying to deliver it, because if I mess up it's my mom that will no longer be able to pay for her online purchase or that large energy company everyone knows that can not pay out their salaries. What I do directly impacts people's lives in very practical and real ways. I would really miss that if I worked on some niche SaaS product with a few customers only.
To me it seems it’s related to the specialist-generalist point that it’s easier to focus on one thing rather than to do all the chores you face in SME environments.
sadly many engineers might detach or feel powerless or simply not their part of the job, and only be attracted to the huge scale. sadly you can only ever work at that scale if you work for a few of the giants, of which mostly all do the same algorithmic dark patterns extraction methods shareholder benefit maximalism capitalism pushes them into
This resonated strongly with me. Last time I worked in an Enterprise shop, I happened to inherit the approval system - every app in the entire org, whether an internal app or from a vendor, got configured into this home-grown monstrosity of an access approval system. It actually worked well despite being made of spaghetti, but one side effect of being the tech owner was that I knew exactly who was in charge of every system in the organization. At some point I realized that my success there was at least partially due to being the human who knew how to connect all the dots, because when someone needed such info, the answer for the entire org was, "Ask Dave."
- new leadership will push out the old guard and replace them with friends
- groups get renamed for the Nth time in N years. People continue to do the same job, but now the department has an additional "Innovation", "Discovery", or "Leadership" inserted into the title
Sometimes, I wish we name the team ‘Pikachu’ and continue on working. This way, others would know the name does not really matter, so they would stop changing the name. The amount of work to change the documentation and lets others know our team changed name has caused a lot of unnecessary work.
While talking to friends at other empire:
> I've been digging around, who are the members of Ludicolo?
> Oh, we've renamed to Felbat.
I unironically suggested we just call ourselves $PROJECT RED and $PROJECT BLUE, and refer to the entirety of the team-pair as $PROJECT PURPLE. Nobody liked that, but it is what we ended up calling ourselves internally.
My mortal nemesis brings his whole helpdesk and development team across slowly whenever he starts at a new business. Which is crazy, because as far as I can see the benefit to him is simply loyalty. They dont complain or go over his head when he fails to deliver. I have receipts from staff who worked with him at other businesses where he just follows the same pattern.
1. Identify problems (The problem is the lack of a new CRM from a big microsoft partner.)
2. Spend lots of money to fix the problem (Free trips to vegas 3 times per year thanks to the CRM partner and microsoft)
3. Fail to deliver the CRM (The problem was not a big enough scope)
4. Rescope the project. (more bennies)
5. Would have failed to deliver it again however I just got a new job transforming another business enjoy your crapheap.
If your boss tells you it is urgent, it is probably not.
If people working in the field call you directly, now you have a real emergency.
The reason is simple. If it comes from your boss, it probably went up the ladder, showed up in red in some report made to the top management who then got all worked up, started shouting orders that got down the corporate ladder until it hit you. In reality, it may have taken weeks between the time the problem happened and the time it came back to you. It can wait until you finish your current task.
People stuck on the field are not going to wait that long, they want a solution now and if they can't do it by themselves, they will focus all of their energy into finding people who can and contact them directly, instead of just writing a memo to whoever wants to read it.
Remove the comment about ever having to work a weekend
Remove the comment about there being opportunities for (technical) career development
Remove the comment about upskilling / training being encouraged
financial profit, again, depends on the person but those $ENTERPRISE 401k's are pretty nice w/ company matching.
If you prefer. Millions wasted on projects going nowhere fast, it no budget for even keeping up with inflation for salaries.
Amen, Amen... Preach brother!
All this rings true, from the complete org dysfunction, to the security theatre, all of it paints the hellscape of large enterprises in great detail.
My own personal struggles in this corner world resonate strongly here. I worked in a large energy company, with layers upon layers of incompetence and waste.
Including paying a consulting company a small fortune to build a data warehouse that was so locked down that they had to pay them more and regularly, to access the data it contained.
Security theatre where bozos would open your desk drawer if it was unlocked and confiscate your paper notes and books unless you crawled back to the apologizing.
The ultimate shame. Do you care nought for the security of the ip on those pages?!
I'm currently at $MIDSIZENOLONGERSTARTUP, which incidentally has its own slew of insane and draining things that are breaking me in its own way.
In my experience it's the small shops who are more likely to batter you with 12-stage interview processes, LeetCode-style tests, and creepy 'Record a video of yourself talking about why you want to work for BONTO' exercises. I've worked nearly my entire career at enterprise companies, and I can safely say they've always treated me with more respect in both the interview process and the job itself, than the smaller companies. Keep in mind, I live in Australia, and I've never worked for FAANG, which will skew my perspective.
Several times, I've been ready to do really great work for my two favorite FAANGs, but their insistence on the hazing rituals wipes out any interest I have.