Until recently, we used to do things like write cheatsheets and other help docs for our clients for tools like Google Analytics. This was all fine, and they were appreciated, as clients just don't know how to use these tools.
But recently, the rate of change has just made this untenable. I'd log into a tool like GA and the whole thing would be different. Not just the upgrade to 4, but then incremental changes there, too. So cheatsheets, training workshops, anything around support - just becomes untenable.
Another example: I log into Teamwork (my project management tool of choice) - and they're "retiring" the plan I've been on (and very happy with) for years. Instead I have to choose "Growth" and now my dashboard is littered with a whole bunch of stuff I neither want or need. Nothing is where I'm used to it being.
And: we do a bunch of work with Wordpress. The rate of change here is insane, too - every single update brings new features, none of which is documented, bedded in or understood. None of which can be written about, supported or workshopped.
And: Trello. It was fine. And then Atlassian bought it and it became this horrific behemoth of "features", all of which just clutter everything up, none of which seems to actually do anything useful.
And on, and on.
Is this rate of change supportable? Am I just too old? Help me put this in context, HN!
0) I am growing older and I may get more conservative 1) I used a lot of products that evolved to a local optimum but I see a lot of them being thrown back into a evolutionary state they already passed a decade ago. Maybe to eveolve better, but I have my doubts. 2) Everything is bloating now. Instead of a collection of good tools interacting I have now 3+ ways of opening an Excel-File someone shared in Teams. All of them are broken and Teams is broken, too.
I feel as if the excellent wrenches I have been using for 20+ years are growing tumors in the form of a can opener. All to please people who never used a wrench or a can opener before. And production of the original wrenches is cancelled. Over night.
Next time I need a wrench it may be made of felt, because fedoras are en vogue and the mad hatter has to sink venture capital into expanding his business.
(Funfact: In German you could make up the very valid and understandable, but still strange word “dosenöffnerförmige Tumore” )
Even worse, the company has broken into your shop overnight and replaced the wrenches with these pieces of crap.
If you wanted to move slowly (or not at all), at least you had the option.
There's still people writing books on WordStar. People still running small businesses on 1990s era Peachtree Accounting on DOS. Maybe they'd benefit from new software, but honestly probably not all that much from their viewpoint.
Don't forget that your brand new (felt) wrenches are imperial[1], while your old ones (and all the nuts and bolts you ever dealt with) were metric, due to an error in the shipping database.
[1] not that it makes much difference, since they are made of felt
So it's often better, from the developer's perspective, to reimplemement a solution than to maintain refactor an existing legacy solution, even if your re-implementation ends up being inferior (which it almost always will at the beginning).
So the reason why software cycles is that pioneers roll out some new tech, it gathers momentum, over time it becomes complex, it becomes harder for new developers to understand it, until a breaking point is reached and the new guys splinter off to make their own version from scratch, repeating the cycle.
Yes, this is extremely wasteful, and it's hell on end-users, but there is forward progress, even if it's of a two-steps forward one-step back variety.
Frankly, I don't see this situation changing as long as developers are sought after, which they pretty much always will be. If decision making is handed over to the sales and marketing folks, they will make even worse mistakes.
It would be nice if there was a "stable software" movement similar to a "free software" movement. One that championed backwards compatibility and preservation of APIs and the user experience above all. Then customers would at least have a choice as to whether to get a dynamic or stable library/application/service.
Apropos: https://www.joelonsoftware.com/2000/04/06/things-you-should-...
Reddit, Google chat products, GitHub ux rewrite for the first few weeks, YouTube
Product schools need to instill this idea that some things _may_ already be perfect the way they are.
This isn't really a thing. Oh there are few programs out there and there are some great private workshops, but there isn't degree you can get. There both are Design Schools, and Business/Management Entrepreneur programs that cover some aspects of this. But most PMs get that job from some other angle.
And even if they did cover this ... it directly counteracts their job responsibility. Yes, you should move me to another project or fire my, this project should be considered dead. How many people are going to do that? Within certain companies and cultures with many projects and growth, one probably could, because you have a clear path forward. Or you see the writing on the wall and jump to another, higher growth company.
The real problem isn't on the PM side, it is on the business leader / GM / CEO side of things. But even then, there is some other stakeholder asking them to expand them TAM and grow in some other direction that dictates some other feature coverage. This is a really hard trap to avoid.
(Sing to the tune of https://m.youtube.com/watch?v=OnFlx2Lnr9Q)
Teams is basically junk, made from the bits of Skype no one else wanted and things that feel off Chrome.
[1] Sometimes, when I open a new chat and quickly start typing, after 2-3 seconds the whole window suddenly redraws and whatever I've managed to type in so far is no longer there...
If I open a call link in my browser it shows an option to open the desktop app.
Most of the times the Teams Desktop App (Electron) opens with a blank screen and starts to restart itself. After several iterations it will log out completely and ask me to login again. If the login is expired it should already at the first try.
I grew so tired of it that unless I need to share my screen I just use teams via browser.
No Microsoft, I don’t want to openly the ppt in the browser or teams where it’s barely functional, graphs cannot be edited well, and everything is displayed differently than on the app.
No Microsoft I don’t want to save on your proprietary cloud, I have never done I so why must I cloud through three panes to get to the original file browser in order to save it elsewhere?!
No Microsoft, this is my work computer I don’t want news articles and web searches popping up in the task bar and notification area
To talk of it as broken implies it is there to do one thing (which it doesn’t) however it’s role is multifaceted and in totality it delivers.
Dead Comment
#1) Software used to live on a disk you buy. That software doesn't change, until buy a new disk. Then it lived in apps, where you can update or not. Now often, it lives in the mythical cloud where changes can happen all the time.
Now, even on the disk front, things were always changing. Often for the better, sometimes for the worse. In the OS world Dos->Windows->Windows 95 were big changes, and the OS9->OSX change also huge! But now the changes are always.
#2) The entire software world is built on VC money. VC money is not looking for slow and sustainable growth. Or a happy userbase of 10k people. The VC world doesn't mind if 99 companies crash and burn trying to harvest the wind while building their sails if one takes off.
#3) Out of the VC/startup world, large companies must justify their existence and every team and every programmer on that team must justify theirs. No one ever stuck around by saying "everything is good, we literally don't need to do anything or acquire another customer, let's all cut out hours to 2 days a week, keep patching bugs and making security updates, be happy with our current level of subscriptions, and spend a bit of time in R&D to make sure we have other bait in the water too if for some reason our users stop liking this.
That's more or less what FogCreek did with Trello and CoPilot. While FogBugz was "good enough" to more or less run on rails, they made other bets to expand or productize some of their internal toolkit. It worked so well that these side-bets eventually got much bigger than FogBugz.
I wish more people tried that, instead of messing with their cash-cows. Yes, sometimes you have to keep up with competition or "innovate" in your own space, but if you got big already, chances are that you've done your best work already - leave it as it is and move on.
Only problem is we don't have any good UI toolkits anymore, all are second rate compared to the browser. Qt might be the best, but their licensing scares solo devs.
With that, if the only thing that's going to happen is my ideas get taken and used in an open-source project, why not just keep my tools to myself and continue to work for a big corporation?
I believe you’re right in that there are money to be made in developing desktop app, but I also believe that the customer base expect thing to be native, so don’t try to do Windows application using GTK or macOS applications using wxWidgets.
As a non-web developer I'm genuinely curious, what is a good UI toolkit targeting web browsers/Electron that rivals Qt?
The nice thing about installing your own software is you controlled the updates. If there was no compelling reason to upgrade and you were stable, you didn't. Most people today could probably break out a copy of Office 97 and be totally fine with it.
I don't think that is the case (depending of course on how we define "the entire software world") I've been a developer for 20 years and never worked for a VC funded company.
There is a tonne of software development outside the realm of VC's.
For a lot of software, like social networks, getting new users and new downloads is the main goal.
When a company is not charging [most] users money, the second best thing is publicity or grabbing and selling user's data. Both options require user churn. Keeping users happy for a long time is not their concern.
Unfortunately this is happening in the FOSS world as well. Constant churn of software products, features and bugfixes to keep users addicted.
I suspect there's so much churn in FOSS, because developers love rewrites and starting from scratch. In the world of commercial software, written by companies, the bosses/owners reign them in. FOSS, on the other hand, does not have bosses or owners...
You know it's bad if there's multiple XKCD's about it.
https://xkcd.com/2347
https://xkcd.com/1987
https://xkcd.com/927/
You know the concept - jobs that exist just to exist and pay for someone's living, though they produce nothing of actual value, and it takes effort to actually remove so no one does.
With software it goes something like this:
1) A product is built, something that solves a real issue. It's new, rough around the edges and has only the basic critical features.
2) Funding is found and a large team is hired to implement what's needed and fix all the rough edges.
3) The team comes up with good, new ideas that actually improve the product experience for everyone, so in the eyes of management and the investors they have merit.
4) After the first 10 good ideas are implemented, the next ideas are... not as helpful, but some users still like them and nobody wants to fire anyone who's been doing really good work so far.
5) Fast forward a couple of years, the team is huge and there is really no headroom to improve the product. Everyone tries to come up with bullshit ideas and force their ideas through, just to have something to show come performance review time. The users stay with their tried and true product, and they're so invested at this point that a few regressions make them bitter - but not enough to leave.
6) Rinse and repeat.
I've been on that team. The engineers there are often mentally older, comfortable, and smart - or at least were smart. Many of them are sure what they do is important. But they're wrong. They now hold bullshit jobs.
There's a second sort of form of this: even if your (first) goal isn't to make changes, but just to maintain what you've got (operations, reactions to security issues, keeping up with the new Android/iOS/Windows/Web 99.0 way of doing things) you might need a team of a few people.
But they won't need to be doing that 100% of the time. The work will come in spurts. You'll find something to do with the time in between, because you can't hire people just for the spurts. Thus sometimes-BS jobs.
Back in the day redesigns were well thought out and kept as many of the previous design decisions as possible. Ever since things started moving to the web, this seems to have changed.
Layouts, methodologies, subscription model, payment options, login options, core application design, it can all change from one month to the next. Everything is constantly being A/B tested, there is no clear release cycle anymore.
Now that iOS and Android finally seem to have settled down on a design, Windows changes their UI style again. Web frameworks seem to stagnate (finally) but there is already a slow move back to integrated server side rendering frameworks.
Modern software development is based on "move fast, break ad many things as possible, get promoted or bought out by FAANG". The time of cheat sheets, manuals and curated workflows is over, everything is now SaaS/PaaS/IaaS/AaaS and the only way to use a computer is to constantly relearn your work flow. Reading about new features and upgrade documents is no longer optional, because the next update could substitute some of the old features you rely on with the new ones.
Your computer,tablet, phone or TV could update tomorrow and you'll need to learn the entire contacts manager or file manager or settings menu from scratch and there's nothing you can do about it. And those are the systems that undergo relatively infrequent UI redesigns.
There are some things you can do. Stick sith LTS software if you can. Stick with single purchase, self-hosted software if you can. Avoid anything with buzzwords ending in aaS on their homepage like the plague, and try to switch to something else when your favourite self-hosted tool switches to an aaS model the way Atlassian did. You'll still end up using tons of crap that switches designs because the design team got bored again, but at least it'll affect as small a part of your floe as possible. Oh, and consider disabling automatic updates until security patches get released. I'd be the last person to advice someone to skip security updates, but redesigns often come in small parts and rolling updates, and you can delay them a little bit if you skip the unnecessary updates.
The only feeds I still use are Twitter and Spotify. The former is cancer and it's contents better be fleeting. But why on earth can't Spotify be predictable? It's start page is essentially useless. And despite all the clever people bing thrown at the problem, the Release Friday playlist is nowhere to be seen on Fridays. This can't be this hard.
The intantaneous, differential nature of high bandwidth web gave near full freedom. To the point you didn't even started seeing what you can build with a thing as it's already changed.
ps: another weird thing, all the engineered methodological lead to incoherent changes. They're not progressing, they're jumping from local maxima to another.. Chrome and Google Apps UX regressed wildly multiple times. It's instability as a service.
I fired up the project after not touching it for ten years and loaded it in netbeans. It built and ran without a single issue. I was flabbergasted. If I leave my Xamarin Forms app for a month I come back to find failing builds, broken dependencies, dependency version mismatches, and OS related failures induced by updates. I spent countless hours hunting down solutions to these and it happened numerous times for different reasons. Visual Studio changes, OS changes, core framework changes, core language changes, library changes....omg.
I'm working in my old crusty Java Swing project and I love it. Each minute I spend working on it moves the application closer to done. There are awesome open source themes available now and it looks great. My old code to remember window sizes and screen/monitor positions still works. Unfortunately, that was surprising as hell.
I have the expectation it will work twenty years from now. Web app or mobile? Not a chance in hell.
Dead Comment
Having stuff in the cloud, as a service, means you have no control over change. That is an unsustainable model for the end users. It'll take a while for the pendulum to shift back. Right now they can use the fact that you can't secure a Windows machine (ever) as a wedge to keep things managed... eventually this will be solved. (Capability Based Security) At that point people can run their own stuff again, and p*ss on the cloud.
You can still support it, you might even be able to make the case for bringing the stuff back under local control. It's just going to be a lot more work.
It's not your age, it's your intolerance of bullshit, that is at work here.
Good luck!
I think you might be onto something
As for Windows updates, we did those.
However, there is ONE important side effect that I have not noticed until now.
Most technologists crave speed. Faster processors, faster disk drives, faster networks, faster everything. Bottlenecks are our common enemy. YES. They are evil. I can relate to it because I spent a good amount of time in my career fixing performance problems for financial systems.
No one likes to wait for the computer to respond.
Unfortunately, this craving for speed (in technology) has quietly bled into other aspects of our living. People learn to speed read to gain more knowledge faster. People speed walk regularly (yes, I can also feel it in Hong Kong’s subway stations.) And the most crazy thing is: we don’t realize it until our body cannot cope with the demands of our speedoholic minds.
I watched this Carl Honore’s talk from 2005 (http://www.ted.com/talks/carl_honore_praises_slowness). 10 years later, it’s hard to believe that many of us (including myself) still get caught up in thinking “Slow is bad.” But no, there is such thing as “Good slow.”
You need to be patient in building a relationship; you need to have a clear mind in thinking strategically; and you need to be willing to spend time making mistakes in order to invent something useful.
So, please don’t let us, technologists, news or media slloowwlllyyy turn you into a speedoholic.
Ha, you wouldn't know it from using a modern computer interface. I have a hobby of counting the seconds since when I click something on my phone, a computer more powerful than supercomputers were in the 2000s, and when something actually happens. It is often in the double digits.
This may even be a result of the thing you're describing: our desire for speed has bled into our 'productivity' as developers, leading us to sacrifice the user experience for the sake of (theoretically at least) building an application faster. Though honestly, I'm not convinced that's actually happening because we've introduced so much complexity in our effort to automate as much as possible that we've actually just made everything much worse.
[0] https://avc.com/2009/10/slow-capital/
Does it ever get this cold in Hong Kong?
No politician wants to repair existing infrastructure (bridges etc), but every politician wants to build new stuff. Because new stuff is what gets attention. Same situation in software. If I make a particular old feature 3 times faster or if I fix a 3 year old bug, nobody is going to take notice. But if I add a new feature, it is going to be noticed, whether the feature is needed or not. Then quickly forgotten, only to move on to the next "feature". This is what happens when your bonus, promotion etc is tied to shiny new stuff. People do what they need to do, to get ahead :(
As I grow older, I am more and more appreciative of things (anything - physical or digital) that do one thing and do that one thing very well. When I was a kid, my dad had a bicycle. That thing weighed a ton, looked butt ugly. My family abused that bicycle to the max, and it just worked, with almost zero maintenance. Same with every household item we had. They were basic, but they worked flawlessly, for a long time. And the reason they worked well was the absence of useless, stupid features that nobody needs.
I don't know what the solution is. But I am just tired. This doesn't even take into account the shiny new, half baked, undocumented tech that comes out every day and gets adopted for no reason.
Maybe some of that is happening, but it's also easier to build new features than to evolve existing ones. (I suspect this is also true for roads and bridges.) So even if bonuses/promotions were tied equally to old versus new, the path of least resistance skews people toward new.
In software at least, I think much of the problem boils down to developers being unable to read or understand the project codebase, partly due to devs not prioritizing code readability, but also because the tech industry has an endemic problem of devs rotating through jobs every 1-2 years.
Yes, that too
endemic problem of devs rotating through jobs every 1-2 years
I work as a contractor. I prefer long term contracts, even if they pay less. But the past few months, every job requirement I have gotten is for 6 months, some as bad as 2 months. What a person can achieve in 2 months, I do not know (unless it is extremely well defined job and the contractor gets help). Maybe this is because of the pandemic, I don't know. But employers and employees both deserve blame for this high churn.
Companies struggle to get big by serving their customers well and outperforming their competitors, but once they reach a certain level of success, this is no longer necessary and products fall into a state of neglect. We saw it with Microsoft years ago, and it continues to this day, and we see it with Google.
The biggest reaction to new versions of Windows in the last 20 years or so has been "I don't want it." (with the possible exception of Windows 7, which was the last version that was significantly better than the previous version).
The most common advice I hear about Google is to not allow your business to depend on any of their products because they will pull the rug out from under you without warning when they get tired of a product, or when they replace it with something that's greatly inferior.
And in an era of instant updates, there is no incentive to make products robust and stable because it can always be patched next week.
FTWA [0]:
> Alvin Toffler argued that society is undergoing an enormous structural change, a revolution from an industrial society to a "super-industrial society". This change overwhelms people. He argues that the accelerated rate of technological and social change leaves people disconnected and suffering from "shattering stress and disorientation"—future shocked. Toffler stated that the majority of social problems are symptoms of future shock. In his discussion of the components of such shock he popularized the term "information overload."
[0] https://en.wikipedia.org/wiki/Future_Shock
And on and on it goes. It seems multiple 1000's of man-hours of work happens in the tech world, only to get dismissed and dumped in favour of $new_exciting_thing, and it's getting annoying and disappointing.
It seems to be a case of rather than iterating on something, someone else comes up with $new_thing and that becomes the fashion du jour for a period of time - lots of people quickly jump ship to the new thing - until /that/ stuff gets dumped in favour of $some_new_new_thing. Repeat ad-nauseum.
I'm undecided on whether that's a bad thing or not - but the pace of the change(s) is what I'm finding more Annoy than Shock.
We deal with a lot of clients so we use Skype, Teams, GotoMeeting, Zoom, you name it. But Skype regularly causes collective "WTH!?" in our team. Skype devs seem to love moving things around without warning. Or putting features like "ring group" being an extra button after you "call group". Most recently they moved how you close a picture when you're in a call. Why they did this I have no idea. But I saw it catch multiple people on my team.
Honestly, I'm tired of it. The cognitive load of all of this is too high. I have work to do.
edit: I should add an observation. Whenever a feature is first changed or simply moved, it almost certainly means it's not going to work. Quality in this day and age is non-existent.
The most dangerous aspect of this phenomenon is that the platforms our applications run on are now highly unstable. We live in an era when software like operating systems and browsers will happily update itself whether we want it to or not. You can't build a castle on sand and expect it to stand when the tide comes in.
At least if the platforms provided stable, standardised foundations, those application developers who wanted to provide software with longevity and compatibility could do so. But the likes of Microsoft, Apple and Google seemingly have no interest at all in providing those stable foundations any more. If everything is throwaway junk then everyone needs to buy the new throwaway junk next week too.
It was 8 years between the release of Qt5 and Qt6. Qt's one the things I consider quite stable compared to many other frameworks these days.
It is weakest on predictions of the significance of specific technologies, many by those directly involved in their development or promotion. Some of those have panned out (most notably, of course, information technology), but most haven't, proving impractical or nonviable, occasionally socially unacceptable.
The cautions about psychological overload are strongly on-point.
Where the book is likely underappreciated is in its predictions of social change. These have largely been so successful, especially about youth culture, gender, and race, that the prior state seems utterly foreign to anyone born afterwards. The predictions to a large extent are our present reality, and seem trite simply on that basis.
(This is a general challenge in forecasting: unsuccessful forecasts are glaringly obvious, successful general ones are too ubiquitous to be apparent.)
Toffler cites a great deal of research (though in following up on his footnotes, some citations seem inaccurate), and both the original sources and subsequent works citing them are of interest. He leans particularly heavily on Herbert Simon, a polymath (psychology, sociology, economics, mathematics, AI) with many powerful insights (and a few blunders).
The actual stressor that gets fixated upon and scapegoated appears to be something ironically very old and unchanged - memento mori. The Eiffel Tower was called hideous and something to tear down to those who knew the city long before its placement. For those later it was a part of Paris and tearing it down would be sacrilege. Beyond a certain point in life everything new becomes a marker of your obsolescence as you personally remember how things were before. Those after you never would.
Future shock comes from "enormous structural change". As David Graeber pointed out, major structural change and scientific breakthroughs slowed down to a crawl.
E.g. we don't have teleportation, warp engines and computers integrated in our skulls. Not even flying cars. Compare it with the changes between 1910 and 1960.
Here we are seeing the opposite: endless churn and reinvention of the wheel around very minor stuff.
Graeber got a lot of backlash for pointing out this facts. We are not supposed to criticize the gods of technology.
The downvotes are coming as expected.