Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The decisions reg UI frameworks are largely due to internal political conflicts, mostly between DevDiv and Windows.


They have a lot of staff turnover too, and each generation of new SDE has less of a clue how the old stuff worked. So when they're tasked with replacing the old stuff, they don't understand what it does, and the rewrite ends up doing less.

That was my impression of one of the major problems when I worked there 2008-2011. But I don't think it's just one problem.


I think that because their total compensation is lower than FAANG, especially at senior levels, and they are seen as uncool, they sometimes have issues retaining top-notch talent. It's paradoxical, because MS Research is probably the best PLT organization in the world. But they have failed to move a lot of that know-how into production.

Besides, because it's an older company, it might have more organizational entropy, i.e. dysfunctional middle-management. As you say it's probably several other causes too. But still, hard to understand how they can create F#, F*, and Dafny, just to name a few, and fail with their mainstream products.


> dysfunctional middle-management

I thought about this a lot while working at a high-growth company recently.

Decided that regular (quarterly) manager rankings (HR-supported, anonymous) by 2-3 levels of subordinates is the only way to solve this at scale.

The central problem is: assuming a CEO accidentally promoted a bad middle manager, then how do they ever find out?

Most companies (top-down rankings-only) use project success as their primary manager performance signal.

Unfortunately, this has 3 problems: (1) project success doesn't prove a manager isn't bad, (2) above-managers only hear from managers, and (3) it incentivizes managers to hack project success metrics / definitions.

Adding a servant/leader skip-level metric is a critical piece of information on "On, this person is toxic and everyone thinks poorly of them, despite the fact that they say everyone loves them."


Sounds a like a great solution, adding random skip connections so that information flows from the bottom to the top of the hierarchy.

Certainly, few companies have managed to avoid this trap. It's largely an unsolved problem.

I've often met managers and execs two levels above me that had a completely delusional view of what was going on below them due to lies spread by middle-management.


> completely delusional view of what was going on below them due to lies spread by middle-management

Corporate dysfunction made more sense to me when I realized higher execs, because of span of control, are too busy to dig into any issue themselves.

Consequently, it's trivial in most orgs for the only information path to be through managers.

Also why I think more effective execs tend to have parallel investigation resources. E.g. their do-anything assistant who they task with fact finding


You also probably couldn't pay me enough to work in the kind of environment that produces such buggy software as Microsoft teams. A message based app which can't even guarantee delivery of messages, or synchronization across devices isn't a good sign for management and delivery.


I was a unix head at the time and ran OpenBSD on my personal Thinkpad. I figured a stint on the Windows team would broaden my horizons and expose me to differences. It did that. I don't regret it. I did in the end feel that the company was not my vibe, but I respect and appreciate some of what came out of there.


Back when I was there, part of my calculus was that cost of living in Seattle was cheaper than the bay. It was about 35% cheaper back then, according to regional CPI data I looked at at the time. Not sure what the difference is today. I believe housing is still substantially cheaper.

I think a few years after I left when more Big Tech opened offices in Seattle, competing companies started paying Bay Area salaries for Seattle living, removing this argument. I haven't watched this closely in recent years.

But fwiw, I was able to save and invest a lot in my Seattle days, despite a salary that was lower than in the bay.


Seattle cost of living is still significantly cheaper than the Bay Area. A lower salary goes even farther given the lack of state income tax, too.


But in a world where Amazon prices are the same, car and gas are the same, cost of living is just rent?

Housing makes a huge difference, but there is also the cost of groceries, dining out, etc.

Basically the housing price difference can mean buying a nice house close to your job vs renting a room in a share-apartment.

Best of both worlds is to save in a high-cost area then move to a cheaper area.


Not sure what you're getting at. Housing is the main cost, and is drastically cheaper in Seattle. Food in Seattle is a bit more pricey.

Housing is just one component, there is a lot of other stuff that has equal price: if you order stuff from Amazon the price is the same, if you buy a new car the price is the same.

State and local taxes can make a significant difference for general goods, and especially car purchases.

Amazon also isn't a restaurant, and while they do sort of sell groceries through Whole Foods and Amazon Fresh, those are again priced locally.


Because those languages were created at Microsoft Research, not DevDiv nor Windows.

All different business units.


Is compensation really the issue? Like, people earning 160k simply can’t take a dive into the OS source code and make proper fixes, but people earning 250k magically can?

I don't know. I know there are a lot of people who want to work on the OS source code, given the chance, but need some hand holding in the beginning. Companies in general are not willing to give them the chance, because they don't want to hand hold them.


I think uncompetitive compensation is the dominant factor in Microsoft’s decline. Up there with stack ranking. They claim that it’s 30% cheaper to live there but then they go and capture most of that 30% for themselves.

It is my opinion that developer ability is on a Pareto distribution, like the 80 20 rule when 80% of the work is done by 20% of the people. The job market is more liquid for those that are extremely productive so it’s pretty easy to for them to get a pay rise of 30% by switching companies. In the worst case you can often come back with a promotion because, like many companies, Microsoft is more likely to promote you when trying to poach you back. Doing a 2 year stint at Amazon was quite common. The other problem is that when your best people leave is that the process is iterative, not only are you getting paid less but you are now working with people who couldn’t easily switch jobs. You start being surrounded by incompetence. Stack ranking, which I hear is still being done unofficially, also means that you put your promotion and career in danger by joining a highly productive team. So it is rather difficult to get highly productive people to work on the same team.

Being paid less, being surrounded by incompetence, and being forced to engage in constant high stakes politicking really sucks.


I still think there are ways to hand hold people a bit and grow an ordinary engineer to a better one who is fit for system programming in maybe 12 months.

Otherwise as you said the only way is to offer the best compensation so that people don't leave. But again those people probably would leave for different reasons (culture e.g.).


Compensation is the easiest way and probably the most essential. It is hard to maintain a good culture when your best keep getting poached away with large sums of money. If Microsoft was the only game in town then sure they could get away with paying less, but they're not so they cannot.

Yeah you have a point. I wonder what the NT kernel team looks like nowadays.

Compensation can be the issue if the cost of living is creating problems. If you need 150k to just live in an area, 160k is not motivating while 250k gives you the peace of mind to focus on the work, not just on surviving. If you live in Bangladesh, the difference between 160k and 250k is almost meaningless.

Also compensation is a sign of respect and influences motivation. If you position yourself lower in the market, there is no reason to deliver top results for less money, correct? This attracts mediocrity, especially in management, and slowly kills companies. Usually there is no way back, no large company can replace the entire management and once and the mediocre ones will reject new, better ones.


It's not about the amount, but the type of people who stay when they could move to a higher paying job.

And the fact that it's impossible to poach people from companies offering a higher salary than you do. Unless you give them something more, like better conditions, or "mission", or the idea to work on something cool, but I don't think any of those apply to Microsoft.


If you could earn $250k why would you settle for $160? There are reasons people do but still money is a powful signal

A kernel engineering job is much more fun than yet another backend web gig. A large part because when working with typical web coding people do not want you to do actual software engineering.

But the actual issue is that if you underpay people they will not feel respected and valued so they will either not be motivated or leave. So you cannot pay below market, but you do not need to pay FB salaries either.


Theoretically (never happened to me), I'd definitely do a $100K Windows kernel, or whatever kernel work, over a $150K DE job that I currently have (I used to have a $220K DE job too and I won't hesitate to switch).

I can confirm, the guys still around for WinUI team and related frameworks, always appear clueless when posed questions about Windows features they were supposed to know about.

Just go watch a few recordings on their YouTube channel.


Raymond Chen tries to document it, but he's just one person.

https://devblogs.microsoft.com/oldnewthing


From the outside looking in one wonders why this is allowed to continue. Microsoft’s old school “developer tools for money” business is slowly dying (because Visual Studio proper is less popular than its ever been since so much is targeting web), you would think they’d reorganize and move .net and GitHub and stuff into their cloud team and yeet whatever toxic leadership is preventing Windows from using Microsoft’s own frameworks.

IIRC .NET was banned from core Windows components after longhorn died, but its been 20 years. .NET is fast now, and C++ is faster still. Externally developed web frameworks shouldn’t be required for Windows.


It’s a largely dysfunctional org creating largely dysfunctional software, I.e. Conway law. Dysfunctional orgs tend not to be capable of fixing themselves, especially without external threat. Satya Nadella, like many CEOs, seems mostly interested in impressing his peers and these days that means fancy AI, before that it was Quantum chips.

Microsoft has produced some great technology and when I was last there I was definitely focusing on getting as much of the good stuff out into open source as possible.

Back in the early V8 days the execs imagined JavaScript would keep getting exponentially faster, I tired to explain with a similar investment anything V8 could do dotnet could do better as we had more information available for optimization.


Yeah, .NET is actually an impressive piece of tech. They have F# too which is a really solid programming language. And then they chose React of all things to build core OS UI.


Because .NET is under DevDiv, F# came from Microsoft Research, and the OS is under Windows team.

Windows team even refuses to have managed bindings for DirectX, like Apple and Google do on their platforms.

Managed DirectX and XNA were pushed by highly motivated individuals, and lasted only as long as they stayed at Microsoft.


Longhorn was politics, then Google ate their lunch on mobile with Java and JavaScript userspace, across two platforms.

DevDiv is a "here C++ rules!" silo, even the Rust adoption is being widely embraced at Azure, less so on Windows team.


Yeah, as far as I understand it, that politics is: Sinofsky entrenched NIH on every team that he touched.


Just curious what is DevDiv? Tools division?


As I understand it, .NET, developer tools, and VS.

Basically you have tight OS integration vs developer friendly cross platform.


I think it also includes GitHub now.


I believe GitHub is under a different group (CoreAI), not DevDiv.

Thank you!



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: