Live data from Hacker News

Many software companies are a joke

liou28335.medium.com

221–230 of 377 posts

Re: Many software companies are a joke

#221

The sad thing is that it’s a joke that many people don’t seem to be in on. You get all these defenders coming out of the woodwork when people wonder what the hell all the programmers at say, Twitter, are doing. Supposedly you puny mind can’t comprehend the challenges of developing a website “at scale” The real answer is, almost nothing. People are being paid very high salaries to do nothing.

> to do nothing

The author puts it better: they do lots of things, all day long, but produce almost nothing.

Re: Many software companies are a joke

#222

Earlier quoted context omitted.

A CEO rarely accepts designing a product for a single customer. If you did, than your team just becomes dependent contractor labor rather than a business. I will tell you a terrible secret of successful software companies: "One doesn't make money writing software, but rather reselling the same software mullions of times over." You should know this already. =P

You seem to talk in absolutes while I'm just acknowledging there is more than one right answer. And I do have specific real cases from my experience in mind... One of a great product that never finished (money ran out, CEO didn't want to provide something that was for "a single customer" as in your words), another of a shitty buggy unmaintainable software that did grow a company from 4 to 100 employees then to an exi…

The 3 year survival odds are about 1:23 for software/services startups, and 1:70 for hardware projects.

I have culled many half-arsed options... and the decisions are far from arbitrary. Also, who budgets for a project burning over $100k a month in labor without a detailed plan... lol

Re: Many software companies are a joke

#223
post #201

As the top comment points out, the author comes off as arrogant and their view is unbalanced, but they do have a point. I find the saying "What a programmer can do in a month, two programmers can do in two months" is quite true. I consider myself competent and the people I work with are even more so, but human communication is always very imprecise and slow. If you stack it into a hierarchy of teams and managers, eff…

This approach involves a high degree of risk, i.e. your bus factor is 1: https://en.m.wikipedia.org/wiki/Bus_factor

Yes, absolutely. Having a single person do what they want with a component involves risks but I think they can be managed.

Say the dev in charge of an important component of a service is struck by a bus and dies. The optimistic scenario is that the code was well enough written that people developing adjacent components (ie. components that interface with that of the deceased dev) can effectively take over development in the short term until a new owner is found.

A more interesting scenario is that in which the dev abused autonomy and the component is utter spaghetti. In all but the most extreme of cases, the component could be kept in maintenance mode as is for some time. This would block progress that relies on changes in the component, but allow the service to continue working. In that time, other devs could either untangle the spaghetti and refactor the code into something workable or rewrite it. In both cases a significant amount of resources would be spent, but this is a scenario that's unlikely to occur often and the fact that the component was owned by a single person places a soft cap on the size of the component (and ideally an employee would maintain a couple of unrelated components to ensure they can continue working if one service is deprecated) ensuring it could be replaced within reasonable time.

Re: Many software companies are a joke

#224

They are correct. It doesn't matter, and nothing will change in large corporations. That's not a bad thing, or a good thing. It's just the way things are. I spent most of my career in large corporations; many of those years, as a manager, where it was my job to maintain all that overhead the author complains about. I'm quite aware of the need for it, and a good part of my job, was trying to streamline the overhead, a…

>>Seeing how "Agile" is being implemented in corporate

Dictionary definition of agile: "able to move quickly and easily."

There is nothing 'agile' about how 'Agile' is being done in most/many big corps - yet another buzzword sold by high priced consultants who like buzzwords, to top-level execs that think they know what they want.

Re: Many software companies are a joke

#225

I was reading https://danluu.com/sounds-easy again today, and when reading this article I was reminded of a particular section: "Everything we've looked at so far is a technical problem. Compared to organizational problems, technical problems are straightforward. Distributed systems are considered hard because real systems might drop something like 0.1% of messages, corrupt an even smaller percentage of messages, and…

> The author seems like someone who just loves writing code as opposed to wanting to deliver maximum business value (As defined by the company), so it makes sense he dislikes big companies.

I think the point is that very little actual business value is being created. This not necessarily due to "actual business needs" but because of deterioration of culture over time and the inevitable principal-agent induced issue of managerial bloat.

Instead of accepting that increased communication needs will slow down everything to a crawl, how about eliminating needless communication? Thats how Amazon does it, and look where they are now.

Re: Many software companies are a joke

#226

The sad thing is that it’s a joke that many people don’t seem to be in on. You get all these defenders coming out of the woodwork when people wonder what the hell all the programmers at say, Twitter, are doing. Supposedly you puny mind can’t comprehend the challenges of developing a website “at scale” The real answer is, almost nothing. People are being paid very high salaries to do nothing.

There's scale, and then there's _scale_. And I can happily believe that Twitter is working at the latter. It's like something like AWS or Azure. You can provision and deploy a K8s cluster? Awesome! Now, can you do that consistently for the next 100 thousand K8s clusters you're selling to your clients? It's a very different kettle of fish.

I think regardless of scale, spending over a year working on edit functionality is endemic of something being horribly wrong organizationally. Maybe it doesn't even involve the software engineering groups (though it probably does). But that's simply not something that takes even a fraction of that time in a healthy organization.

Re: Many software companies are a joke

#227
post #161

Earlier quoted context omitted.

The whole reason it feels understaffed is because there's too many people. I know it sounds counter-intuitive, but software doesn't really scale linearly. Unless they're 100% independent, the communication overhead will always be there. Fred Brooks and all that. With 7000 developers working in a connected system, it probably feels slower and less things get done than if there were less people. It's not simple to go b…

Please elaborate. It doesn't feel understaffed because of communication overhead or being in a connected system, but because of the level of responsibility (I.e. critical system) or product surface area a team is responsible for.

Sure. The things you mention (Compliance, privacy, legal, internal tooling) also have to grow together with the number of developers to scale. Not only those, but also support, QA, management, UX/UI. All those ares have to increase when the dev headcount increases. But since most of those need some degree of centralization and coordination, they can't escape communication overhead and orgs slow to a crawl.

Also, software development teams have to assume more responsibilities just to escape this communication/interconnection overhead: devops is a good example, you no longer have to depend on another team, but now you gotta do operations yourself. An example of avoiding interconnection overhead is having isolated services: now you don't run queries on team Y's database, but you still have to maintain that data on your own DB. Isolation is a good alternative, but it also has its costs.

Unless we're talking about 7000 software developers working on 400 completely different and completely isolated products and answering to different people, there's gonna be a lot of invisible communication overhead, or overhead because of the need to work together with the other 6999. We developers tend to abstract it as being "part of the job", even though it is definitely non-essential complexity.

Even consulting companies doing different projects can fall prey to that: I know lots of cases of internal frameworks/libraries/UI-toolkits being adopted to accelerate development, but they ended up being a bottleneck in development because the team that owned had a full backlog.

Re: Many software companies are a joke

#228

Here's something I learned. Yes working in big tech or a big company can have its fair share of red tape. You can either accept this and work as a cog in the system, or you can start to poke the sleeping bear. When you're overburdened with more meetings than time to do the work you talk about in those meetings, that's really on you, not the group of humans we call a company. If your boss starts to attach your perform…

I 100% agree. It's about creating your own oasis. There will be friction from everyone around you, the only way to overcome it is by producing results and being very clear about your intentions.

Also don't be surprised if your manager / co-workers around you forget agreements that have been made. Occasionally you might have to compromise, other times stand your ground.

Moreover there is a fine line between poking the sleeping bear and acting like a prima-donna because things are beneath you. You can't always work on the most complex, or interesting projects. Someone has to fix the defects, produce the blue widget, now that the red widget is working.

Personally I try to alternate between working on "cool" things and a boring but relatively important thing. That way I support the team, but also make 10x progress on some things.

Meeting wise, I block out 4 hours a day (if I can) in my calendar. If you are using Microsoft Outlook you can setup Focus time. There are days that I do end up going to meetings during my focus blocks, but I consider it a choice.

Of course I have had multiple honest discussions with my manager to manage expectations on both sides. Figuring out your manager's main needs / goals can help a lot in those discussions.

Re: Many software companies are a joke

#229
post #152

Earlier quoted context omitted.

> I hate meetings and overly complicated project coordination just as much the next person but there is also danger in wanting to do ‘cool stuff’ - imagine a dentist who is passionate about pulling teeth out. There was a case here were an (employed) dentist was apparently bored and started to drill and fill perfectly healthy teeth. Iirc, criminal charges were filed. Malpractice because bored (or feeling undervalued/u…

What are some estimates for the likelihood of these behaviors? In dentistry? 1 of every ... ? 1,000 teeth? More? Less?

Not sure how many good studies there are on it, but the likelihood of an unnecessary operation occurring are strongly linked to that months financials.

https://www.theguardian.com/society/2000/apr/16/futureofthen...

Re: Many software companies are a joke

#230

I was reading https://danluu.com/sounds-easy again today, and when reading this article I was reminded of a particular section: "Everything we've looked at so far is a technical problem. Compared to organizational problems, technical problems are straightforward. Distributed systems are considered hard because real systems might drop something like 0.1% of messages, corrupt an even smaller percentage of messages, and…

Well said. I think the key point you make is that we are paid to maximize the value of the business . If the business isn't profitable, we could all lose our jobs. Too many IC feel that if the company isn't maximizing their personal effort they are inefficient and wrong. However, sometimes more value can be added by NOT writing more code or more documents. It is sometimes more valuable to throw away a bunch of comple…

It's kind of trite to say that though. It's the business's job to ensure that the skills and resources at its disposal are put to good use, not yours.

We're not all a bunch of mini CEOs.

Post reply on HN