Please stop putting salespeople in charge of highly technical product companies like Sonos. I'm so glad that Tom Conrad is an engineer by training. I hope he can turn this mess around.
The key technical change that broke Sonos was abandoning their reliable UPnP (Universal Plug and Play) system for device discovery in favor of mDNS, while also shifting from direct device communication to a cloud-based API approach. This new architecture made all network traffic encrypted and routed through Sonos cloud servers (even for local operations), adding significant overhead and latency, especially for older Sonos devices with limited processing power. They also switched from native platform-specific UX frameworks to a JavaScript-based interface while moving music service interactions through their cloud instead of direct SMAPI calls, resulting in slower performance and reduced functionality.
For a more extended discussion, see this excellent LinkedIn post from Andy Pennell, a principal engineer at Microsoft with a deep technical understanding of Sonos systems. He created one of the most successful third-party Sonos apps for Windows Phone and worked directly with Sonos on their official Windows Phone 8 app.
I don't think having a sales person in charge was the problem.
The problem is the fundamental disconnect between what's good for users and what's good for the company. The company wants you to have to pay them money every month and control how you interact with the product, so that they can be a services company with recurring revenue.
The consumer wants a device that they buy once and it just works.
I have experienced this most acutely with the most recent round of macOS and iOS updates.
Nothing Apple is shipping seems to be for me, the user. Rather it’s a grab bag of crap “AI” for Wall Street, ways to make it harder to run software of my choosing, and wholesale trashing of perfectly fine UX to cram in whatever useless feature some PM landed for their promotion.
I could say a few hundred things much worse about the direction of windows 11, which is even more obnoxious than Apple, but then I’d have to relieve the horror of being forced to submit my email address to Microsoft to install the damn OS.
Day by day I feel the devices I’ve spent a huge sum of money on no longer belong to me. I’m getting really fucking tired of it, and something has to give.
> but then I’d have to relieve the horror of being forced to submit my email address to Microsoft to install the damn OS.
all it takes to install Windows 11 without an account is to press SHIFT + F10 on the "Connect your internet"-screen and execute this command: OOBE\BYPASSNRO
never in my life have i linked an MS-Account to my personal windows, i always use a local account.
We're on a tech-focused site where someone mentioned that they don't install windows, because they don't want to login with an online-account. i agree that my described work-around is not made for the common enduser and i hate that this feature is so hidden, but i think executing a single command you find after 30 seconds of googling is not too much to ask for from a tech-adjacent person :)
i see posts on here of people reverse-engineering firmwares, hacking together new things, finding and using exploits etc., not sure why installing a windows seems to be a huge topic, then.
it’s actually not even as “simple” as that comment they’ve changed it to be a bit more obtuse to get to the command part, exemplifying exactly why going along with it is a problem.
sibling, we are on _hacker_ news. if a single command is too much to ask for, i don't know what to think.
ever installed Linux? takes exponentially more knowledge than this windows-local-only workaround.
i'm sure that management is aware of this feature, as it exists for years now and can be trivially found, it's not like this is hidden somewhere in a vault, you know. Same as MAS.
i'm not even a defender of Windows and only use it at home because i game, but if i see that someone has never installed a windows just because they don't want to give M$ their e-mail address (hope they don't have a github or linkedin account, but, you know...), then i want to give them the hint they need :) i use them same functionality to install windows for my parents etc., as they want to have local-only accounts as well. even without this weird work-around, i would still be the one installing windows. OS installation is not hard, but already too difficult or confusing for lots of endusers.
not sure why you chose to reply in such a snarky tone :(
i understand that. i have a linux server at home and linux is my niche at work. the problem for me is that i game a lot of different games and although gaming on linux technically works, i got sick of debugging basically every game and loosing performance. thus, sadly, i am forced to use windows. of course with an offline account, debloated etc.
Microsoft knows about this. Its why they included the option in the command line. The fact that Massgavel's activation scripts still work on windows is telling of how much they'll care.
At what point in time were “kids today” into computers? If it wasn’t phones, it was video games or comic books or serial Dickens. It’s always been a subset who want to play with the tech beneath.
I did not know that, thanks. But still - if I have to research now how to do that it‘s still going in the wrong direction, no? Besides, it‘s rare that Apple gives a choice, usually you have to adapt at whatever they decide.
Bluetooth is horrible. I see spinning loader (connection indicator) even when I switch bluetooth off. It’s been stuck at it for days. You’d think that this would be core functionality and ultra stable by now.
Mail has been terrible since inception. It’s just more terrible now. Photos in iOS 17 was fantastic but the new version in iOS 18 is unforgivably bad. It’s the new “pc load letter”…
Mail got category buttons on top that split your inbox so now to check your mail you have to click around because shipping notification are in a separate list from work emails.
Photos had a perfectly fine interface with tabs that got changed into a long list of often redundant categories. Thankfully it can be customized a bit.
New control center (wifi toggles etc.) was replaced with a customizable grid of widgets that is buggy, slow and looks ugly and unprofessional in comparison with the old interface. Gimmick.
Home screen icon size and color is customizable now and it looks out of place. Gimmick.
If you have a dark theme enabled then icons in settings become themed and look different than icons on the home screen with is weird and inconsistent with the rest of the interface.
All animations were reworked and feel like crap. There is a delay to every action and it feels like animation smoothness takes priority over interface responsiveness. Home screen swiping animation stutters every time.
Even though there is not a single new feature available for EU users other than the interface changes the entire OS feels sluggish, bloated and unfinished.
Performance is terrible. This update made my iPhone 12 slow down to a crawl. Feels like running Vista on a Windows XP machine and since they dropped security updates for iOS 17 I had no choice but to upgrade. This combined with the recent news about iPhones listening to people at homes makes me want to get rid of my phone entirely. I don’t want a new iPhone and I sure as hell don’t want an Android.
It's called monopolization, and it's dependent on those companies selling products that you can't switch for another competitor.
Or, some times it's plain simple cartelization, making sure no competitor is better. That seems to be the case with smart TVs for example.
It's good to have a word for the impact it causes, but focusing on that novelty makes it looks like it's a new phenomenon that we don't know the causes or how to fix.
That is not in the OS. I also sort of suspect they're being hired as a prank because there is basically no power structure for them to have control over anything. Execs and designers have all the power.
(Note: there are "EPMs" but it's a totally different thing.)
> The company wants you to have to pay them money every month and control how you interact with the product, so that they can be a services company with recurring revenue.
Yes! This pervasive trend has nerfed so much consumer tech. I simply won't buy any more hardware that relies on proprietary clouds
I haven’t owned Sonos gear in a long time, but certainly back in the day they had just amazing products. That SUB where it was so perfectly balanced? They did a demo (that you could easily reproduce at home) where you could have it driving “call the cops” noise disturbance bass without upsetting a nickel set lengthwise on top, just a great unit and not the only one. Awesome stuff.
But while superior products at a price point can capture a bunch of share, after that they grow at the rate of the market. Those markets have “matured”.
For whatever reason we don’t as a society let “tech” markets mature. We demand growth long after everyone is satisfied.
This is where ideas like “growth” and ideas like “useful” diverge: raise your hand if you like Facebook or Google in 2025 more than 10-15 years ago.
Sonos (and I’m aware of the structure) “grew” right out of a sustainably profitable business with happy customers.
I think you're underselling the technical complexity of doing what Sonos did. It was a pretty impressive feat for them to do what they did over WiFi. The reason your Google Home can do it is because, while it's a pretty decent technical challenge, it's not insurmountable, and Google decided that the price tag Sonos put on themselves was more expensive then Google dedicating a reasonable quantity of their highly talented engineering staff to recreate the technology.
I think that's the kicker. It was revolutionary when it came out, and it's a solid technical solution, but Sonos was novel over a decade ago.
Every novel invention becomes commodity over time. The issue is that, instead of trying to invent something new, they’re adding gimmicks and present it as growth.
True, but as the comment a few above mentions, “we demand growth long after everyone is satisfied.” Why even grow at all once you’ve achieved a great networked speaker? If the product is mature, everything after is gimmicks especially weighed against user satisfaction, the ultimate goal.
The market has matured, but as of a year ago, there isn't another solution that I could drop in that could replace my SONOS system. SONOS is so far ahead and had to establish themselves by solving for so many fringe use cases that they are generally the only ones who have things like the connect:amps to bridge wired outdoor speakers and architectural in-ceiling/in-garden speakers within the same ecosystem
I'm sure that at some point, Samsung or Google or Sony or some upstart will catch up, but it will be a long time before someone eliminates SONOS from contention despite this multi-year setback
HEOS-capable gear from Marantz and Denon cover a lot of the applications you referenced. I decided I would never buy another Sonos product after the S2 rollout, and I now have a mix of eleven Denon and Marantz receivers driving both built-in, freestanding, and outdoor speakers of my choice all over my house.
HEOS is amazing for the size of the dev team, which I think is a couple folks somewhere in a large garage in Minnesota[0]. The amount of things they never touch is amazing. I appreciate the stability - my HEOS 1 speaker is still working, streaming tunein and tidal without issues - but when it comes to the app, it's borderline stagnation at this point.
They had a fairly unique and high-quality product in the early days.
It just did’t evolve very far or very fast, or even adapt pricing to better fit a rapidly changing market.
They switched away from a focus on multi-room hi-fi (or at least mid-fi) audio and users with their own hoard of digital audio to focus more on streaming services and chase the trend of little monophonic speakers. The higher-end devices remained good but became ever more niche.
Then they broke everything, particularly customer trust, with the app update.
Heh, this thread reminded me that I own Sonos speakers that I haven't used in several years because at some point they updated and I needed to install an app or make an account or something to use them and never did.
So while it's maybe neat that they solved fringe use cases, it's unfortunate that they failed at the basic use case of "just easily play audio from my phone"
You can always short SONO. It'll probably muddle along for 5+ more years until someone buys it up for the brand name. There just isn't the market for their speakers that there used to be.
That's a general rant against publically traded companies. I'm specifically asking about the original posters take that a company that makes speakers specifically shouldn't be publicly traded. Like it sounded like they thought a speaker company couldn't be big enough to be on NASDAQ or something?
> For whatever reason we don’t as a society let “tech” markets mature. We demand growth long after everyone is satisfied.
That reason is people like more money than less money. No one logs into their brokerage account and invests in Sonos because they have a great product that is growing (or shrinking) at the rate of the speaker market.
People want to see their year end report at least equal the broad market returns.
The directive for all business leaders is to hit those benchmark returns, not pump out a solid speaker for however many years.
And if a private business owner operates their company in a way that lags the market’s returns, then they are basically doing charity work. They’re going to have to pay a lot of cash compared to their competitors who can use RSUs to incentivize employees.
Well, we could at least examine the idea of paying executives over a longer time horizon.
Clearly everyone likes money. We could pay them for good things rather than the transient illusion of good things.
Yes it would be imperfect. No it wouldn’t be worse than this mess. Bell Labs didn’t invent the transistor on this model, JFK didn’t send us to the moon on this model.
This “privatize the commons of a century of effective public/private partnership” model is going rather shit in fact.
>Well, we could at least examine the idea of paying executives over a longer time horizon.
Every publicly listed business already does this, in the form of stock grants and options with various targets to hit at various intervals. See bottom of page 51 for an example:
It’s where all those rage bait headlines of extreme executive compensation come from, from maturing equity granted before the stock appreciated a good amount over the course of a few years.
There is absolutely no basis for the sweeping, extraordinary claim that “every publicly listed business” is managed and incentivized around sustainable long-term value.
I hate to be aggressive but it’s really pretty godawful that people let absurd, corrosive claims like this fly. There is a creeping normalcy to weird Art Laffer talking points and weird Milton Friedman Freak Offs with no evidence. Things suck for the typical person since Dick Cheney and Art Laffer started “cutting taxes”.
You’re wrong in a way that demands a complete ignorance of everything from news to history to human empathy.
This mindset needs fucking therapy and where therapy fails the legal system for a fucking change.
> Well, we could at least examine the idea of paying executives over a longer time horizon.
This is not
> There is absolutely no basis for the sweeping, extraordinary claim that “every publicly listed business” is managed and incentivized around sustainable long-term value.
There has been plenty of research into figuring out how executive compensation can be tied to longer term performance, but “sustainable long term value” is such a nebulous term, I have no idea what it could mean other than a fantasy where people are able to magically measure everything they want.
I only meant to highlight the fact that it is standard practice at publicly listed businesses to hire consultants whose job it is to figure out how to align executives and reward them for achieving long term goals.
Maybe you think the current timetables are not long term enough, or the measures are not correct, but it’s not as if cash is being handed out Willy nilly.
NVIDIA is posting profit margins up there with the Dutch East India Company (check it) on the back of the “agents” that are about to obsolete not just programmers specifically but white collar workers generally.
We’re handing out trillions in cap for press releases.
What on God’s green earth the fuck are you talking about?
Willy nilly? Will Wonka with a chocolate factory is closer to earth.
And NVidia is pretty much a monopoly in its field like the VoC was, only not legally bound. But the AI boom is pretty much a tulip mania at this point so I would hedge my bets.
> For whatever reason we don’t as a society let “tech” markets mature. We demand growth long after everyone is satisfied.
The reason is tax law and it applies to all companies not just tech. Removing the double-taxation of dividends would fix so much of our economy.
If you run a stable, no-growth but profitable company, and each year return the profits to the owners (shareholders) in the form of a dividend, that's bad because the income is first taxed when the corporation declares it as income and then again when the shareholders receive the dividend.
If instead you don't issue the dividend, but re-invest to grow the company, then the value of the shares can increase without creating a taxable event for the shareholders.
We could avoid a lot of the boom-bust cycles, enshittification of products and other economic problems if we just structured tax law to encourage stable, profitable companies issuing boring predictable dividends instead of our current system that requires infinite growth.
>that's bad because the income is first taxed when the corporation declares it as income and then again when the shareholders receive the dividend.
Why is that bad? The first case is income to the corporation and they pay income tax on it. The second is income to the shareholder and they pay income tax on it. How is it different from the corporation's employees paying income tax on money received from the corporation?
>If instead you don't issue the dividend, but re-invest to grow the company, then the value of the shares can increase without creating a taxable event for the shareholders.
That's true as long as the shareholders never sell their shares. Once they do, it's a taxable event like the dividend.
> How is it different from the corporation's employees paying income tax on money received from the corporation
The money paid to employees is only taxed once.
We (pretty much everywhere) tax companies on their profits, but individuals on their income. It seems unfair, it leads to some weird but accepted inequalities (like the cost of renting a house vs buying), but no alternative seems to work.
Or tax sale of shares the same so there is no loophole and you can either spend it on something useful or lower taxes for everyone instead of just for shareholders.
This is nonsense because companies can and do replace dividends with share buybacks.
While sometimes criticized as "executives juicing the stock price because that's what their incentives are tied to", in fact investors recognise that buybacks are economically equivalent to dividends, but tax-advantaged (for exactly the reasons you gave, they don't create a taxable event for the shareholders).
One problem with buybacks is it's socially difficult for companies to replace dividends with buybacks - by convention, dividends are usually issued on a regular schedule and buybacks are ad-hoc, so "cutting dividends" is seen as a sign of a company that no longer has reliable profits. But that really is just convention and it would only take a few companies switching to normalize this.
As a music fan one would think I'd be their target group. But I haven't even considered their product and classified it as "some smart crap that is an excuse to syphon data out and lock me in". So all stick, no carrot.
It never really was that at the beginning. It was a good, locally-controlled system which would build itself a wifi mesh (back when that was unheard of) be configured to pick up things like samba/cifs shares and play your library, with some really neat features like combining speakers into stereo pairs or surround systems, and then playing your music and any input devices arbitrarily across these zones you have set up.
At some point they integrated spotify and other similar services, which risked what you talked about, but was fine. There are even third party controller frontends available on linux.
But recently (mid 2024) they delivered an absolute stinker of a new app which routes everything via their cloud, fails to load half the time, barely responds, and looks suspiciously like that grab for control you imagine
But Sonos doesn't sell any services/subscriptions, just products, correct? So even if they wanted to have recurring revenue how would they do it? They sell gadgets?
They sell "Sonos Radio HD", a subscription based radio service which is supposed to be an upgrade from their free offering.
But as much as I dislike the "new" app, it doesn't push subscribing to this service, so I'm not sure they absolutely want device customers to become subscribers.
I'm sure it's one of the biggest questions asked by the Sonos C-suite: how do we get recurring revenue or make the moat wider. But that goes for every product company in the world.
Engineers are in a better position to understand what the customer wants and needs. Salespeople are there to sell their product, and fundamentally don't need to understand what the customer wants, or needs.
Give a good salesperson a handwavy outline of something to sell, and they will sell it. They don't need technical accuracy for success. Yes, this is bad for customers, and makes life harder, and results in ridiculous, counterproductive, infuriating situations for IT staff, engineers, and other people who have to deal with the technical realities of every day business.
A salesperson can just mash psychological buttons in manager's brains, and they'll make the sale. The consumer, in enterprise level markets, is hardly ever the team or individual in charge of operating the technology. The consumer is the manager, or managerial team, looking to check boxes and shuffle numbers and spend $X on Y department, for which they get rewarded for a wide array of arbitrary outcomes, almost none of which have anything to do with the practical impact of the product in question on the people who end up most affected by the purchase.
If an engineer with a solid understanding of the product being sold is in charge, he's in the best place to rein in the sales and marketing teams, and to direct development based on customer reality. This probably results in lower profits, overall, but a better product, and a better reputation in the long run.
> Engineers are in a better position to understand what the customer wants and needs. Salespeople are there to sell their product, and fundamentally don't need to understand what the customer wants, or needs.
Why do you say that? My gut reaction is that the opposite is true. Salespeople must understand their customers' wants and needs in order to effectively sell! Engineers are generally a step or two removed from the customers. This may be an unpopular take on HN but I'd wager the people who spend time directly with the customers have a better chance at understanding what they want. Taken a step further, customer support probably has the best understanding of their markets' needs!
I'd go as far as to say that the role doesn't matter, it's the attitude of the individual.
I've worked with a few developers AND sales people that didn't give a hoot about what their customers thought. In the case of Sales, they only cared about making their targets. In the case of the devs that didn't care, they spent 99% of their time doing silly (in my opinion) arguments about frameworks, design patterns, and whitespace and formatting rules in CI. Not that things like design patterns are inherently silly. But if they don't result in a better customer experience (via more stable and maintainable software, for example), then it's a waste of time.
I'm a developer by trade but have ALWAYS had an attitude of "it only matters if it's useful to the user" – and have butted heads sometimes with developers on which features to prioritize.
> Taken a step further, customer support probably has the best understanding of their markets' needs!
People working in customer support, from my experience, sort of see the anti-survivorship bias working in action. Not many people call up to say how well something works. I would agree with you though on good Salespeople (ones that do try to understand what customers need and all that, not necessarily ones that sell the most) knowing what the customer wants/needs.
> People working in customer support, from my experience, sort of see the anti-survivorship bias working in action.
I used to see this all the time at an old job where my team worked on open source client libraries for using the main product that our company sold. A decent number people seemed to think that an increasing number of tickets being filed against one of the libraries was a sign that users weren't happy with it, but it always seemed obvious to me that you couldn't easily conclude that; you might have 99 happy users with no issues for every 1 unhappy user who filed a ticket, or you might have literally only unhappy users and nobody without issues. On the other hand, getting literally zero tickets might mean that you have plenty of happy users, or it might mean you have basically no users at all.
I'd often talk to younger engineers who were interning on the team or recently joined full-time about how this dynamic informed how I approached my job; usually, we'd only hear from users who had issues, so the "goal" in some ways to was to make the software so good that you'd never hear from them. If you did hear from a user, that was a valuable opportunity where you might learn something you could do in the future to make things better the first time.
> so the "goal" in some ways to was to make the software so good that you'd never hear from them.
Yes. There are people who talk about product experiences that delight or whatever. Nah, the ultimate experience is one that's so flawless, so frictionless that it's completely forgettable. The user doesn't want to remember anything. They have a problem a/o need, the goal is to make it disappear w/out a trace.
In my experience it's more like customer-facing people, sales and support, get to know the customers needs and pain points, while good technical people knows the limitations and possibilities of the systems involved. By working together the sum can be greater than the parts.
As a dev I strive to talk to sales and support for this reason. It's not seldom I can do a small change that drastically improves the user experience for one or more clients, be it existing or potential.
Too many developers only focus on the specifications, and don’t try to understand the specifications by trying to understand the user. Instead they complain that product owners, product managers, designers, or analysts fail to give the proper specifications. I don’t see many developers really trying to understand their users. But this may be different per domain…
> the people who spend time directly with the customers
Unless engineers spend time directly with customers, something is broken in the organization to begin with. If salespeople and customers dream up solutions and then hand the task to produce this solution over to engineers, then that business is frankly doomed.
Your gut reaction is something salespeople play off of. I've been in the sales position before, handling the people in charge of making the purchasing decision, selling them bells and whistles they absolutely didn't need, but giving them the emotional satisfaction of a "successful" transaction, leaving with a sense of victory, that translated into a strong relationship and many years of repeat sales, with incremental upselling over time.
Good sales, ethical sales, aren't parasitic. A vast majority of sales in todays markets, especially in enterprise markets, are parasitic. The salespeople are interchangeable. The ones that make the most money are the ones most willing to be parasitic. The sales script is targeted and tailored to the intended audience, which in most large companies, is several degrees of separation from the eventual user of the product. You don't need to know what the end user needs. You need to know what the person in charge of buying wants, and that's ultimately emotional validation, hope, a sense of "innovating", a feeling of victory in pricing negotiations, being respected and treated well, and so forth. You can run them through the wringer with sales engineers and migrations after the contract is signed, and even if the end user and the product engineers recognize that your product is the wrong tool for the job, that won't matter if the buying manager is emotionally satisfied with the transaction. People will bend over backwards to justify what they know is "right."
A salesperson CEO will make more money, but will make the world a shittier place, because they're the cotton candy of management. They'll burn credibility and reputation in exchange for profit, kick the can down the road for someone else to clean up the mess later.
Sure, in a healthy, respectable, ethical, functional company, you'd be right, and the CEO would also be the best salesperson for the product, because they'd know it, and the customers, inside and out, and be able to explain and demonstrate exactly what was necessary and why, and justify all the costs and benefits.
This is a world that has Goodharted the measure of success - profit - and empowered people in the execution of shitty behavior. The market rewards higher profits and punishes "failures," often completely out of sync with quality and merit.
We don't live in a good world - companies that behave like you describe would be wonderful. We live in a thoroughly enshittified world, and a whole lot of people "earning" a whole lot of money are in between you and any meaningful change.
From Apple and Microsoft on down, companies want endless, infinitely increasing returns year over year, and they will do anything that isn't explicitly illegal to get it. They'll also do illegal things if the cost of getting caught is less than the profit earned. Alignment with end user needs, benefit to the consumer - these are far down the list of things meaningful to the systems and people making decisions on how money is spent. The job of a salesperson is to understand that system, and exploit it for the benefit of their company.
Not sure if I agree with an engineer inherently being better here.
The ideal case is having leadership who uses the product, or at least is willing to walk in the shoes of an end-user. Plenty of engineers do not do this either.
Anecdotally, having worked at multiple small-medium companies with a variety of leadership backgrounds, the worst have been sales background. Engineering backgrounds have ranged from OK to great.
- I knew nothing about what the healthcare industry needed in the three SaaS companies I worked for including software for health care workers dealing with special needs kids
- the various “enterprises” mostly in the edtech or state and local government space in consulting.
No, the person running the company has expertise running companies. Customer understanding lies with designers, analysts, product owners, product management, but also sales: what is the pain we’re addressing, how can ensure the customers really understands the consequences of not addressing the pain, how can we ensure the customer sees our product is the best to address their pain.
> Engineers are in a better position to understand what the customer wants and needs. Salespeople are there to sell their product, and fundamentally don't need to understand what the customer wants, or needs.
There's no reason to believe an engineer would understand the customer needs more than a salesperson. I know a lot of engineers who would do literally anything to avoid dealing with a real customer. At the companies I've worked for, engineers don't even talk to customers if there isn't a specific, technical issue they need to be there for. Meanwhile, salespeople actually talk to customers, probably more than anyone except support.
> Engineers are in a better position to understand what the customer wants and needs. Salespeople are there to sell their product, and fundamentally don't need to understand what the customer wants, or needs.
I think you have that backwards. Sales people absolutely need to understand what they customer wants and needs, or they won't buy it. Engineers just know what they want to build because it's what they want.
But really, Product Managers are the ones who are in the best position to figure it out. They get input from sales, customer service, and engineering, and produce competitive research, and then prioritize from there.
> Engineers are in a better position to understand what the customer wants and needs.
I assume you are an engineer? I am too, not judging :-).
Everybody tends to think that they are in a better position to know how the product should look like, I think it's a normal bias.
Not that salespeople are better. I hate the direction Sonos chose. Just saying that engineers are not always the best at understanding what customers want and need (if you asked me, I would say that everybody needs Yubikeys, and yet people actively fight to keep their right to reuse the same weak password everywhere :-) ).
In all disciplines you find more not so brilliant people than truly brilliant people. I am a software engineer, but it happens that I cannot understand how our UX professionals have designed our product's UI. Or if I understand it I find it awkward. Now you could say that's because I am so much below average, that I am a hopeless case... But we get customer reports that they are more confused than I am. So having UX people is not silver bullet.
I think the solid understanding of the product and its users is the important part, not whether you’re an engineer or not. That understanding (or lack thereof) can and does transcend role.
> abandoning their reliable UPnP (Universal Plug and Play) system for device discovery in favor of mDNS
I don’t know about that part. UPnP is exactly the HTTP-abusing XML-laden layer-spanning horrorshow you expect from 2000s Microsoft where it was mainly supported, mDNS is a fairly compact and neat set of independent extensions to preexisting Internet protocols born during Apple’s short period of flirting with open standards. In a greenfield project, you’d need to show me some really impressive tooling to make me choose UPnP, because five minutes with the specs are enough to tell implementing or debugging the thing is going to be a nightmare.
(No experience with Sonos or their implementation of either.)
I had the same reaction, all the other parts of the parent comment sound bad but switching to mDNS seems like the one that should have been an improvement or at least neutral...
I'll second this. UPnP is wisely considered a bad idea and a security liability. mDNS usually just works and has been the foundation for several successful consumer platforms including Chromecast
UPnP generally or just UPnP IGD (frequently referred to as “UPnP” in consumer router UIs)? I’d imagine the primary reasons a smart speaker would want to use UPnP are largely unrelated to punching holes in firewalls and NATs (what IGD is about). And however distasteful RPC over XML over jury-rigged HTTP over IP multicast may be, it’s hardly inevitable that it must create a security problem.
Even if we’re speaking about holes, though, I feel like I must object to the broad description of that function as a security vulnerability, as any instance of that moves us that much farther away from a true peer-to-peer Internet.
Where are you getting reliable mDNS? I love the protocol on my own devices but good lord the Google Home ecosystem is terrible. Playing audio through multiple speakers at all, forget getting them in sync, is an exercise in frustration. And when I check by scanning mDNS it's always hung getting no responses from devices I know are there.
The literal Chromecast itself seems to be exceptional device that just works.
Been using mDNS for years in the Apple ecosystem. Never had issues, except maybe 5-6 years ago with AirDrop but been rock stable since. Using airdropping, sharing screens, printing, audio, all kinds.
But it wasn't just a move from UPnP to mDNS with everything else remaining the same. They also moved to HTTP/WebSocket instead of UPnP eventing, added encryption.
While most complaints in this thread about the app all say "it's sluggish", with the initial release of S2 many had their systems that worked perfectly fine with S1 undiscoverable with S2. At the time all the advice on Sonos forums, Reddit, etc was "First check your router and make sure mDNS isn't disabled". Which caused a lot of people to have a kneejerk reaction of "wtf is this mDNS shit and what was wrong with the "old reliable UPnP"
HTTP/WebSocket relies on a stateful connection! Man that strikes me as so not smart!
Comedically, UPnP was also HTTP, but not as stateful as websockets. Often httpu, http over UDP. And for service discovery, httpu over multicast, pretty much like mdns. I'm surprised that s2 would have broken, given that I'd expect s1 to also need multicast. Maybe Sonos setup a pinhole router via upnp-igd, so devices could talk to each other inside the network, even if multicast was off? It's be interesting to know if any upnp-igd rules were created in s1.
Ditching a native framework for something JS-powered and running everything thru a cloud server sounds like technical decisions willfully made by engineering leaders.
VSC is the least bad Electron app I’ve ever used, but (heavily subjective) it pales in comparison to Neovim + Tmux. It’s not even close.
Related: I was looking at WinRAR’s site last week after reminiscing about it with coworkers, and found that a. They haven’t really updated their UI since I last used it a decade+ ago b. The download is still 4 MB. THAT is why native is superior – if you know what you’re doing, you can get incredible performance with absurdly low filesizes.
Because I need the space for videos and games and that's why I have large storage. Not for tiny applications wasting 300 MBs because someone thought that an electron app would reduce engineering cost.
Aside from the fact that it shouldn’t take hundreds of MB to launch the simplest of apps, and that it’s incredibly wasteful on its face? Memory. Where do you think those bytes end up when you launch it?
I use VSC because some mature plugins only exist for VSCode, like Rust, and Microsoft pushing it for stuff like PowerShell, killing their ISE IDE.
And it only performs that well, because all critical code is written in a mix of C++ and Rust running in external processes, and they have ported text rendering into WebGL.
It's an interesting example, because the fact that it is js makes it trivial for most developers to make modifications to it by opening the Chrome DevTools. Even if you're not a js dev, you probably occasionally write some js.
I'm arguing that it's successful because any of its users can trivially hack something on top of it and distribute it, including things the original devs never intended or think is a good idea. In that way, its success mirrors Excel.
> From a documentation, examples, accessibility, tooling, and number of people you can get help from, JS wins
Maybe as a general purpose language, but for this specific comparison (extending editors). Elisp and Emacs wins. Vimscript is not the best plugin language, but the interation process is way better than VSC.
> Probably egged on by people telling them they had a much larger hiring pool if they went with JS (which is almost certainly true).
There are many VC funded companies here. How many of you felt pressured to pick a hireable language like JS/Python because if not you couldn't deploy your investor's capital? Like, if you had presented a plan of "I'm going to need 4 graybeards that know Haskell", you'd get denied for not thinking big enough.
Interestingly, Mercury [0] is VC-backed, and their backend is entirely Haskell. In an interview [1], their CTO mentions that it’s actually quite easy to hire for Haskell, as the demand is much lower than the supply, and, as he slyly puts it, “interest in Haskell acts as a decent proxy for baseline developer quality.”
So while the pool is larger for JS/TS and Python, that may not always be beneficial.
1Pass is a perfect example for my argument – v7 was amazing, and native. v8 has weird bugs, like refusing to open despite saying it’s working fine. As to memory, while I forget the consumption of v7, v8 looks to consume somewhere around 130 MB for the app, plus that again for a renderer helper or two, and then the browser extensions.
100+ MB for what is essentially an encrypted local DB with cloud sync and a GUI seems absurd.
That's an example of something that can be done well or done poorly.
AirBnB, UberEats and Facebook are all built with React Native and they have excellent performance.
Using a JS framework for your UI doesn't inherently mean it will suck. It can be done well.
If you expect it to be half as much work, you'll be disappointed.
If you expect it to be a tradeoff that makes some things easier and some things harder, and you're willing to invest in making it excellent, then it can be a very reasonable choice.
At least on iOS, the Facebook app is not and has never been built with RN. Some features were, but none of the core ones like News Feed. The biggest example of an RN-based feature is Marketplace.
It's not like the salesy-CEO was writing the code, there was still a bunch of engineers who said "hey this sounds like a great idea". Personally I want my CEOs to be on the sales side, make more money for the company. That being said you best have a good CTO/CIO that aren't sales-oriented.
Our company makes B2B for a rather technical niche.
We got a sales-oriented CEO who knows when to listen to us developers. It has worked very well for our company.
Being more sales-oriented he's found good business models and knows our customers well, and hence what our products are worth to our clients so we're not selling our products too cheap. This was the case before he took over from a more technical CEO.
While a CEO with an engineer background can certainly do well too, I think it's probably easier to find a good sales-based CEO that simply knows when to listen to their technical team. At least in theory...
> Employees claimed that Sonos’ desire to get new customers and please investors was becoming more important than ensuring that old hardware would work properly with the new app.
That sure sounds like this was a deliberate choice.
That said, I suspect Sonos' market has mostly disappeared. A decade ago I paid $400+ to get streaming audio; now a lot of people are happy with Spotify Connect and $200 google speakers or a $50 refurb echo 4.
It sounds like a secondary effect. They made a whole ton of really bad design decisions that ruined the product for current hardware, with breaking compatibility with existing kit being icing on the cake.
The new mDNS discovery mechanism works much better for me than the old one. I had two speakers that would constantly require reboots to be discovered with the old version but now they are 100% available.
Those would have been CTO decisions or at least recommendations as to the technical merits of the change, not the fault of the CEO.
Now if the CEO made the change for other reasons (usually financial, such as customer subscription lock-in) despite the technical downsides (which should have been presented by the CTO), then yes, in that case the blame would primarily fall to the CEO.
Nice article by Andy. It's astonishing that they released that magnitude of change, and that they didn't provide a way to roll back once it showed itself to be a car crash. It should have been an opt-in beta, then opt-out, and maybe then after the bugs are squashed, incrementally rolled out.
I understand why they'd to remove this big clatter of legacy protocols, simplify it, and encrypted everything. A tech-focused CEO would surely want that too, but perhaps might respect the amount of work and testing involved. What they forgot is that in a Sonos is a clatter of legacy protocols on top of speakers that are sonically "ok". Wasn't that their unique selling point? Why wouldn't a CEO with a sales background understand USP?
As someone pointed out: they want to turn once-off purchases into monthly subscription. Maybe. They see this enormous userbase and brainstorm ways to squeeze recurring revenue out of it, but ironically they ruin the product and turn an army of advocates into enemies.
This sounds more like a modern CTO felt the need to refactor the a big part of the codebase for the sake of it and if that wasn't foolish enough, they decided to not roll it out incrementally.
I'm not sure any single one if those was necessarily problematic so much as the fact they did all of transitions at the same time and perhaps didn't do enough diligence in testing and slowly rolling out to ensure parity. For instance they could have rolled out mdns support with fallback to upnp and perhaps iterated untill they knew for a fact mdns was finding all the same devices as upnp with similar or better latency. However it seems that's not what they did.
mDNS is used by all the major players in the iot space today and there is a reason for it. For instance I believe Chromecast uses mDNS for discovery. Routers have had a long time to work through any possible issues. New code will always suffer from bugs and I'm pretty sure that's been one of the problems they face more than anything else.
You blame the sales-oriented CEO for the problems but then point to a list of highly technical changes as the ultimate cause. A salesman knows nothing about these architecture decisions and would have trouble asking for them to be implemented even if they somehow knew it’s what they wanted to do.
Could a more technical CEO have turned the ship around more quickly? Sure. But let’s be honest, the blame rests at the feet of the engineering team. Someone got excited about using some new tech and didn’t fully consider the ramifications. This happens all the time. And if you’re lucky, the code review saves you, or if not then QA saves you, or if not then the beta testers save you. If a problem remains after that, then it tends to become really hard to undo, from an organization perspective.
These sound like extremely technical decisions that presumably engineering leads in the company came up with, signed-off on, and convinced leadership to go ahead with.
I doubt a Salesperson has the technical expertise to initiate any of those changes.
It could have been the other way around, though. Engineers could have been faced with calls asking for a higher degree of integration and dependence on cloud servers for profit reasons (carefully sold as better UX), then developed it because that's what they're paid to do.
> especially for older Sonos devices with limited processing power.
That reminds me: When S3 dropped support for MD5 ciphers, it ended up causing problems for a number of their customers who had remarkably old computers connecting to S3. The machines struggled to handle the newer / stronger ciphers they were now required to use. In one case it went from "just about keeping up" to "got no hope". That was a "fun" way to unexpectedly break folks.
> The machines struggled to handle the newer / stronger ciphers
Sort of like "test your stuff simulating a really shitty network connection", perhaps something else in that vein would be "test your stuff with excessively slow crypto and longer-keys."
mDNS is superior to UPnP, they just made a compounding sum of bad choices that ended up in a bad architecture. I do hope companies start learning that you can't have suit doing running an engineering company
This is a dramatic take. What's worse about Google photos today vs 5 years ago? Android seems a lot better off today than 5 years ago. I know there have been some bad things as well, but overall there have been more positives.
I constantly get "memory" notifications from Google photos, to a degree that I suspect is a bug. It's more frequent than any other notification from my phone. It didn't used to be this way.
I've implemented both UPnP discovery and mDNS, and mDNS was quite a bit easier to make reliable than UPnP. However, if they did have a reliable UPnP system, it would almost certainly destabilise the software for any transition like this. There's just so many different network issues to deal with, it's tough to debug when a user reports a problem and it's probably an issue with their router which is only sold in Germany. It is very frustrating class of bugs, when the app just doesn't find devices on the network.
Wow, thanks so much for the succinct and informative summary. I’m an owner of multiple SONOS speakers and am enraged by how these changes have effectively crippled my devices that I spent much hard-earned cash on. I am beginning to despair. I hope and pray they can just roll back half of them.
I suspect it’s all related to centralisation and control and subscriptions to radio services and profit however so I won’t hold my breath. Most enshittifcation has profit at its root. :-(
Yep, it is definitely an engineer behind this, wanting to show off.
My job now is to deal with the aftermath of failed design choices at my company.
It only took a couple of guys to impose their deluded design, because noone stood up to call their bullshit.
We make embedded devices, the higher end are running linux.
But, they developped the linux devices as it was a desktop computer, the biggest latency hogs we have are multiprocess architecture over dbus, and event based UI which fetches live data.
The result is a slow and hanging UX, which gets slower after each update, and is irritating customers.
The lower end devices we sell are bare metal, and they are liked by our customers due to their swiftness. They just have a different architecture that focuses on end result (monolith, and a cache of data to display).
Scroll up. I've seen an overview mentioned about. The gist is: the architecture was good for the company and its revenue aspirations. The benefits to the customer a distant second.
It wasn't so much what but why. The constraints of why led to risky anti-customer product decisions. Decisions the CEO had no choice but to own.
The key technical change that broke Sonos was abandoning their reliable UPnP (Universal Plug and Play) system for device discovery in favor of mDNS, while also shifting from direct device communication to a cloud-based API approach. This new architecture made all network traffic encrypted and routed through Sonos cloud servers (even for local operations), adding significant overhead and latency, especially for older Sonos devices with limited processing power. They also switched from native platform-specific UX frameworks to a JavaScript-based interface while moving music service interactions through their cloud instead of direct SMAPI calls, resulting in slower performance and reduced functionality.
For a more extended discussion, see this excellent LinkedIn post from Andy Pennell, a principal engineer at Microsoft with a deep technical understanding of Sonos systems. He created one of the most successful third-party Sonos apps for Windows Phone and worked directly with Sonos on their official Windows Phone 8 app.
https://www.linkedin.com/pulse/what-happened-sonos-app-techn...