You dont have to tell people about it...
I found this remark puzzling and illuminating at the same time. Apparently, for some people, meetings aren't about productivity but about satisfying psychological needs.
Im invites to like 10 of meetings each week
Nobody expects me to attend those where im not really important or need to discuss stuff
I eventually developed a philosophy of passive capitalist nihilism. I can't change anything meaningful so I will use the accumulation of capital as a coping mechanism to deal with that.
But my current job they are building something worthwhile and I believe a lot of companies are. But the FAANGs might feel less like that. But let’s say you work for Splunk or Shopify or a government portal or writing drone software or whatever I think it is useful.
Reality is that the software industrialization (which happened after 2000 I believe?) didn't give a damn about those nerds or 10x engineers or whatever: they want decent people that can be replaced as needed. Not necessarily in a cynical way but in a way that every other field works - employees should not become a risk. When that happens, you as a manager have failed miserably.
But really I haven't changed the world. I've made it a lot worse. I caused the loss of thousands of jobs. I took money from bastards and con men in return to make things to make the world worse. I celebrated the demise of competitors and their staff going hungry.
And I only did this all because my official qualification didn't pay as much.
At least I'm honest.
The system is built to capture value (not create it) while externalising as much damage and cost as possible.
The sooner one accepts that the less deluded one needs to be. There's no company 'mission'. The only mission is try to find a way to survive and prosper under hegemonic capitalism.
What system?
Humanity has not yet invented a system that discourages this behavior effectively in the presence of abundance and wealth.
How true this is depends on where the money is coming from. Founders at a bootstrapped company may actually believe in their stated mission. I've seen it. Once investment money gets involved, sure, it's all about the exit. Even the founders may be legitimately confused about this, which results in a lot of mixed messages. Professional leaders who have held executive positions at large enterprises have zero illusions and will probably give it to you straight if you ask them one-on-one.
I'd be more invested in something which improves the human condition but that's a 1 in 100,000 job. Perhaps I should have done biochemistry or something at university.
I think the ratio is much larger.
But consider that market forces do work: since a lot of people want to do such a job, the salary will be quite low (i.e. so low that there won't be a long queue of people who want to do the job for such a salary; the salary will just be high enough that the positions can be filled). On the other hand, the salaries of "bullshit jobs" or jobs where you do evil things will be much larger, because otherwise the company will have difficulties filling the positions.
You can be cynical about anything if you want to :)
We all have money pressures. It is ALL MOLOCH.
If you think you have a choice, then count yourself lucky that your life ended up in a position that allows that illusion.
Others can and do differ, of course. We all optimize for what's important to us.
For what is worth, I appreciate this last bit and I think many others do, too. It's depressing to see a person doing all these things and not seeing through this.
"One man scorned and covered with scars still strove with his last ounce of courage to reach the unreachable stars; and the world will be better for this."
Urgh no I'll stick with reality.
In any event, Brian Stokes Mitchell did a phenomenal rendition: https://www.youtube.com/watch?v=zbgTUwUP-ew
Wait, this is the Broadway World forum, right?
Edit: Yup. Confirmed with someone with a doctorate in Spanish Lit and a deep love of Cervantes. That quote was invented for the musical. Oh well.
Well, yeah. But how many real careers are accurately portrayed in TV and media, or closely resemble doing $Stuff as a hobby? I'm thinking somewhere between "zero" and "Gell-Mann Amnesia".
That's only true for 95% of companies, not 100% of them. But if you're really in the 5th percentile, you shouldn't care about these 95% anyway. I've been lucky to experience software companies that really care about exceptional engineers (and have proper business incentives to do so), and it truly has been the best place to work at as a software engineer.
Why people always say this? In my team we have never missed an estimate of what we have planned. I also don't remember it in other projects where team does take time for planning. What is so hard that people find estimating their work?
Unpredictability for any new work. Even knowing my codebase well, I sometimes forget how changing some piece of code will require changes in other places. And without having done exactly the same work before, I cannot know how difficult it will be and how long it will take.
Dependency on other teammates or other teams. If another team is building something that your work depends on, you have no way of knowing when you'll be finished. If the code you write needs to be reviewed by other team members, and then you'll have to incorporate the suggested changes, this makes it harder for you to say how long something will take.
Requirements are often hazy. Pushing back on that is good, but if the response is "do it anyway" then you either quit or handle the uncertainty as best you can. The latter makes estimating hard.
If you are going to have to depend on third parties (whether internal or external) that is another thing which can torpedo an estimate that was made in good faith. There would often be too much uncertainty in that situation to be able to accurately account for it in an estimate.
"estimates are always wrong" is obviously an exaggeration - the whole comment is written in that spirit.
Sometimes the "estimate" was already predetermined to meet some arbitrary marking goal.
Every org I've worked for ends up like this.
There is a lot or intellectual dishonesty out there. It used to bother me. It doesn't now. I just don't partake in it.
The central difficulty and huge part of many programming projects is actually the "unknown stuff" that is insanely hard to estimate, be it
- requirements set up by users are often very vague
- interacting with some very complicated third-party library/software that takes years to only understand the basics of
- many programming tasks are unique, thus you have never implemented anything remotely related, and thus also have hardly any idea where the difficulties might lie
- the new software "has to behave like the old one". In the old software, there exists an insane amount of corner behaviour where nobody has any idea why it was introduced, but the users will at some point complain if the new software behaves only a little bit different in such an obscure corner case
This is my observation as well.
I also think that devs tend to consider the central problem they're solving when estimating, rather than the totality of the work that has to be done in order to complete a task. If I'm tasked with adding a new feature, my mind is focused on the business logic of that feature and if you ask me how long it's going to take, I'll tend to answer the time for just that. I'll tend to forget the time required for all the other ancillary work around that (documentation, UI changes, code review, QA, etc.) Omitting that stuff results in wildly optimistic estimates.
1) The people estimating the work aren't always the ones doing it.
2) Engineers are optimists, estimates are often best case.
3) Not enough padding added to estimates (see #1 and #2.)I’ve worked on teams that have exactly your experience. I’ve worked on others where they could just never hit the mark. Skills and experiences seemed equivalent. There didn’t seem to be a magic bullet reason, just a whole series of reasonable explanations.
After 35+ years of software development, you are either lying, incompetent, or worked on exceedingly trivial software. Sorry to be harsh, but I can guarantee you that if you were given a significant software project, asked to estimate and then deliver, that the vast majority of the time your estimates would be wrong.
No other engineering discipline has this level of immaturity. Sure, estimates in other industries are also notoriously hard, but you don't see this utter disregard for them you see in software. And, I bet you donuts that every "software engineer" here as demanded estimates from other fields and felt angry when they were missed.
"When is that bridge going to be finished?" "When is the road work going to be completed?" "When is my house renovation going to finish?"
Estimates are important. And yes, they are hard, but there is spectrum of skill levels at doing them well.
However, most devs I've worked with were also very aware that estimates themselves have such a large margin of error that they can be considered a bit bullshit even though they are necessary.
small companies have a handful of people, and if there is a clash then you're gonna have a bad time. in some ways this is good since you have only to lever or negotiate with 2-3 people, and can get facetime, but if you're on the shit-list it's not gonna happen.
If you just go with the flow, and are reasonably competent, changes in faction dynamics usually wash over you. You end up taking orders from someone else, every now and then, but if blame needs to be pinned on someone, there tend to be juicier targets.
I was hired at my previous job by a departing manager who just lost his struggle against our new manager. I managed to finish my job, extend the solution to other teams (as mine went from 12 devs, a handful of Indian support, an Indian QA and PM, to a dev and two level2 support). It was probably my most painful job yet, I regressed, I didn't really 'finish' in the sense that it lacked documentation, good CD pipeline and minor tweaking to make it more efficient, and I hated the last months with my whole being. But politics didn't touch me.
The "it is what it is" way of looking at things, I wish more people in this industry would embrace this.
It more probably won't get one to 600k yearly comps while working at FANGs, but at the same time is a lot more healthy for one's psyche in the medium to long term (and for the psyches of those close to that person, like family and very close friends).
Whenever someone refers to planning as “lies” and whines about “politics” … you can be sure they are a difficult person who blames everyone but themself.
But I'll stop whining about politics when I'll stop witnessing well-behaved but incompetent people turn projects to failures.
I believe it's all about size. Small tasks can be estimated fairly precisely, with 30% margin maybe. But some people extend this logic to huge projects and this simply doesn't work.
I give you example: I was once asked to estimate the amount of work needed to migrate a huge org from on-prem to one of the public clouds. Without even knowing what kinds of app they were running. I said I can only do a very rough estimate and there are too many variables to be precise. But they insisted and hired someone else to do this job with the precision of half-day!
Needless to say, their estimates were too optimistic because they could only include what they knew. By design, they couldn't measure the things they know nothing about because these issues haven't appeared yet. Last time I checked, they are still migrating and I have a feeling they will finish around the time I had originally planned, that is the second quarter of 2024.
The situation you described seems quite broken
You can't have large groups of people making decisions without politics, and anyone saying otherwise is kidding themselves. You either play the game and pick a side, or someone picks it for you and you get what you get.
Keep in mind this is entirely separate from ruthlessness or backroom deals; this is just the way of things with large groups of people.
In many places estimates are actually lies. There are even plenty of companies where realistic estimates, and well planned projects will get you sidelined. These are often places that reward for fire-fighting rather than planning, and where your value is judged by how busy you appear to be rather than how efficiently you work.
It's important to understand which kind of company you are working in, and if you understand that, then you can adjust your behavior appropriately, and succeed within the environment.
I'm happy to be working in a place that rewards for planning, but I've worked in places where detailed and accurate planning was punished. Oddly enough, this division is surprisingly disconnected from whether the business is successful or not. A good business model will cover a multitude of technical sins.
Staying neutral does not only have the meaning "be diplomatic" or "don't give an opinion", but can also mean "treat all factions equally", which includes the case "treat all of the people who make political attempts with open hate". This way, also no one can drag you to their side. :-)
For all the opportunity and different companies to choose from in tech, to not enjoy your job after 30 years probably means you picked the wrong career path. It’s not healthy to have this much disdain and displeasure around your work.
It’s never too late to consider a career change.
This would be the same with another career.
It doesn't mean he does not like what he does, just that it sees the reality of working in an organisation.
But it is what it is!
(This could be more personality than experience though, so I agree it could be a misread)
I prefer to invest my passion in things outside of my day job. Working is fine, but it’s a means to an end to fuel more meaningful things. We don’t live to work.
What I learned is that, even in a great environment where there was a ton of latitude to have ownership of technical details and even product details, it's still contained within the broader context of a business. That business has interest in the thing you're working on while it's a factor in creating value, and when it becomes time to change focus onto other things, it will generally do that without much hesitation.
I've been burned by this multiple times. Eventually it clicked for me in the way you phrased it. So I show up and do what I can, bring my expertise as much as I can, gauge where the limits of what I can provide are, and keep a healthy distance mentally otherwise.
One other note - you can still be passionate about software and not one specific day job. You can still work on other projects and explore ideas as much as you want. It's just that that's a separate thing from work. Dedicate time and space separately for that IMO.
This is what I was trying to get at and you've phrased it beautifully. Thank you.
The idea that if you're passionate about something you won't have any complaints about it or enjoy it 100% of the time is unhealthy. Most people realize that there's always an element of 'grind' to any task. You could be the most passionate person in the world, but I can guarantee that something about your passion will annoy you slightly. That's just being human
I felt sympathy for the OP not superiority.
If 'objective one is to get paid' it comes across as primarily a monetary transaction. That's generally not how the people I know who are really fulfilled in their careers look at it. Sure, pay is an important part, but they also really value aspects like a sense of purpose, the camaraderie of working on a good team, and being able to meaningfully contribute, amongst others.
"One day the fucks will run out." You say this as a point about disconnecting, but you can disconnect while still "having fucks" about your job. Your life doesn't have to revolve around your job, but I don't want to work with a bunch of people who don't really care about what they are doing.
You talk about how you spend remote meetings doing other not-work-related things. I get that meetings can be boring or of little value at times. In those times, ideally, I would prefer someone be honest and say the meeting is of little value and go do something more productive. At the least, I would like them working on something of value to the group while occasionally checking in. You wouldn't act this way in person, so I don't understand why you think it would be ok to do so remotely, other than it's because you can get away with it. Again, that makes it more transactional than contributory.
I could go on with the other points, but all that is to say, I don't think u/cj was completely off with their comment.
For instance, “estimates are lies” fails to acknowledge that planning must still be done in the face of uncertainty, and engineering is the best equipped to do this. The last thing you want is for the pointy hairs to just start pulling deadlines out of thin air. But recognize it’s not about putting in time, it’s about helping the business plan and setting up the team to build things the right way. If you do this well, everyone wins, but it does require the ability to work smoothly with people who don’t share your same expertise and not treat them like idiots.
Milestones and projections is a much more constructive approach, simply tracking the number of tasks in your backlog over time will give you an increasingly correct projection of when the project will be finished.
But for me an "estimate" is just a sense of the level of effort required sufficient for the needs of planning at the time. It goes hand in hand with risks, dependencies, and other assumptions that need to be kept in mind. The exact form of an appropriate plan depends a lot on the business constraints like how delivery timeline interacts with customers, external events, and the broader ecosystem that the company operates in.
As for your suggested backlog approach, this makes sense if the requirements are rigid and accuracy on the delivery timeline is the most important thing. This is situational, but in many projects I've led, the scope is negotiable, and therefore important to keep the big picture in mind to find opportunities to refining or consolidating scope. A common anti-pattern I've seen when relying on ticket/task-level tracking is the team missing the forest for the trees. It's possible to leverage these systems to support high-level planning, but I tend to prefer documents or a simple spreadsheet gantt for that purpose, and use ticket/task tracking for last-mile work, intakes, bugs and other inputs that we don't want to lose track of, but may vary widely in their importance and relevance.
Sometimes estimates are made out of ignorance or borne from an optimism bias. But sometimes they are lies, because its easier to get a project funded based on a misrepresentation, and keep it funded once the initial cost is sunk.
Maybe it's so prevalent in SWE that most are jaded, but all it means is that we are pretty bad at modeling it or simply don't care. Other domains, like aerospace, have similar problems but have much better methods to arrive at more reasonable estimates (when they care). For example, [1] gets into joint cost/schedule estimating using a more data-driven method where you can put uncertainty around it. It certainly beats 'multiplying by pi.'
[1] https://www.nasa.gov/ocfo/nasa-cost-estimating-handbook-ceh/
Part of the problem is it's all virtual, so there are no limits; part is that we're always pushing the envelope in the complexity department.
Building the same software again with just a tweak or two doesn't happen very much, the reason we build new systems is often to try something so different that it's not feasible to adapt existing systems.
Most of the time we have no idea exactly what we're building until we get there, even the customers usually have no idea exactly what they want.
Imagine going to a car manufacturer and giving them the kind of specifications we usually get for software, I can assure you they wouldn't be able to give you a good estimate either.
Research is a better comparison. How long will it take you to build a fusion reactor? Depends, right?
FWIW, I've worked in software, automotive, and aerospace. They are probably more alike than you may realize. Vague requirements are quite common. The link above has a section specific to software development, so I don't think it's fair to say it only applies to physical systems. I would characterize it as a systems approach, rather than domain-specific. It uses "WBS" or "work breakdown structure" to delineate tasks. That's an approach that is agnostic to the domain. So if you're working on a mechanical system you might have propulsion, deployment, and control surfaces. If you are working on a software system, it might be user interface, command & control, and data acquisition. But the applicability of the method is the same.
What I think you highlighted is that SWE is generally much less well-managed than other domains. Mechanical engineers often get vague requirements but implement much more standardized processes in their work to hone in those requirements, largely because the costs of jumping in and iterating are much higher. By comparison, software development is the wild west. Like you said, software is virtual, so people are lulled into complacency that they don't need a structured process because they can build and make tweaks cheaply. But what you point out isn't really that software development is inherently different, but just that it's not managed well.
I think your research comparison misses its mark. Research isn't involved with developing some end-stage product for a consumer. The 'product' of research is an experiment and every research project I've been involved with starts with an estimate of how much that experiment will cost and how long it will take. And that follows the same basic structure as any other development effort. Maybe it's an apt comparison for some yet-to-be-proven tech like self-driving cars, but it doesn't explain why most basic CRUD applications miss cost and schedule estimates. I think the answer is that most software development has a culture that isn't as well developed in process control.
If estimating research projects is as much a thing as SW, it's just as insane.
Pretending we know something we don't is lying.
Projections is another thing altogether, let's say we let this run for a month and then we have another look and see where we are. Much more connected to reality than pretending we know where everything is going from square 1.
If you think you’ll get to do research without estimating cost and schedule, you won’t be a researcher for very long. Pretending you know something you don’t is bad project management. But what I’m advocating is estimating with transparency regarding uncertainty. Uncertainty can be quantified. Pretending software is some precious unicorn project that doesn’t have to follow any process is just rationalizing bad process management.
Having a fulfilling career is a myth sold to you by employers.
Focus on getting paid enough to have a fulfilling life instead.
After all, chances are the higher ups at your company will fire you at the drop of a hat if they think it will secure them a bigger year-end bonus.
That sounds nice for you, but your experience is not common I don't think. It's certainly not my experience as a software developer in Canada, where I struggled for years and even now make "just" a comfortable living.
I'm very happy I don't have to worry about rent and groceries and I can save quite a bit, but I'm certainly not able to "not care about money"
IMO, a focus on getting paid can lead you to optimize the wrong things in life, making fulfillment less likely than more. It has a weird way of changing your value system by changing what you focus your attention on.
Most people will never enjoy their work, but I can dislike my work while being far better off than most people ever will be.
Most other lines of work guarantee poverty or are a riskier gamble with worse prizes and worse loses.
You want to be at the top of the titanic looking down at those swimming to what's left of the upper deck, not rearranging chairs seconds away from being underwater.
Absolutely, but the huge difficulty is finding a place where the grass is greener. Nearly the whole world is quite equally shitty, it is just the kind of shit that you will see at the various careers ("septic tanks") differs.
By far, most companies above a certain size do not operate in a way where these principles do not apply.
Does this work, though? Does the complaining lead to improvements?
I'm posing the question as a challenge, and also out of curiosity. And I'm of the school of thought that it's necessary to acknowledge reality, but, complaining to the point where people think I despise what I'm complaining about may indicate that another approach may be necessary (such as finding practical solutions and giving yourself options that you can test out).
Apologies if being presumptuous.
The "I love coding and need to stay to 8pm every day because we're going to change the world!" is insufferable. Hit whatchu gotta hit, don't play the games, and push the release out the door. Then get out there and live life.
I haven’t found a company yet that meets my energy. All I get is people “excited” to be working for their company because they are “changing” the world. It’s marketing vomit.
To be honest I would prefer to have few million dollars in investments and not to work for anyone at all. No arbitrary deadlines, no corporate ladder, no politics.
I just want to write some code, build some servers and play with things. Maybe make something that benefits people in general.
An understatement. Do these people actually believe in it ? Or are they just faking it because one has to adhere to company's value ?
Nowadays, as long as the marketers are taking care of it, and they aren't ruining their health, I don't care what they're taking as long as it's not meth.
I know which group I would rather be part of.
Given that being paid to do things is going to involve working for some sort of business, I’d rather be in software development for such a business than in marketing or sales or HR or operational support…
This is possible, especially on a tech salary. Have you heard of the FIRE movement?
I’m hoping to increase my net worth by few millions in the next 10 years. Getting close to my first one.
I might grind and go for a big tech job, but it needs to be remote.
I then plan on either working an extremely laid back job where I put in 10 hours a week and collect a salary without giving much fucks or doing something exciting that might not pay so much.
Maybe I will find something along the way that excites me.
While it isn't too late to consider a career change, I'm not sure that is a good idea. For some it is, but many stay - particularly in tech - because they can make a lot of money and thus afford some hobbies that are not boring. Often this is overall your best course in life: find a hobby you enjoy and keep doing your job.
Obviously everyone needs to make their own decisions.
The disdain and displeasure is a result of experience. Of knowing what needs to be done and not being allowed to do it.
> The right way, the wrong way and the Army way
Usually, the problem is the sort of people who get promoted into mismanagement. They were good at "people skills" (and all too often - their only skill is sucking up to their boss) and bad at programming. This is a systemic problem that I have not seen any sort of possible way to fix in all the decades I've been working (or visiting dad's office when a youngster). If you could find a way to ensure that only skilled managers get promoted (and incompetent ones fired), you will fix Capitalism. No more Enrons. No more Innitech.
Perhaps worker-owned companies could help with this, but I'm sure that the time investment imbalance dynamic would still be an issue to contend with.
Your parent post is on-point. You can be passionate about your job and still do the things that he said he does.
You're gunning for absolutism while parent's post is realist.
I love my jobs (yes, all of my employers) but there are few meetings that IDGAF but have to be there because of many reasons. I muted myself and do something else.
I used to be an idealist but I slowly changed my approach because I realized at the end of the day, I'm dealing with human beings day-to-day.
yeah the post where you don't even directly address him, its just teeming with compassion.
You don't have to enjoy every minute on the job. It's not likely that you're going to be working on passion projects every day. You're not even going to be intellectually stimulated by the vast majority of tasks you will be given. You need to get used to the fact that almost every job as a programmer is probably going to be working on a system that retains eyeballs on screens, counts something, or shuffles around forms.
When you do this for twenty or more years it gets pretty boring. Where are all of the data structures, type systems, formalizations, optimizations, etc? Taken. There are a few people who get lucky enough to have jobs where they can work on things that interest them, where they get to work on hard problems that get them out of bed and plague them while they're in the shower. But they don't leave those jobs and there aren't exactly a ton of new ones being created either. Unless you're lucky enough to be in the right place at the right time to get into one of these jobs, you're more likely to be sitting in meetings and filing JIRA tickets.
Cherish the times when you do get to work on a project that piques your interest. It can happen. But it's rare for it to last for most people. You have to sustain your interest and curiosity in other ways. And it's totally fine if it's anything to do with not-programming.
Meanwhile, on the job? Do your best, show up, be nice and professional. You'll do fine. You're here to clock in your time for money so that you can do other things that you actually like: reading books, spending time with family, doom scrolling, etc.
Maybe it's just a joke and we don't need to get that cynical, but I think that in the end, enjoyment of the work comes from: whether you can find some creative process in it, and whether you like your coworkers. I think this is the optimistic way of looking at "work is called work for a reason."
To that end, even plain-old programming beats a whole lot of other fields. But to think that we should be drinking the kool-aid and all is definitely not going to stick for the vast majority of us by the second or third decade. I certainly enjoy my job, even though it's just "work."
My professional life and mental health definitely improved when I finally accepted this in full. Whereas at my previous job, the entrepreneurs sold everyone on using the tools and languages of their choice (and sacrificing for compensation in a big way). Noble attempt, perhaps, that may have worked in a different time and era of tech, and under vastly different macroeconomic circumstances. But ultimately, it should not have been surprising, in retrospect, that no one would do any of the work-work that it would've taken to make the company work.
Hard agree. I look for the interesting things about it and try to, "find the fun." It's nice when you see something you built work well for people, solve problems, etc.
When you get to work on a project that aligns with your values and goals, it's a blessing! Take it, enjoy it, savour it, and write about it. Dive in deep! When it's gone, it's gone.
But there's a lot of busy, necessary work in programming that isn't going to be like that and it still needs doing.
There are a lot of businesses out there that need people to do that busy work and will pay well for someone capable, competent, and able to do it. It's not glamorous, exciting, satisfying work... it's work. You get paid for it.
* Go to work knowing you are probably not productively writing software and just accept that reality for what it is: staring out the window while other people listen to the sound of their own voice out loud all day long. And, you often have to drive through lengthy traffic to relish in this experience.
* Write software outside of work at cost to your marriage, time with kids, personal finances, and everything else with work life balance.
* Go do something else.
I remember going to hackathons and wanting forced timed experience to build anything. I remember going up to the companies that wanted you to build on their stuff and being surprised at their substandard APIs and how lackadaisical and unmotivated those engineering representatives were, I just didnt understand. A fortune 500 team just hanging out a hackathon with no capability or interest in providing real support?
Now I think back and I realize they just had other things to care about
The hackathon and job could be fulfilling, their DIY projects at home were more fulfilling.
Their entrepreneurial endeavors were more fulfilling.
Sure, they could be totally checked out and burned out too.
But it doesnt matter, set boundaries with your job because that definitely doesnt matter.
Get paid, invest, be chill and fun to work with, enjoy your family and friends, go fishing or something.
Everything is always mired in unpleasant bullshit and emotionally detaching like the above poster suggests is the most pragmatic way to handle work.
I’ve lost all desire of proving myself and working on interesting problems, because at the end of the day, I’d just rather spend time with my family and do fun personal projects. Work is work and it will be never live up to an idealized concept that you have in your head.
This is the most important life lesson anyone can learn, but I think it can only be learned by going through a flaming dumpster fire that burns all those fucks away.
You can't get that confidence and no fucks given attitude on your own, at least not for most people. You have to go through the shit and earn it.
Here's an example of incompetence I deal with every day. The head of R&D department either pretends not to understand or is genuinely this stupid as to engage in the following process over and over:
* We release a program with many defects due to the short development and testing cycle, but especially due to poor (or missing) planning.
* Customers complain they cannot achieve what they want using our program.
* R&D lead bravely rushes to "extinguish the fire" by adding new feature to work around the customers' complaint.
* Because the feature was never properly planned it creates multiple new issues while coming late to the testing stage.
* We burn past the deadline, and eventually have to release still half-baked.
* Customers complain again...
There's no place in this scenario where any of the underlings can swoop in and save the day, because saving the day would be to tell the R&D head that he needs to go through due process of planning his contributions and coordinating with other department heads, esp. the QA. But nobody can, because this will be judged as insubordination and violators will be fired. Over half of the underlings are on work visa, not to mention that the company is almost exclusively filling its niche. So, nobody wants to speak up out of fear of being fired.
On the other hand, such incompetence only lowers morale, leading to most underlings losing interest in the subject matter and doing the absolute minimum to hold the job. You'd think it's a miracle such a dysfunctional company keeps sailing... but, I have this to tell you. This is not the first company of this kind I met in my life. All companies of this kind that I've met by the time I've met them were over 20 years old, profitable, big, fearlessly looking into the future...
This seems a little inconsistent to me.
Is it really their fault if the industry says they are qualified and gives them a job when they are incompetent?
Also many incompetent people, when faced with enough pain, will turn into competent people and eventually stop giving a fuck too.
I used to think this too but it rarely works that way in reality. Why? Because, as Roger Sterling put it, "Half the time this business comes down to 'I don't like this guy'".
Incompetent people survive because, for whatever reason, they're liked that decision makers, who may themselves be inccmpetent. Or it may be they're just similar in outlook, background or interests. It doesn't matter. Or they may be politically savvy enough to take credit for things that work and deflect blame when they don't.
I've seen teams spend a half on something, not launch anything, make a post about "we learned a lot" and get praised for thier "achievements".
> Point 5 - meetings are great if remote.
For many people, myself included, this is still incredibly distracting. You can't switch off entirely.
I'd add this: Care about your job, do your best, learn, grow. It'll serve your career and it'll serve your happiness/satisfaction.
HOWEVER, accept that things will go wrong/dumb decisions will be made, and it's not all up to you to fix. If other people make dumb moves, you don't have to die on the hill. Let others fail, it's good for them too. I promise you that nobody will actually care after it's over. It's not worth the mental agony.
This statement is void of content - virtually a tautology.
All soft skills are politics. Politics is large in scope. You do a favor for your friend? That is politics of the "good" kind.
Personally, while I find myself frequently in too many meetings or spending way too much time with email, or $DEITY, git rebasing to satisfy some power-hungry gatekeeper it is the little side projects that save my sanity. While many are the equivalent of throwing paint on a canvas, it is cathartic. So maybe the one good thing to come out of the google mgmt style that everyone seems to have copied (not the side project bit, all the other garbage) is the 20% time.
Point 4 - incompetent people. They are great. When they fuck up, which they do often, you can save the day by simply being average. Just make sure people know that you saved it.
Point 5 - meetings are great if remote. You can sit there muted on a zoom call for hours tweaking with your bike or playing games on your other computer.
Point 6 - estimates are always wrong so don't put too much effort into it. What people value is how long you spend making up lies so spend some time on it!
Point 8 - Uncertainty. Let other people handle that and hang themselves with it. That's what software architects are for. Be there to clean up the mess afterwards or at least complain about it.
Point 9 - Eventually you do become able to disconnect from your job. One day the fucks just run out. Embrace that early on and save yourself a lot of stress.
Point 10 - The only soft skill is politics. Any sufficiently large organisation employs many politicians. The best way to deal with politicians is analyse the factions and stay neutral. No one can drag you to their side then.
There is a missing point though: objective one is getting paid. Anything else is secondary. If they stopped paying you how much of a shit would you give about all the other concerns? There you go now you understand. Nothing matters so don't get too wrapped up in it or upset about it.