I took it to mean that smart people sometimes have low-status jobs, and conversely people in high-status jobs are not always smart. That's definitely something I have personally experienced given my career has taken me from working as a building labourer and factory worker through to being a C-suite exec, with stops through the trading side of investment banking and Silicon Valley on the way.
It's a huge mistake to look down on and make assumptions about someone just because they have a "bad" job.
As the years go by, I find myself craving a job with a physical labor component to it.
A friend of mine studied enology (wine making) at Cornell and his job is about 50% business management and 50% wine making. Some days he has to wear a suit to work, other days he comes home in a wine stained smock. It seems like a good balance.
Some here. 12 years in IT, and I dream of a job where I get to be outside in nature, perhaps forestry.
I have friends who work in various construction fields, so I know it can be miserable and cold and dirty and hard on your body, and that people tend to romanticize outdoor jobs. Still, I've never been one to be bothered by cold or reasonable amounts of rain, as long as the appropriate clothing is available.
12 years in IT here too - now working for an AgriTech
After spending a few days bolting heavy steel pipes into place in the scorching sun I realised I quite like the comfort of the office ;-)
Though it is fun to go onto the absolute front lines and get your hands dirty and the feeling of satisfaction on completing a physical job can be very high.
This is why I always cringe a little when people here say they want to create an app on the side or an open source project. If you spend your work time staring at a screen then it's probably better to find something to do with your hands in your spare time.
My SO and I recently bought a house with a garden and some trees (pine, spruce, poplar, beech, one apple tree), at the outskirts of a village, close to the woods.
Working on the house has so far given me a lot of satisfaction (also some stress and shorter days). Any work we do on the house is work done for us. We can't do everything ourselves. We hired an electrician (a friend) to do some electrical work and got a company to do floor grinding in one of the rooms. Her father helped us oiling the floor, my father helped us when we redid the insulation in a part of the house (still ongoing). We planted some garlic and some raspberries. We're going to plant some strawberries soon (not really the right season, but we got them for free).
Working on your own house and garden could be an alternative to a career change if you feel the need to work with your hands.
Traditional view: Jobs with a high amount of physical labor are low skill, so people with more skills (i.e. intelligence) have jobs with less physical labor.
Your parent's opinion: This view is incorrect, people with higher social status, not higher intelligence, receive jobs with less physical labor.
Let me recommend to you "Peopleware: Productive Projects and Teams" by Tom DeMarco & Timothy Lister (go with the 3rd edition) and "The Mythical Man-Month" by Frederick P. Brooks Jr. (go with the anniversary edition). Both books expound the idea that most software projects fail not because lack of technology or innovation, but rather due to the mismanagement of people and a lack of understanding how teams work.
I haven't read the 2nd one, so I should have just said that read the latest that you can. The main contents can feel quite dated for any edition, but there have been updates to fit the times that I'm not sure are in earlier editions than the one I read (i.e. the 3rd edition).
The interview process is where the challenges are technical in nature. The only time I have been asked to implement a sort algorithm after university was for interviews.
Generally I find that many companies have a small amount of difficult problems. The trick is to become the person who gets to solve them when they come up.
At one of the places I worked, I got to implement a request batching algorithm using dynamic programming, at another place I got to implement a nurse rostering algorithm (this is not as easy as it sounds, and is an active research area), and at a third place I implemented the recursive tree algorithm that keeps a lookup table of user permissions up-to-date in a situation where roles inherit permissions from other roles.
The taxonomy of jobs that most people have in their minds is extremely simple (doctor, lawyer, teacher, builder, engineer, window cleaner, garbage collector, astronaut, ...) and is mostly based on a grade-school understanding of what kind of jobs people do.
But the reality is that there are millions of types of jobs, with incredible variety and specialisms, and the real content of a job is rarely captured in a job title.
There is a "science" behind shelf placement decisions and it has to do with height, location on the aisle, colors, lights, and of course the "fee" that the outlet asks for the premium spots. Someone who just fills shelfs (I've done that for a toystore a few decades ago, for a a couple of months).
Depends whether someone gets to just fill the shelf as per plan or has the curiosity to ask "WHY", noticing why X things fly off the shelf why Y things two shelves lower stay there forever. This curiosity builds the critical thinking 'muscle' and can motivate a shelf-filler to switch into marketing (hypothetical scenario has to do with a 17yo working part time and then deciding to studio marketing)(I didn't study marketing) :)
Having dated someone who specialised in developing and enforcing visual merchandising guidelines for an international cosmetics brand, I have to suggest that it just might.
There is a massive differences between a well-stocked shelf and a poorly stocked shelf. The science behind the product decisions, brand placements, etc, is well-studied and practiced. The store-shelf-stockers themselves have a major impact with their level of detail-oriented work.
I'm sure you could measure it financially, and that a nicely done shelf stock makes more money than a poorly done one.
Don't confuse job in the hierarchy of an industry with the industry itself. For example: a ticket clerk at the train station isn't aware of the complexity of train engines, route planning, economics of public transportation, and so on. It doesn't mean that train transport is simple.
People can master nearly anything and stand out; boring physical labour is actually one where there are obvious things to be amazing it. It may not earn people a pay raise, but there will be a noticeable and impressive difference between an expert shelf-stacker and someone killing time for money.
That being said there are a lot of jobs where I have difficulty imagining what mastery looks like; say in an automated, low choice style field like bus driving. I couldn't recognise an expert bus driver from a relative novice. But that probably only reflects my lack of knowledge about bus driving.
When driving a car, I tend to optimise (my wife would say overoptimise) for everyone's efficiency, and I am sure a lot of that can be applied to bus driving — for instance, many of them will stop too close to a red traffic light, so cars in adjacent lanes can't see them when they are only on the that side of the street.
I fell in love with driving after that scene in Parasite movie where we takes this very-very smooth turn. I now try to roll my Skoda like it's Mercedes: I stop and start smoothly, I turn wheel so that people don't spoil their imaginative coffee. It makes me feel like I'm guiding a spaceship!
When I was a young man, I was working at a children's museum, and one of our guests got sick by the front door. I was dispatched to clean it up. While cleaning, (no customers were around at the time), I flippantly said, "Where's the dignity in this?" An elderly woman who was working as a volunteer at the museum overheard me and said, "The only dignity a job has is the dignity you bring to it."
My dad sometimes works as a parking lot manager for a popular field trip location. He says the skill level for school bus drivers is hugely variable. Some smoothly traverse the parking lot, others with the same bus model have a really hard time. Some are appropriately cautious, some do not pay enough attention and are dangerous. Etc.
> That being said there are a lot of jobs where I have difficulty imagining what mastery looks like; say in an automated, low choice style field like bus driving. I couldn't recognise an expert bus driver from a relative novice. But that probably only reflects my lack of knowledge about bus driving.
Look up "Bus Rodeo". It's basically a skills challenge for bus drivers.
You'll see drivers make maneuvers with 60 foot articulated beasts that the average person would have trouble doing in a normal SUV.
Having worked with filling shelves, that job felt sometimes a lot more complex than my development job nowadays. The store I worked for didn't in general allow anything extra to be stored in the warehouse. This lead to the filling load sometimes having excess products that you had to fit somewhere. I really enjoyed making space by moving and rearranging products on the shelves. The products came in wrapped in big rollers that contained random products so looking at the roller product list and how they were packaged you had a puzzle to find a nice path that visited all the correct shelves. Occasionally you would have campaigns and such where you could be quite creative in setup and arrangement.
It was the job I have been most satisfied with in my working life. However, I did only do it for 8 months for 6 hours a day. Maybe in the long run it gets more boring.
The variety between shelf filling between different store brands and even different stores of the same brand made me really think no two jobs are the same.
I used to have a job in the back warehouse of a white goods store. I was moving around fridges all day long. It was a really good job.
The best part was I couldn't take any fridges home with me in the evenings. I'd get home and my fridge would be already where it's meant to be. Also no one wanted me to do a fridge moving side project in the evenings.
When I had my pickup truck, friends would ask me for help in moving fridges when moving between rentals. Typical payment was beer and pizza so not too bad.
Yes, but that’s only because you lived in an area without fridge innovation. If you really wanted to work on the cutting edge of social fridge technology, you’d have to move.
Supermarket logistics, which (or seems to me) system is built to put things on shelves in the way that creates most profit, is surely one of the essential defining advances in the last few decades of retail? I'm thinking short logistics chains and JIT?
Not my field, but perhaps you need to widen your view a little.
I'll bet there was someone at your store who was the Shiva of Stacking too?
I only worked checkouts (pre barcode scanning, other stores had it).
I worked a stint in fast food. I thoroughly underestimated the skill ceiling. Everything from burger wrapping, cleaning, taking orders and inventory could be optimized for time. It took almost a year before I was comfortable and by then I was doing things quickly, consistently and a few at the same time.
Similarly, I once talked to a person who worked at a major airport. Their job? Optimising and overseeing the transport of cutlery. From airplane, to cleaning, replacing broken parts, back to airplane. These things move great distances and they have to be delivered during very narrow time windows. And this has to Just Work for all arrivals and departures. Such a small thing yet so important and incredibly complex.
The biggest problems faced by most companies are logistical problems.
Doesn't matter if it's cutlery, bits, people, or shit. Your company's biggest problem is probably ensuring the right stuff is in the right place at the right time, while also ensuring the 7 other combinations of right/wrong stuff/place/time don't happen.
But most companies don't realize that. They try to frame logistical problems as business problems and try to have fresh MBAs solve it. Half of all startups are some guy trying to solve a general logistical problem for a specialized audience using the cloud.
Old guy at my old job. Retired Navy Chief. Never seen him smoke, but can't imagine him without a cigar in his mouth. His saying was "The important part is getting the logistics right. Everything else is logistics."
I worked at a McDonald's in high school that was adjacent to a major highway so we were always packed. Even now, getting in the flow of programming when everything is going right and I'm making huge progress, that feeling pales in comparison to being in the zone when working drive thru with 8 orders on the screen and each of them is in a different state as you build them as fast as possible as different components are coming in from different stations all at once.
When you tame that chaos, and it's saturday afternoon when all the best people are there and everyone is on their game... I've never experienced anything like it. It's like when you see a really amazing play in your favorite sport, but that same amazing play goes on for a couple hours. I imagine it's like being an air traffic controller or maybe a stock broker on the trading floor where you can talk to everyone and it's productive chaos at its glorious peak.
Wow, my mind is blown right now at how well you captured this feeling. I also worked at McDonald's at 15 and it was thrilling to be working a real job for the first time in life, and see the inner workings of a corporation perfected over 50+ years, notwithstanding the terribly bad for you product.
I also remember working the order taking window and getting into the flow of quickly finding the items after you master the educational part. In a way it's like lego-building or very simple programming.
The closest feeling I've found in programming is when I listen to film scores and a crescendo or mood in the music lines up perfectly with some great success in development, like that score was written for that moment in time and you feel a magical cathartic release that is both elevated and extended by the music.
It's amazing, but it's also a bit distracting. Thankfully, as you're coming down off that high the music often comes down too, and it guides your emotions back into a calm flow, ready to build up for the next release.
Yes! I think it becomes distracting if you listen too much of the same genre, and if you mix awesome songs similar to the feelings you describe but with different genres, those moments can become more frequent.
I sometimes write code at the rhythm of those songs, and it’s amazing for my productivity.
Did you create geometric patterns on the grills too, when cleaning and polishing them?
Been crew trainer in a german company store next to an exit of several Autobahn crossings, doing mostly late/night-shifts around 1989/1990. Was some sort of internal flagship store because all managers of the area met there often. And we trained the 'franchisies' opening their own. And the f.... "Blitzcontrols". Always found something. Never got 100 points, only 98 or 99. GRRRR!
The pay was amazing btw. because at that time late/night work got huge bonus mandatory by law. About 4800,- Deutsche Mark every month. Nowadays not anymore.
Anyways, when several busses arrive at once because of some soccer games you have to 'flow' in sync with everybody else. We did. And had fun while doing so.
I fixed my mum's computer a few years back (cleaned up some adware and other stuff that was making it awful to use) and did a bunch of virus scans and cleanup etc. After a while she asked "Is this what you do for a job?"
The conception of what happens inside our industry just isn't present in the wider population, and I imagine we're not unique in that.
Yes, this is a thing we see over and over. With all this extra access to learning and advancements in fields, that previous generations didn't have, there's a bit of a gap in truly understanding the complexities of various fields. We see this attitude a lot that kind of assumes anyone who isn't digging ditches is playing dress up, and anyone could put on the outfit and do it.
That's why we have things like anti-vax, and people taking these incredibly simplistic views of complex fields. Assuming that anyone who puts on a lab coat can have the same valid medical understanding as the field that has been learning for hundreds of years and learned how to condense that down into a few years of school and an internship.
It's the same reason older generations think you can just show up on time and move to the top of your field, sure it helps, but catching up to the baseline of knowledge in a lot of fields is a huge gap, you don't just sweep the floor in a factory anymore and learn how to program the robots over serial port. There's a big jump there that didn't used to exist. (though I assume there was a similar gap in the industrial revolution when we started mechanizing work).
People can't even wrap their mind around real automation, they still assume it's going to be mechanization from the industrial revolution with computers. And there's so much else in this industry that people can't even understand that affects them in every day life situations.
> People can't even wrap their mind around real automation, they still assume it's going to be mechanization from the industrial revolution with computers. And there's so much else in this industry that people can't even understand that affects them in every day life situations.
I see this any time some fresh tech person claims AI will end music as a career. They think it's as simple as generating some nice melodies. Maybe some harmony, if they even know what that is. They don't consider all the sound design, concept, and personality that goes into making and selling music.
You might persuade a computer to generate a set of passable songs for a discerning and skilled musician to choose from as a starting point. But I think I'll be dead before they're good enough to be better than just banging a few chords and presets together to see if it sounds good.
Melody and harmony are what most of these efforts focus on, but that's the easy part for any experienced composer.
And I think it would be naive and idealistic to think that the composer/songwriter/musician/performers don't have a roll in selling the music. Do I want to go to a concert where a computer is rolled out on stage and I hear amazing music, or do I want to see a performance with lighting and a performer working the crowd? The performance and the personalities of the performers are as much a part of the musical experience as just hearing sounds in headphones, in my opinion.
while i agree the content is never in the title, i think there lots of jobs are basically the same, and there are only a handful of genres of job. and two people with the same job title can be doing different jobs
Have you ever thought about how school buses are routed? Every school day, every bus has to pick up some number of children, and then drop them off at a school on time. Ideally, the correct school. Some children have to walk to meet the bus, which must be taken into consideration because you don't want a young child walking close to dangerous areas, and then there are disabled children who need special buses. Deciding who walks, who gets to take a bus, and who in is some special circumstance is a logistical-legal interface which gets quite involved.
Making that all happen isn't just one job, it's multiple, especially taking into account the fact there's software to help which must be made, tested, and deployed, and which users must be trained on.
My point is, to the average person, adult or child, that whole little world collapses down to "school bus driver" and that's it. The companies which make the software I mentioned advertise, sure, but not to individuals, and school districts have no reason to advertise how, precisely, the sausage gets made, so this little world stays mostly hidden, unless the district offers parents branded software so they can track their children to and from school.
Similarly, the sheer number of auxiliary jobs. Kids are rarely told about the less prestigious jobs that surround and support doctor/lawyer/vet/etc, and if they are it's often as a fallback. This leads to a lot of high schoolers having no idea what to do if they aren't ambitious enough to want to enter the high octane kinds of jobs with years of training. I firmly believe it's a huge contributor to kids heading to college to delay figuring out what to do with life.
To me this has always been a management issue. Usually the business willingly allows for this to happen. Consequence is that you build an extreme dependency on this person. Knowledge needs to be built into the organisation through hard work, like documentation, processes and collaboration.
Yes the business allows this to happen because it is obviously in the self-interests in the existing employees: everyone tries to build their own little empires and to keep 'invaders' at bay.
In some companies, often when there is no growth, that leads to very claustrophobic atmospheres with a core group that has been there for 10+ years and gatekeeps everyone else.
We have one diva who build the vast majority of the system. He is smart and likes algorithms, but doesn't write particularly easy code to follow (he values cleverness over simplicity). Any suggestion that it could be improved is met with a bit of an argument. And he isn't much of a team player compared to the other devs.
In not the gut you talk about, but... I built many systems and was always a point of failure when it comes to dependency. I still know a lot of code, even when it's years ago. But I never kill an idea that has a better outcome as the current solution has, and if it's possible to implement, we'll do it. That's leadership.
Sometimes, the people getting the most done, are either doing so based on proficiency (i.e. deep understanding of domain, system, language, stack etc) or are simply adept at finding the shortest path from a(requirements) -> b(code). These are the people I look out for, as essentially the root of tech debt. Hopefully, things like code-review will prevent people like this from pushing code that only they can understand, but that theory often proves false as these folks often out-rank you. Don't be afraid to call BS through any means available. At the very least, you need an explanation/comments/documentation explaining why simplicity was sacrificed.
That’s what I see everyday. Insider produce crap, I criticized it as a new guy and became enemy number one very quickly. Isolated organizations enter the Lord of the Flies state. For them everything is normal while outsider has experienced more possible solutions. So it hurts seeing how bad and primitive device is made from 6 separate printed circuit boards soldered with random wires. Every amateur can do better with KiCad in a week. But in this organizations it’s state-of-art and author of this mess got promoted to senior.
I’m not saying this applies to your example, but the opposite happens too—the new guy comes in with all the answers but not knowing all the battles/design constraints that led to the current situation. It’s frustrating because the team gets to relive every design decision as the new guy brings up all the obvious stuff that surely none of the dummies on the original team thought of (but of course were the original designs before some business decision or other derailed things).
I am pretty sure, that “new guy” does not know all internals. But there some rules like not putting 2 screwdrivers into power outlet... It’s obviously should be done other way.
Running with that example for funsies. Turns out that slamming two screwdrivers into the outlet allowed you to tap the power source 6 inches away from the wall. Normally, this is a bad idea, but the alternative was tearing down the wall to extend the outlet, and the cost of that was too high at the time. The other cheap solution was a power strip, but there was no petty cash and no nearby store. Then several people tied power wires around the new screw driver power extenders (which was going to be a temp solution anyway until you could buy a power strip). Now, these critical power wires can't be disconnected because the attached servers can't go down.
Sometimes things organically grow in bad ways as cost optimizations that maybe (or maybe not) made sense back in the day. If you were to design it again, you obviously would not stick the screw drivers in the wall socket. But that was then, this is now. Instead of complaining about screw drivers, let's get a plan in place to get the mission critical services to be able to switch power sources.
I don’t count it as lying unless there is intent behind it. But it is certainly true that many people’s deeply held beliefs are not as true as they think they are, myself included obviously. The more experienced you get, the fewer absolute truths there are.
I think I agree more with the parent than with you, particularly in engineering.
Lying in engineering means saying anything that's not true with any certainty. I wouldn't hold it against someone, but I would ask them to think carefully before speaking, to make sure what they said is true, as it can lead meetings to decide the wrong actions if nobody present happens to be able to contradict it.
Outside of engineering, all the same outcomes can occur, but proving the truth is much more difficult. And thus, while it may still technically be lying, it is impossible to tell and unfair to call someone on it.
Lying in engineering means saying anything that's not true with any certainty.
It’s funny because that’s exactly an example of what I mean. Real engineering is about compromises and those are highly subjective. What’s the feature we should work on next? What tools should we use? What’s the priority of this bug? Should we refactor this today or take on more tech debt? Ask 10 people and you will get 10 answers, all of which are just as true as any other. Recognising this comes with experience.
Those are all things that fall into the second category (subjective stuff I wouldn't call lying). But saying that something works in X case when it doesn't (or even when you don't know for sure), and everyone estimating four stories based on that assumption, is a big problem.
Lying typically refers to intentional deceit (as in you know what you are saying is false, or at the very least you don't care if what you say is true or not), so you can not be unaware you are lying.
Probably the most important of the thread. Working smarter > working harder and communicating about your work and its impact is as important (sometimes more) than the work itself.
Work never ends. No matter how much you get done there will always be more. I see a lot of colleagues burn out because they think their extra effort will be noticed. Most managers appriciate it but do not promote their employees.
"The state of having tasks to be done is alone declared as the greatest of sorrows. When that exists, how do the two, happiness and absence of sorrow, arise?"
Tripurarahasyam (from wiki: The Tripura Rahasya (Devanagari: त्रिपुरा रहस्य, Tripurā Rahasya) meaning The Mystery beyond the Trinity, is an ancient literary work in Sanskrit believed to have been narrated by Dattatreya to Parashurama. It is an ancient prime text which is one of the treatises on Advaita school of classical Indian Metaphysics.)
Not the parent, but the fragment in question explains how the so-called mundane pleasures give no permanent satisfaction and that one should instead focus on the true meaning of life, which the text defines as the deepest level of consciousness that is present in the three modes of being (being awake, dream, and deep dreamless sleep).
I manage a team. The reason I don’t promote or give raises to people who overwork is because I don’t want to encourage behavior that inevitably results in burnout.
What I instead do when people overwork is I give them extra paid time off. Stayed in the office for a couple of extra hours yesterday helping a customer? Great, please make sure to take Friday afternoon off. You had to work extra last week to meet a deadline? Apologies, that was my fault for not managing your workload properly and distributing it better (and also not setting a reasonable deadline). Second, again, please take the equivalent amount of time off.
I mean, ALWAYS 9-5, in addition to whatever it takes to get the work done. One or the other can be totally fine but it leaves little room for wiggling with comp time.
You mean an obsession with "working 9-5 ALONG WITH whatever else it takes", not an obsession with "9-5" and a separate obsession with "whatever it takes".
If you are looking longer term, avoiding burnout and employee satisfaction will be a net positive. If you are looking short-term (12 months at most, but 3 months is more of a burnout limit), you may benefit from overworking people.
I think that's a great approach but I think the people predisposed to working longer and doing overtime are often the sort of people who won't willingly take that time off. Do you have to encourage it or it's welcomed?
I've worked in companies that did this and if those people refused to take time and insisted on working late it was viewed as a bad thing and they were told as much. People who work hard are generally ambitious so telling them it's hurting their career makes them reevaluate pretty quickly.
You have the power to touch many people—most of whom will never cross your path—even with work that may not seem important. This is an honor and a responsibility, bordering on the sacred.
I like this part of the job. The other side is: everything you use everyday is the product of a lot of design work by many people who mostly cared about their users.
There are people who simply cannot be effectively replaced. That does not mean that the powers that be will not replace them. For example, a startup might have a critical engineer who happens to know how everything works or holds everything together. They can be replaced, although this may have a severe impact on the startup, including the failure of the startup.
To your point, even if someone is critical to the success of an organization does not mean that they won't ever be replaced by poor management.
You can burn a bridge with no repercussions. It’s a small industry, but burn that mo-fo down if it’s required to maintain your self esteem. Makes for a good drinking story afterwards, and really, that’s what you want at the end of your career.
On the contrary, my job taught me that desktop software can be extremely reliable and does not actually break all the time. Many of my customers use versions of my app that are a few years old without any troubles. When the user is in control of their environment, software doesn't suddenly break.
That's not to say software doesn't have bugs. Only that bugs don't appear suddenly.
Most bugs are caused by two things:
(1) Changes to the code that accidentally break unrelated stuff
(2) Changes to the environment (eg. OS vendor releases a new version which changes how some API behaves)
I think (1) is more common.
So I think that the reason why SaaS have problems all the time is that typically devs are changing stuff all the time and accidentally breaking things left and right, not that software is inherently unreliable. And since users can't keep using an old version that works for them, they'll stumble across every bug eventually.
I do wonder if some of it is down to the platform. It seems to be a weekly occurence that I log onto an application and I'm presented with a blank page. No doubt some trivial JavaScript exception has borked the whole thing.
> I think that the reason why SaaS have problems all the time is that typically devs are changing stuff all the time and accidentally breaking things left and right, not that software is inherently unreliable.
While I'm sure that some developers go rogue, this feels like a business or management issue. Teams pushed to release fast and early. I wonder how often the developers in teams that release buggy software have asked for time to improve processes and legacy code, and been denied.
If developers really are going rogue and changing code on a whim without testing processes picking it up, this is still a management issue.
It's not a management issue, it's deeper than that.
Whenever you change something, you risk breaking something. It doesn't matter if you have unit tests, integrations tests, code review, staged rollouts or whatever else. Every time you change something, you risk breaking something. It does not matter how good your QA process is.
> improve processes and legacy code
Refactors are also a major source of bugs, so you should do that only if there is a serious problem with the old code.
The problem is that the code is constantly changing. With SaaS, customers have no choice but to always use the latest version, so eventually they'll run into a bug. Because constant change means that errors slip through eventually.
With traditional desktop software, customers aren't forced to update. They can just keep using their version of the software, and rely on the fact that it's not going to break suddenly.
No, they just aren't affected by the old bugs. Most bugs affect only a small fraction of users, because bugs that affect many people are usually found during QA. So the majority of your users will not be affected by the existing bugs.
If a customer doesn't change their workflow, they aren't going to suddenly stumble over an old bug.
But if you keep pushing changes, eventually you'll introduce a new bug that does affect them.
There's no way around it: The more you change software, the higher the risk of introducing bugs.
That applies even if the changes are just bug fixes for old bugs. Every time you fix a bug that I wasn't affected by, you risk breaking something that I do use.
Most old desktop software is happily deleted in favor of newer versions because it's full of bugs and/or almost impossible to use, and the one that is not is the actually not too buggy one.
I had this conversation today. The more dependencies outside your control and the less concerned the maintainers are about about stability the faster the code rots.
Today I helped a former customer build code that hadn't been touched since 2013 with a compiler released in 2010. And it just worked. Also today my coworkers dev system stopped working because Chrome didn't update properly.
I have a slightly different take: Software quality is fairly consistent. But when software changes infrequently, the user can create work-arounds for the broken stuff. When software changes frequently, you don’t have sufficient time to create work-arounds, leaving you frustrated with bugs you can’t deal with.
You can get burned out in any kind no matter how great it seemed when you started. People grow and their priorities change. There isn't necessarily anything wrong with the job or your boss or your colleagues or with you.
Sometimes you just need a change of scenery and a breath of fresh air, sometimes literally.
People have a tremendously distorted view of reality due to their own biases. Myself definitely included. "It is difficult to get a man to understand something, when his salary depends upon his not understanding it!" - Upton Sinclair
More concretely in the field of software engineering:
Accurate, precise estimates are more expensive than the actual task itself.
If someone asks you "how long until it is done", the only reasonable answer is just as long as you've already spent, even if you're close to the end of the project. a "three week project" on week 3 will most likely take another 3 weeks, all else being equal.
Nobody has any idea, they're just making it up as they go along.
If you do the math, you're ahead of almost everyone. Most people won't do math to save their own life. Same goes for reading. If you actually read documentation or source code, you're in a very slim minority. Most people just google.
Inaccurate, optimistic estimates are often a feature.
Many projects that turn out to be very valuable in the end would never have been started if the real time to completion had been communicated right from the start.
Yeah, when we were taught (software) project management with GANTT, I smelled bullshit due to the lack of tolerance of uncertainty in the tool. Thankfully the exam "subverted our expectations" and strongly hinted that "no plan survives contact with the enemy".
> Nobody has any idea, they're just making it up as they go along.
Ha! I came here to say this, and I'm glad you share my opinion. I realize that you're speaking specifically about software estimates, so please excuse me while I take your statement out of context and generalize it to most everything that I've experienced working in software.
I'm biased in my views on this at this point, but I tend to notice people falling into two camps (on a spectrum of course): those who are most comfortable with well-defined tasks and low uncertainty, and those who are comfortable making stuff up and running with it. That's a rough, one-dimensional reduction of many qualities, including creativity, certain types of critical thinking, pragmatism, "self-starter"-ness, enthusiasm, etc. In equilibrium, it's the people who are able to distill uncertainty into something resembling certainty that ultimately provide tasks for the people less comfortable with unknowns.
Corollary to that is the idea that "correct" is not binary but rather a measure of effectiveness by any number of shifting metrics (e.g. performance, readability/maintainability, "correctness", time and money cost, defect tolerance; all under the general umbrella of priorities).
It's one of the things I try to impress most upon junior developers that I mentor, especially when they are just out of bootcamp and haven't learned yet that most problems aren't well defined and don't have an answer in the back of the book, if you would. Essentially, our job is to "make stuff up": always "how", and often "what".
I don't think that it's actually true though. There are definitely areas where I don't have to make it up (anymore, at least). As a trivial example, implementing yet another API endpoint for a web form or something is not something where I have to experiment a lot (anymore).
It's also important to realize that in most fields, people are definitely not just making it up as they go along. A dentist or an airline pilot has extensive training, knows what they are doing and why. This is even true when it comes to estimation tasks.
I'm not actually speaking about software estimates there, I should have used asterisks or something. I mean it even more broadly - most people have no idea what they're doing in any given context, let alone in software with all the complexity. The whole world is just winging it, as a general rule.
The other problem with estimates of time with regard to certain tasks is the pareto principle. Specifically, if I give it to this developer, it will take two days. If I give it to that developer, it will take two weeks. So, how long will it take?
> Accurate, precise estimates are more expensive than the actual task itself.
That! That is is.
You CAN get accurate estimates. But the cost of doing so is infeasible for any significant project.
You can break things down into smaller pieces, easier to estimate. But the bigger the overall complexity, the more small pieces you will miss or fail to see. Or fail to see how parts interact. Or fail to recognize how far the influence of some element may reach.
And other reasons estimates turn out wrong.
The difficulty of software estimation was recognized in the 1960's. Again in the 1980s during the microcomputer revolution. And again sometimes more recently. When even the biggest companies, with vast resources, and billions of dollars cannot estimate when their product will be ready, how is a small software team expected to precisely do so. There was a joke of which year Windows 95 would ship in.
At the same time, a business needs some kind of timetable because many other things need to coordinate with the completion of a software project.
Maybe recognize the best you can do is have an idea of how well things are going. As a project gets further along you get a better idea of when it will be complete -- especially when there are lots of unknowns.
When constructing a building, there are lots of knowns. How many square feet. How many walls. Electrical outlets. Plumbing fixtures. Etc, etc. They can give you a very good estimate. It's all things they've done before.
Software is generally things that you've not done before. (or you may suffer the second system effect if it is)
After doing this for 25 years, I always say "you never get good at estimating, you just get less shitty at it"..
Lots of people don't like that statement, but I stand by it..
I eventually stopped trying to estimate time required to deliver a specific thing, and instead started working backwards and seeing what can be done in the time we have.
It's still estimating, but it's somehow a bit easier, especially if you're willing/able to re-evaluate along the way.
I know that's basically Agile but I removed all the ritualistic BS. ;-)
I've seen a corollary in my work with legacy system migrations and technical debt.
Often scoping the work and taking so much care to not cause any issues grinds the work to a halt. We could do well with taking a bit more of a risk&fix attitude (after all, leaving it as it is constitutes a BIG risk over an infinite time frame).
there are relatively few people writing constructively to companies and while some companies suck bufallo wings, the good ones are good and will use your feedback to make their products better
This is repeated often on HN, but I feel like it generalizes too much and is not always accurate. My last company specifically had "We're a team, not a family" as a core value. The company and team always had an air of arrogance around everyone and while nothing stood out as a giant red flag, it was never really that comfortable of a place to be in. My current company regularly uses the term family to describe themselves, but the overall vibe feels a lot nicer than my last place and it does not have an overwork culture; it actually has great work life balance.
[Edit] It's not a time thing. I was at my last place for 1.5 years. I've been at my current place for 1.5 years now and am happy to stay for long term.
Corollary: Any company that holds "retreats" one or more times a year doesn't give two shits about you. They don't respect your personal time, your family, or your life outside of work.
Every time I get a job candidate excitedly asking whether our multi-state company holds annual retreats or get-togethers, they're under 30 with no family.
It's not a vacation, folks: It's an obligation. One that doesn't respect your life or plans outside of work. If you want a trip, choose a job that gives you plenty of paid vacation time and go wherever you please.
If you can prevent being cynical and take that effort into doing actual work, your skillsets quickly compound. If the job sucks, take your improved skillset elsewhere. But do not sit idly and complain - it does nothing, hurts your career, your colleagues and your life.
That people will take a conspiracy and run with it because they'll believe a publicised scare over any number of actual experts.
I saw it with the introduction of EMV (Chip'n'Pin) credit cards in the UK, and again with contactless cards a few years later, and you still see it with Apple/Google pay.
They're not safe, people will steal all your money, you shouldn't have to use your PIN in public, they'll get cloned, I microwave all mine just to be sure. All while ignorant of the real improvements these technologies bring.
I imagine anyone reading this that's ever worked with/around vaccines and vaccinations is thinking "you don't say!" right now...
But it seems to me those conspiracies often only affect a small (but vocal) minority of the people.
I recall a similar issue when they started to introduce a prescription database in Austria. There was a lot of fearmongering in the media, doctors spreading pamphlets against dangers of surveillance, etc.
But when I talked to people about it, nobody really cared about it. People might have read some article in the newspaper, but I don't know anybody who actually bothered to opt out of the system.
I think the problem is that journalists like reporting on controversies, so they end up writing a lot about issues that only bother a few people, and if you read the article it looks likes it's a major issue when it's really not.
Perhaps so, though I've met a few older people who just don't trust contactless payments, even after I've explained that a fingerprint protected phone is more secure than any card they might have used.
And with some things it just takes time for that reactionary impulse to wear off.
OTOH I brought up vaccines for a reason - sometimes such things don't go away.
Working in VR, the state of the art is closer to Pong than to the Holodeck or the Matrix. That doesn't mean there aren't useful applications for the technology but we won't see anything that passes for reality in my lifetime, or perhaps ever.
> but we won't see anything that passes for reality in my lifetime, or perhaps ever
maybe not that passes for reality, but VR already has a powerful "reality feeling" even with the crappy resolution we have now
Get someone to load a VR game and try to walk off a cliff - they'll find it very difficult to do. Even someone that's played a lot of VR will have to override their instincts to not step off.
Presence is possible, although my experience is that things like the cliff effect get less potent the more you use VR. You have to be a willing participant though to buy into the alternate reality and agree to play within the rules. True interactivity is what's really lacking and the thing we're furthest from being able to simulate. Reality just has an astounding amount of detail when you can interact with it rather than just look at it.
None of this is to say that VR can't be useful, valuable or entertaining (I still work in the field and believe in its potential) but we're nowhere near the Matrix and maybe that's not a bad thing.
(preface: I worked a string of manual labor jobs before and during college)
A lot of the (now) coveted trade jobs can seem like a very tempting alternative to crushing college debt and volatile job security, but truth be told, many of these trades are plagued with physical injuries, sudden unemployment, and what not.
Furthermore, you deal with A LOT more shady people (employers, customers / clients, suppliers, you name it) than you do in white-collar sectors.
I say this because for the past few years, I've seen an increase in people advocating for people to choose trade jobs over college-educated jobs, like it's the most obvious and risk-free thing in the world.
It's not, and I'd even go as far as arguing that the downsides of trade jobs can be worse than the downsides of a cushy white-collar job.
Yep Facebook, Twitter, Amazon and google and the rest of those money hating software companies are just in it for the good of free speech and democracy. :S
Trades are OK when you're young. If I'd been a carpenter at 18, i'd be bored of it by 26 and probably be thinking about starting my own company or time to pivot into a new thing. The big downside of trades is they aren't jobs you can do forever.
That's the thing; there are very few ways to go up in those businesses. Either you become a manager or foreman, or go back to school and return as an engineer, project manager, or similar. Or maybe start your own company if you have the papers / certs / connections. Going from a regular skilled worker to those positions can take 10 years, easy.
The guys I worked with almost 15 years ago still work in the same company. Still toil away in the same positions as before, while occasionally inquiring me about engineering school or similar.
I noticed that as soon as they started getting close to 30, got wife and kids, they started to ask around for better options.
I did that carpentry thing too for a year, a long time ago. Hanging down head over by the knees from the ridge, and banging nine inch nails into the rafters from below. Up to 8 floors high. Looking like an animal. What can i say? In retrospective it was much more satisfying than much of anything i did afterwards. I really built something to last, immediately visible, tangible.
Though of course it would have been hard to do that for more than five to ten years. And it WAS dangerous. Many alcoholics there also.
edit: But i really learned to use a hammer from some functional alcoholic which needed two bottles of beer first to get his shaking under control. So...prejudice be damned!
2nd edit: He, in traditional carpenters clothes, coming from Berlin and speaking that dialect. Lying in the shade of some wall, upping his level of beer.
Me, mostly clueless but agile rookie, stylelessly in military surplus chlothing somewhere in the 'Ruhrpott' in North-Rhine-Westphalia, slowly doing his thing up there.
He, 'Dude! I can't stand nor hear and see how you are hammering!'
Me, 'Wassup?! Show me then you lazy old fart!'
And he did. Effectively 'teaching in' hands on at first, then by constantly giving voice feedback from his shadow behind the wall. Like, 'Too slow, better, Jaa!, like that, go on!'
And so i did, happily banging away heads down and bare chested in the morning sun, not minding his lazyness at all.
There was more to it. It had something zen-like, because his voice from the shadow also said snidely 'Not like that, i can hear how you are holding it wrong!' , and instructed me to hold/bend my wrist this and that way. And my arm, elbow, shoulder, body. He masterfully knew the kinematics of hammering and could apply that to teaching you in an almost eerie way.
And unfortunately it's difficult to scale your work. You get paid for the hours you put in, and there's only so many hours. Of course, if you're lightning fast you could increase volume, but that's about it.
I know lots of people in trade jobs that make a good salary, not too far away from what their company engineers make - but the downside is that they work 12 hour days, 6 days a week to earn that kind of money. While the engineer has a cushy 8 hr workday, 5 days a week.
Work and overtime culture completely depends on the owner. I've been at shops where you were expected to work OT every single day. Start 7, 30 mins lunch 12, 45 min dinner around 3-4, then back to work and keep working until 7-8-9 in the evening. repeat. 6 days a week, sometimes 7.
It's one of the few places where people have pissing matches over who's worked the most. Guys would come in and brag about only getting 3 hours of sleep, or working 16 hr days the whole week. Weird culture.
> It's one of the few places where people have pissing matches over who's worked the most.
Probably once the work is not intellectually challenging people need to create a challenge somehow.
In my experience, when you are used to intellectual challenging work, trades feel like a downgrade and becomes unbearably boring. Conversations fall to high school level. However, if you can deal with it and the physical risk, there's money in there.
Trades are probably more measurable, if someone lays 400 bricks in a day you know they have built a wall and can quickly see whether it is straight.
If I write 400 lines of code in a day it's quite hard to evaluate the quality or even if it satisfies the requirements.
This is why intellectual work tends to create more political problems. People know good work can't necessarily be measured so they start engaging in games to get ahead.
Also you don't get to brag in trades that you spent the week removing 200 of the 400 bricks, and the wall is still as straight & as strong, while being easier to repair later.
Or young people just starting out and have only ever worked in a booming market. I worked in construction/sanitation for a family member's business from 15 to 18 summers, then 18 to 20 full time. My dad always stipulated that my job was entirely dependent upon going to night school and keeping my grades up because he did not want me to follow that path in life.
He was only a little older than I am now and was already suffering from physical problems associated with such labor. So he really knew what he was talking about. It was good advice because The Great Recession nearly bankrupted the company.
I also see people that have overinflated ideas of wages in such industries. They often quote average salaries in the range of what the BLS reports as the 90th percentile.
How little my personal variance in performance actually matters. The only ones that can tell a good day from a bad day by looking at or listening to (I am an orchestra musician) the result is me. The only time it really matters is for big orchestra solos.
I am a much worse programmer than bassoon player, and for programming amount of work put in matters a lot more. I still churn out mostly bad code, but the spectrum is a lot broader.
That money is debt. In a very fundamental, literal and practical sense, debt or credit (i.e. someone owing somebody something valuable) is what money is. The traditional definition of means of unit of measure, means of payment and unit of value describe how money is used, not what it is.
Like, knife is a sharp edged tool used to cut things vs knife actually is steel.
(This also being my main reason objecting cryptocurrencies. Idea of current cryptocurrencies being money is to me very much cargo cultish until there is a proper way to manage credit within the cryptocurrency system.)
First, the "own money" in the bank is not technically his money in the bank, but money the bank has borrowed from your friend. So the bank is in debt to your friend.
Now, in order for the bank to be able to be able to pay its debt to your friend one day, bank has assets. I.e. someone has borrowed money from the bank (e.g. mortgage), and those assets can be used/solde to pay your friend if your friend really wants the bank to settle its debts to him.
It kind of is turtles all the way down. Someone needs to be in debt for there to exist any money. Money is a really weird kind of bearer note. It just means that if you have money, you are owed some valuable goods by other people. And you are pretty free to choose who pays that debt to you from them who is willing to take that bearer note from you as a payment.
Note that debt is also how money is born. Technically everything a bank does when it adds for whatever reason money to your bank account is that it increases your balance in the database and boom, we have new money. Of course, usually banks are not stupid, and in order for them to increase their debt to you, they want something from you in exchange. Typically a promise to pay back a bit more some later day.
(As a disclaimer, money is really tricky to think through. So I give no guarantees my thinking is correct, but so far thinking money as a debt has been most useful way for me to understand it.)
I guess I don't see it like that at all. I see it as the olden days where banks (or countries) actually had gold reserves for the amount of money that exists. (I know it doesn't work like that anymore)
I also don't really agree that the bank owes my friend that $100k. They're just holding it for him. If you store your car at my house I'm not in debt to you. Your car is just sitting at my house for a while and you can come and get it whenever you want. It's no skin off my nose, and it doesn't impact me financially, because I'm not in debt to you. In the same way when I put money in my bank account the bank is just agreeing to store my money for a while. They are not in debt to me.
Sure, you owe him a car for the duration, the fact that he can get it whenever he wants doesn't change much. If the car you stored goes missing (and you set up a contract) you'll find you now owe him money.
Another interesting thing is that you (a bank) will typically store not one but a hundred cars, and you will lend 90% of those to other people at any given point, in exchange for money. So everyone thinks their car is stored in a garage and they can get it whenever but they probably can't. The system only works because people don't need their cars that much.
The bank doesn’t store your money, it turns around and lends it to someone else, hoping that the interest it receives on that debt (eg. a mortgage) is greater than the interest it pays you.
While I don’t agree with the overall ‘money is debt’ statement, it is definitely true that you lend your money to the bank. You don’t park it like a car. This is why there can be times that you ask for your money and they don’t have it (the reason for FDIC insurance).
> I also don't really agree that the bank owes my friend that $100k.
I am sorry if I sound blunt, but I do not see this something that is a question of opinion or something one can feasibly agree or disagree with. This is pretty much true by definition.
Yes, I know it feels different if you lend your money to a bank or to your friend, but it is only because you can use the debt of the bank as means of payment more easily.
No, that's not true. Money can be either debt-based or non-debt-based.
The current government issued money is based on debt. It means that in order to create new money, someone has to be in debt for that amount. I.e. someone has to promise to create value in the future. When more promises are made, the monetary base inflates and money loses value. Money is created at the central bank (public/national debt) and in commercial banks (private debt).
The alternative is money that is based on value that was created in the past. The distinction is that the work already happened and there's no promise to be held. Such money can be anything that requires work to obtain, and can't be created in any other way. Examples of such money are gold and bitcoin.
> No, that's not true. Money can be either debt-based or non-debt-based.
Well, you are right in that money _can_ in theory be non debt based. However, currently it is not, and I am quite confident that if you tried to come up with money that is non debt based, first, it would work horribly badly and second, there would emerge almost immediately a debt based money. You see, it is practically impossible to forbid a debt based money. If I have three friends that trust me, I can write on a paper that "if you give this paper to beefield, he will give you five apples". Now that paper is literally money between my friends. And there is very little you can do to stop that. You see that also in crypto world. Crypto people are vehemently against fractional reserve banking and anybody being able to generate money. Obviously there are now instruments that are newly created money supply for all practical and theoretical purposes (e.g. tether and exchange deposits), but somehow the cognitive dissonance seems to be too strong to admit that.
Debt and credit are useful and necessary tools, I'm not against them. Tether and exchange deposits are obviously not cryptocurrency and I think lots of people understand that. They require trust, which has been breached many times already.
There's a saying: 'not your keys, not your coins'. Cryptocurrency makes it possible to actually own your money when you hold the keys, and it's impossible to take it away from you.
> Tether and exchange deposits are obviously not cryptocurrency
As you say, that is obviously true. Almost as obviously true should be that they are (or at least very hard try to be) _money_. And that should roughly as obviously point to the conclusion that one of the central tenants of cryptofolks' philosophy, fixed money supply, is broken. Fairy tale. Utter crap. Or whatever is your favourite idiom for something that simply, completely, demonstrably and blatantly untrue.
That's the core concept from that book and I found it really interesting. It tears down the common school example of barter based economies preceding money. In most societies people kept an informal ledger of favours owed in their heads and had a rough idea of commensurate value over time. Direct barter was relatively rare.
756 comments
[ 3.6 ms ] story [ 273 ms ] threadIt's a huge mistake to look down on and make assumptions about someone just because they have a "bad" job.
A friend of mine studied enology (wine making) at Cornell and his job is about 50% business management and 50% wine making. Some days he has to wear a suit to work, other days he comes home in a wine stained smock. It seems like a good balance.
I have friends who work in various construction fields, so I know it can be miserable and cold and dirty and hard on your body, and that people tend to romanticize outdoor jobs. Still, I've never been one to be bothered by cold or reasonable amounts of rain, as long as the appropriate clothing is available.
After spending a few days bolting heavy steel pipes into place in the scorching sun I realised I quite like the comfort of the office ;-)
Though it is fun to go onto the absolute front lines and get your hands dirty and the feeling of satisfaction on completing a physical job can be very high.
Working on the house has so far given me a lot of satisfaction (also some stress and shorter days). Any work we do on the house is work done for us. We can't do everything ourselves. We hired an electrician (a friend) to do some electrical work and got a company to do floor grinding in one of the rooms. Her father helped us oiling the floor, my father helped us when we redid the insulation in a part of the house (still ongoing). We planted some garlic and some raspberries. We're going to plant some strawberries soon (not really the right season, but we got them for free).
Working on your own house and garden could be an alternative to a career change if you feel the need to work with your hands.
Your parent's opinion: This view is incorrect, people with higher social status, not higher intelligence, receive jobs with less physical labor.
Commodities do not usually exist for the benefit of ultimate producers & consumers. . . .
You can't fix stupid but you can come up with some appropriate workarounds if you put in the effort of long-term repair anyway.
The interesting question is what sort of jobs contain a lot of challenges that are technical in nature.
At one of the places I worked, I got to implement a request batching algorithm using dynamic programming, at another place I got to implement a nurse rostering algorithm (this is not as easy as it sounds, and is an active research area), and at a third place I implemented the recursive tree algorithm that keeps a lookup table of user permissions up-to-date in a situation where roles inherit permissions from other roles.
But the reality is that there are millions of types of jobs, with incredible variety and specialisms, and the real content of a job is rarely captured in a job title.
Depends whether someone gets to just fill the shelf as per plan or has the curiosity to ask "WHY", noticing why X things fly off the shelf why Y things two shelves lower stay there forever. This curiosity builds the critical thinking 'muscle' and can motivate a shelf-filler to switch into marketing (hypothetical scenario has to do with a 17yo working part time and then deciding to studio marketing)(I didn't study marketing) :)
I'm sure you could measure it financially, and that a nicely done shelf stock makes more money than a poorly done one.
That being said there are a lot of jobs where I have difficulty imagining what mastery looks like; say in an automated, low choice style field like bus driving. I couldn't recognise an expert bus driver from a relative novice. But that probably only reflects my lack of knowledge about bus driving.
But a lot of it is just for show. Not really that impact-full on the work done.
People do it because they get a sense of achievement out of it.
But isn't the psychological sense of achievement suppose to be a reward for completing meaningful goals ? Isn't this "empty calories" in a sense ?
Look up "Bus Rodeo". It's basically a skills challenge for bus drivers.
You'll see drivers make maneuvers with 60 foot articulated beasts that the average person would have trouble doing in a normal SUV.
It was the job I have been most satisfied with in my working life. However, I did only do it for 8 months for 6 hours a day. Maybe in the long run it gets more boring.
The variety between shelf filling between different store brands and even different stores of the same brand made me really think no two jobs are the same.
Not my field, but perhaps you need to widen your view a little.
I'll bet there was someone at your store who was the Shiva of Stacking too?
I only worked checkouts (pre barcode scanning, other stores had it).
Doesn't matter if it's cutlery, bits, people, or shit. Your company's biggest problem is probably ensuring the right stuff is in the right place at the right time, while also ensuring the 7 other combinations of right/wrong stuff/place/time don't happen.
But most companies don't realize that. They try to frame logistical problems as business problems and try to have fresh MBAs solve it. Half of all startups are some guy trying to solve a general logistical problem for a specialized audience using the cloud.
Old guy at my old job. Retired Navy Chief. Never seen him smoke, but can't imagine him without a cigar in his mouth. His saying was "The important part is getting the logistics right. Everything else is logistics."
When you tame that chaos, and it's saturday afternoon when all the best people are there and everyone is on their game... I've never experienced anything like it. It's like when you see a really amazing play in your favorite sport, but that same amazing play goes on for a couple hours. I imagine it's like being an air traffic controller or maybe a stock broker on the trading floor where you can talk to everyone and it's productive chaos at its glorious peak.
I also remember working the order taking window and getting into the flow of quickly finding the items after you master the educational part. In a way it's like lego-building or very simple programming.
It's amazing, but it's also a bit distracting. Thankfully, as you're coming down off that high the music often comes down too, and it guides your emotions back into a calm flow, ready to build up for the next release.
I sometimes write code at the rhythm of those songs, and it’s amazing for my productivity.
Been crew trainer in a german company store next to an exit of several Autobahn crossings, doing mostly late/night-shifts around 1989/1990. Was some sort of internal flagship store because all managers of the area met there often. And we trained the 'franchisies' opening their own. And the f.... "Blitzcontrols". Always found something. Never got 100 points, only 98 or 99. GRRRR!
The pay was amazing btw. because at that time late/night work got huge bonus mandatory by law. About 4800,- Deutsche Mark every month. Nowadays not anymore.
Anyways, when several busses arrive at once because of some soccer games you have to 'flow' in sync with everybody else. We did. And had fun while doing so.
The conception of what happens inside our industry just isn't present in the wider population, and I imagine we're not unique in that.
That's why we have things like anti-vax, and people taking these incredibly simplistic views of complex fields. Assuming that anyone who puts on a lab coat can have the same valid medical understanding as the field that has been learning for hundreds of years and learned how to condense that down into a few years of school and an internship.
It's the same reason older generations think you can just show up on time and move to the top of your field, sure it helps, but catching up to the baseline of knowledge in a lot of fields is a huge gap, you don't just sweep the floor in a factory anymore and learn how to program the robots over serial port. There's a big jump there that didn't used to exist. (though I assume there was a similar gap in the industrial revolution when we started mechanizing work).
People can't even wrap their mind around real automation, they still assume it's going to be mechanization from the industrial revolution with computers. And there's so much else in this industry that people can't even understand that affects them in every day life situations.
Terrifying, isn't it?
You might persuade a computer to generate a set of passable songs for a discerning and skilled musician to choose from as a starting point. But I think I'll be dead before they're good enough to be better than just banging a few chords and presets together to see if it sounds good.
Melody and harmony are what most of these efforts focus on, but that's the easy part for any experienced composer.
Have you ever thought about how school buses are routed? Every school day, every bus has to pick up some number of children, and then drop them off at a school on time. Ideally, the correct school. Some children have to walk to meet the bus, which must be taken into consideration because you don't want a young child walking close to dangerous areas, and then there are disabled children who need special buses. Deciding who walks, who gets to take a bus, and who in is some special circumstance is a logistical-legal interface which gets quite involved.
Making that all happen isn't just one job, it's multiple, especially taking into account the fact there's software to help which must be made, tested, and deployed, and which users must be trained on.
My point is, to the average person, adult or child, that whole little world collapses down to "school bus driver" and that's it. The companies which make the software I mentioned advertise, sure, but not to individuals, and school districts have no reason to advertise how, precisely, the sausage gets made, so this little world stays mostly hidden, unless the district offers parents branded software so they can track their children to and from school.
To outsiders it looks like they end up with compromised solutions, but to insiders it looks like they achieved the impossible.
In some companies, often when there is no growth, that leads to very claustrophobic atmospheres with a core group that has been there for 10+ years and gatekeeps everyone else.
We have one diva who build the vast majority of the system. He is smart and likes algorithms, but doesn't write particularly easy code to follow (he values cleverness over simplicity). Any suggestion that it could be improved is met with a bit of an argument. And he isn't much of a team player compared to the other devs.
But he knows the system inside out....
Sometimes things organically grow in bad ways as cost optimizations that maybe (or maybe not) made sense back in the day. If you were to design it again, you obviously would not stick the screw drivers in the wall socket. But that was then, this is now. Instead of complaining about screw drivers, let's get a plan in place to get the mission critical services to be able to switch power sources.
Lying in engineering means saying anything that's not true with any certainty. I wouldn't hold it against someone, but I would ask them to think carefully before speaking, to make sure what they said is true, as it can lead meetings to decide the wrong actions if nobody present happens to be able to contradict it.
Outside of engineering, all the same outcomes can occur, but proving the truth is much more difficult. And thus, while it may still technically be lying, it is impossible to tell and unfair to call someone on it.
Saying something you don't know to be true is just spewing bullshit or practicing a religion.
It’s funny because that’s exactly an example of what I mean. Real engineering is about compromises and those are highly subjective. What’s the feature we should work on next? What tools should we use? What’s the priority of this bug? Should we refactor this today or take on more tech debt? Ask 10 people and you will get 10 answers, all of which are just as true as any other. Recognising this comes with experience.
My biggest payday came from a junior role at a startup I got extremely lucky at
Tripurarahasyam (from wiki: The Tripura Rahasya (Devanagari: त्रिपुरा रहस्य, Tripurā Rahasya) meaning The Mystery beyond the Trinity, is an ancient literary work in Sanskrit believed to have been narrated by Dattatreya to Parashurama. It is an ancient prime text which is one of the treatises on Advaita school of classical Indian Metaphysics.)
Work isn't about getting things done, but maintaining a consistent throughput.
What I instead do when people overwork is I give them extra paid time off. Stayed in the office for a couple of extra hours yesterday helping a customer? Great, please make sure to take Friday afternoon off. You had to work extra last week to meet a deadline? Apologies, that was my fault for not managing your workload properly and distributing it better (and also not setting a reasonable deadline). Second, again, please take the equivalent amount of time off.
The one is having fixed working hours and, as in the parent comment, compensating with extra leave if those hours are overstepped.
The other is working overtime whenever there is extra work that has to get done.
> obsession with 9-5 and whatever else it takes
You mean an obsession with "working 9-5 ALONG WITH whatever else it takes", not an obsession with "9-5" and a separate obsession with "whatever it takes".
If you are looking longer term, avoiding burnout and employee satisfaction will be a net positive. If you are looking short-term (12 months at most, but 3 months is more of a burnout limit), you may benefit from overworking people.
There are people who simply cannot be effectively replaced. That does not mean that the powers that be will not replace them. For example, a startup might have a critical engineer who happens to know how everything works or holds everything together. They can be replaced, although this may have a severe impact on the startup, including the failure of the startup.
To your point, even if someone is critical to the success of an organization does not mean that they won't ever be replaced by poor management.
Sometimes replacement of a critical engineer might even do good to a company by forcing them to break the silo.
The Wizard of Oz nails it:
"Pay no attention to that man behind the curtain"
https://youtu.be/YWyCCJ6B2WE
That's not to say software doesn't have bugs. Only that bugs don't appear suddenly.
Most bugs are caused by two things:
(1) Changes to the code that accidentally break unrelated stuff
(2) Changes to the environment (eg. OS vendor releases a new version which changes how some API behaves)
I think (1) is more common.
So I think that the reason why SaaS have problems all the time is that typically devs are changing stuff all the time and accidentally breaking things left and right, not that software is inherently unreliable. And since users can't keep using an old version that works for them, they'll stumble across every bug eventually.
While I'm sure that some developers go rogue, this feels like a business or management issue. Teams pushed to release fast and early. I wonder how often the developers in teams that release buggy software have asked for time to improve processes and legacy code, and been denied.
If developers really are going rogue and changing code on a whim without testing processes picking it up, this is still a management issue.
It's not a management issue, it's deeper than that.
Whenever you change something, you risk breaking something. It doesn't matter if you have unit tests, integrations tests, code review, staged rollouts or whatever else. Every time you change something, you risk breaking something. It does not matter how good your QA process is.
> improve processes and legacy code
Refactors are also a major source of bugs, so you should do that only if there is a serious problem with the old code.
The problem is that the code is constantly changing. With SaaS, customers have no choice but to always use the latest version, so eventually they'll run into a bug. Because constant change means that errors slip through eventually.
With traditional desktop software, customers aren't forced to update. They can just keep using their version of the software, and rely on the fact that it's not going to break suddenly.
If a customer doesn't change their workflow, they aren't going to suddenly stumble over an old bug.
But if you keep pushing changes, eventually you'll introduce a new bug that does affect them.
There's no way around it: The more you change software, the higher the risk of introducing bugs.
That applies even if the changes are just bug fixes for old bugs. Every time you fix a bug that I wasn't affected by, you risk breaking something that I do use.
Most old desktop software is happily deleted in favor of newer versions because it's full of bugs and/or almost impossible to use, and the one that is not is the actually not too buggy one.
Today I helped a former customer build code that hadn't been touched since 2013 with a compiler released in 2010. And it just worked. Also today my coworkers dev system stopped working because Chrome didn't update properly.
Sometimes you just need a change of scenery and a breath of fresh air, sometimes literally.
More concretely in the field of software engineering:
Accurate, precise estimates are more expensive than the actual task itself.
If someone asks you "how long until it is done", the only reasonable answer is just as long as you've already spent, even if you're close to the end of the project. a "three week project" on week 3 will most likely take another 3 weeks, all else being equal.
Nobody has any idea, they're just making it up as they go along.
If you do the math, you're ahead of almost everyone. Most people won't do math to save their own life. Same goes for reading. If you actually read documentation or source code, you're in a very slim minority. Most people just google.
Inaccurate, optimistic estimates are often a feature.
Many projects that turn out to be very valuable in the end would never have been started if the real time to completion had been communicated right from the start.
Ha! I came here to say this, and I'm glad you share my opinion. I realize that you're speaking specifically about software estimates, so please excuse me while I take your statement out of context and generalize it to most everything that I've experienced working in software.
I'm biased in my views on this at this point, but I tend to notice people falling into two camps (on a spectrum of course): those who are most comfortable with well-defined tasks and low uncertainty, and those who are comfortable making stuff up and running with it. That's a rough, one-dimensional reduction of many qualities, including creativity, certain types of critical thinking, pragmatism, "self-starter"-ness, enthusiasm, etc. In equilibrium, it's the people who are able to distill uncertainty into something resembling certainty that ultimately provide tasks for the people less comfortable with unknowns.
Corollary to that is the idea that "correct" is not binary but rather a measure of effectiveness by any number of shifting metrics (e.g. performance, readability/maintainability, "correctness", time and money cost, defect tolerance; all under the general umbrella of priorities).
It's one of the things I try to impress most upon junior developers that I mentor, especially when they are just out of bootcamp and haven't learned yet that most problems aren't well defined and don't have an answer in the back of the book, if you would. Essentially, our job is to "make stuff up": always "how", and often "what".
It's also important to realize that in most fields, people are definitely not just making it up as they go along. A dentist or an airline pilot has extensive training, knows what they are doing and why. This is even true when it comes to estimation tasks.
The good news is, they're just passing through.
One place I worked just billed the client what we would as the reasonable rate and tracked the rest as training.
I guess pair programming is one approach to get around this, you'd probably consume a week of dev time total in your example but it's better than two.
That! That is is.
You CAN get accurate estimates. But the cost of doing so is infeasible for any significant project.
You can break things down into smaller pieces, easier to estimate. But the bigger the overall complexity, the more small pieces you will miss or fail to see. Or fail to see how parts interact. Or fail to recognize how far the influence of some element may reach.
And other reasons estimates turn out wrong.
The difficulty of software estimation was recognized in the 1960's. Again in the 1980s during the microcomputer revolution. And again sometimes more recently. When even the biggest companies, with vast resources, and billions of dollars cannot estimate when their product will be ready, how is a small software team expected to precisely do so. There was a joke of which year Windows 95 would ship in.
At the same time, a business needs some kind of timetable because many other things need to coordinate with the completion of a software project.
Maybe recognize the best you can do is have an idea of how well things are going. As a project gets further along you get a better idea of when it will be complete -- especially when there are lots of unknowns.
When constructing a building, there are lots of knowns. How many square feet. How many walls. Electrical outlets. Plumbing fixtures. Etc, etc. They can give you a very good estimate. It's all things they've done before.
Software is generally things that you've not done before. (or you may suffer the second system effect if it is)
Lots of people don't like that statement, but I stand by it..
I eventually stopped trying to estimate time required to deliver a specific thing, and instead started working backwards and seeing what can be done in the time we have.
It's still estimating, but it's somehow a bit easier, especially if you're willing/able to re-evaluate along the way.
I know that's basically Agile but I removed all the ritualistic BS. ;-)
Even if I get better at it, a lot of my younger coworkers do not. So the phenomena seems to continue.
Often scoping the work and taking so much care to not cause any issues grinds the work to a halt. We could do well with taking a bit more of a risk&fix attitude (after all, leaving it as it is constitutes a BIG risk over an infinite time frame).
there are relatively few people writing constructively to companies and while some companies suck bufallo wings, the good ones are good and will use your feedback to make their products better
[Edit] It's not a time thing. I was at my last place for 1.5 years. I've been at my current place for 1.5 years now and am happy to stay for long term.
Every time I get a job candidate excitedly asking whether our multi-state company holds annual retreats or get-togethers, they're under 30 with no family.
It's not a vacation, folks: It's an obligation. One that doesn't respect your life or plans outside of work. If you want a trip, choose a job that gives you plenty of paid vacation time and go wherever you please.
I saw it with the introduction of EMV (Chip'n'Pin) credit cards in the UK, and again with contactless cards a few years later, and you still see it with Apple/Google pay.
They're not safe, people will steal all your money, you shouldn't have to use your PIN in public, they'll get cloned, I microwave all mine just to be sure. All while ignorant of the real improvements these technologies bring.
I imagine anyone reading this that's ever worked with/around vaccines and vaccinations is thinking "you don't say!" right now...
I recall a similar issue when they started to introduce a prescription database in Austria. There was a lot of fearmongering in the media, doctors spreading pamphlets against dangers of surveillance, etc.
But when I talked to people about it, nobody really cared about it. People might have read some article in the newspaper, but I don't know anybody who actually bothered to opt out of the system.
I think the problem is that journalists like reporting on controversies, so they end up writing a lot about issues that only bother a few people, and if you read the article it looks likes it's a major issue when it's really not.
And with some things it just takes time for that reactionary impulse to wear off.
OTOH I brought up vaccines for a reason - sometimes such things don't go away.
maybe not that passes for reality, but VR already has a powerful "reality feeling" even with the crappy resolution we have now
Get someone to load a VR game and try to walk off a cliff - they'll find it very difficult to do. Even someone that's played a lot of VR will have to override their instincts to not step off.
None of this is to say that VR can't be useful, valuable or entertaining (I still work in the field and believe in its potential) but we're nowhere near the Matrix and maybe that's not a bad thing.
I really hope for VR semi-realtime street view for when I'm old and brittle.
Time has a universal ceiling for us humans and is the ultimate boundary
If you're an engineer here, you'll find something there, too.
A lot of the (now) coveted trade jobs can seem like a very tempting alternative to crushing college debt and volatile job security, but truth be told, many of these trades are plagued with physical injuries, sudden unemployment, and what not.
Furthermore, you deal with A LOT more shady people (employers, customers / clients, suppliers, you name it) than you do in white-collar sectors.
I say this because for the past few years, I've seen an increase in people advocating for people to choose trade jobs over college-educated jobs, like it's the most obvious and risk-free thing in the world.
It's not, and I'd even go as far as arguing that the downsides of trade jobs can be worse than the downsides of a cushy white-collar job.
Trades are OK when you're young. If I'd been a carpenter at 18, i'd be bored of it by 26 and probably be thinking about starting my own company or time to pivot into a new thing. The big downside of trades is they aren't jobs you can do forever.
The guys I worked with almost 15 years ago still work in the same company. Still toil away in the same positions as before, while occasionally inquiring me about engineering school or similar.
I noticed that as soon as they started getting close to 30, got wife and kids, they started to ask around for better options.
Though of course it would have been hard to do that for more than five to ten years. And it WAS dangerous. Many alcoholics there also.
edit: But i really learned to use a hammer from some functional alcoholic which needed two bottles of beer first to get his shaking under control. So...prejudice be damned!
2nd edit: He, in traditional carpenters clothes, coming from Berlin and speaking that dialect. Lying in the shade of some wall, upping his level of beer.
Me, mostly clueless but agile rookie, stylelessly in military surplus chlothing somewhere in the 'Ruhrpott' in North-Rhine-Westphalia, slowly doing his thing up there.
He, 'Dude! I can't stand nor hear and see how you are hammering!'
Me, 'Wassup?! Show me then you lazy old fart!'
And he did. Effectively 'teaching in' hands on at first, then by constantly giving voice feedback from his shadow behind the wall. Like, 'Too slow, better, Jaa!, like that, go on!'
And so i did, happily banging away heads down and bare chested in the morning sun, not minding his lazyness at all.
While being drunken...and out of sight...
I know lots of people in trade jobs that make a good salary, not too far away from what their company engineers make - but the downside is that they work 12 hour days, 6 days a week to earn that kind of money. While the engineer has a cushy 8 hr workday, 5 days a week.
Work and overtime culture completely depends on the owner. I've been at shops where you were expected to work OT every single day. Start 7, 30 mins lunch 12, 45 min dinner around 3-4, then back to work and keep working until 7-8-9 in the evening. repeat. 6 days a week, sometimes 7.
It's one of the few places where people have pissing matches over who's worked the most. Guys would come in and brag about only getting 3 hours of sleep, or working 16 hr days the whole week. Weird culture.
Probably once the work is not intellectually challenging people need to create a challenge somehow.
In my experience, when you are used to intellectual challenging work, trades feel like a downgrade and becomes unbearably boring. Conversations fall to high school level. However, if you can deal with it and the physical risk, there's money in there.
If I write 400 lines of code in a day it's quite hard to evaluate the quality or even if it satisfies the requirements.
This is why intellectual work tends to create more political problems. People know good work can't necessarily be measured so they start engaging in games to get ahead.
He was only a little older than I am now and was already suffering from physical problems associated with such labor. So he really knew what he was talking about. It was good advice because The Great Recession nearly bankrupted the company.
I also see people that have overinflated ideas of wages in such industries. They often quote average salaries in the range of what the BLS reports as the 90th percentile.
I am a much worse programmer than bassoon player, and for programming amount of work put in matters a lot more. I still churn out mostly bad code, but the spectrum is a lot broader.
Like, knife is a sharp edged tool used to cut things vs knife actually is steel.
(This also being my main reason objecting cryptocurrencies. Idea of current cryptocurrencies being money is to me very much cargo cultish until there is a proper way to manage credit within the cryptocurrency system.)
Are you saying that all money is borrowed from someone?
What if a friend has $100,000 in the bank of his own money, and he pays me $1,000 to fix his car?
He's not in debt, and neither am I. I'm confused
Now, in order for the bank to be able to be able to pay its debt to your friend one day, bank has assets. I.e. someone has borrowed money from the bank (e.g. mortgage), and those assets can be used/solde to pay your friend if your friend really wants the bank to settle its debts to him.
It kind of is turtles all the way down. Someone needs to be in debt for there to exist any money. Money is a really weird kind of bearer note. It just means that if you have money, you are owed some valuable goods by other people. And you are pretty free to choose who pays that debt to you from them who is willing to take that bearer note from you as a payment.
Note that debt is also how money is born. Technically everything a bank does when it adds for whatever reason money to your bank account is that it increases your balance in the database and boom, we have new money. Of course, usually banks are not stupid, and in order for them to increase their debt to you, they want something from you in exchange. Typically a promise to pay back a bit more some later day.
(As a disclaimer, money is really tricky to think through. So I give no guarantees my thinking is correct, but so far thinking money as a debt has been most useful way for me to understand it.)
I also don't really agree that the bank owes my friend that $100k. They're just holding it for him. If you store your car at my house I'm not in debt to you. Your car is just sitting at my house for a while and you can come and get it whenever you want. It's no skin off my nose, and it doesn't impact me financially, because I'm not in debt to you. In the same way when I put money in my bank account the bank is just agreeing to store my money for a while. They are not in debt to me.
Another interesting thing is that you (a bank) will typically store not one but a hundred cars, and you will lend 90% of those to other people at any given point, in exchange for money. So everyone thinks their car is stored in a garage and they can get it whenever but they probably can't. The system only works because people don't need their cars that much.
I am sorry if I sound blunt, but I do not see this something that is a question of opinion or something one can feasibly agree or disagree with. This is pretty much true by definition.
Yes, I know it feels different if you lend your money to a bank or to your friend, but it is only because you can use the debt of the bank as means of payment more easily.
The current government issued money is based on debt. It means that in order to create new money, someone has to be in debt for that amount. I.e. someone has to promise to create value in the future. When more promises are made, the monetary base inflates and money loses value. Money is created at the central bank (public/national debt) and in commercial banks (private debt).
The alternative is money that is based on value that was created in the past. The distinction is that the work already happened and there's no promise to be held. Such money can be anything that requires work to obtain, and can't be created in any other way. Examples of such money are gold and bitcoin.
Well, you are right in that money _can_ in theory be non debt based. However, currently it is not, and I am quite confident that if you tried to come up with money that is non debt based, first, it would work horribly badly and second, there would emerge almost immediately a debt based money. You see, it is practically impossible to forbid a debt based money. If I have three friends that trust me, I can write on a paper that "if you give this paper to beefield, he will give you five apples". Now that paper is literally money between my friends. And there is very little you can do to stop that. You see that also in crypto world. Crypto people are vehemently against fractional reserve banking and anybody being able to generate money. Obviously there are now instruments that are newly created money supply for all practical and theoretical purposes (e.g. tether and exchange deposits), but somehow the cognitive dissonance seems to be too strong to admit that.
There's a saying: 'not your keys, not your coins'. Cryptocurrency makes it possible to actually own your money when you hold the keys, and it's impossible to take it away from you.
As you say, that is obviously true. Almost as obviously true should be that they are (or at least very hard try to be) _money_. And that should roughly as obviously point to the conclusion that one of the central tenants of cryptofolks' philosophy, fixed money supply, is broken. Fairy tale. Utter crap. Or whatever is your favourite idiom for something that simply, completely, demonstrably and blatantly untrue.
That's the core concept from that book and I found it really interesting. It tears down the common school example of barter based economies preceding money. In most societies people kept an informal ledger of favours owed in their heads and had a rough idea of commensurate value over time. Direct barter was relatively rare.