20 comments

[ 2.6 ms ] story [ 58.3 ms ] thread
Interesting argument, that IT can be too agile. Yet what he's complaining about is broken shopping card programs, which is a failure of test and error recovery.

The title is somewhat deceptive. Maybe should be "Broken shopping carts lose customers", but that would get less clicks.

(Actually, the ad industry ate software.)

>> A small, quick software team moves faster than the enterprise wants to go.

Ha. I’ve worked on a team that worked much faster than other teams. We’d sit around trying to find work to do, and when a project showed up, we’d knock it out fast because we needed something to focus our nervous energy on. Then we’d run out of things to do and get bored again.

seems to me like a good kind of boredom
I suppose it’s better than being stressed out. But it took a long time to be comfortable with it. I kept think I’d get fired, as I just wasn’t doing that much. I couldn’t figure out why anyone would want to work that way.
It's pretty common that I have to deal with support issues that were fixed six months ago, but the client has never taken an update in all that time...
Are the updates easy to apply? Plenty of software is incredibly hard to update. Take postgres for instance, you need to take take the whole database down or come up with a complicated replication based upgraded strategy (which it doesn't "just do" out of the box)

Restarting software can be pretty problematic if it's used in a high volume context unless it supports some form of high availability natively.

On top of that, plenty of software has poor backwards compatibility (usually not intentionally) which means a significant amount of testing is required to make sure the update didn't introduce a regression (even for minor version and patch upgrades).

I think flaky VPNs are a much smaller component of the problem than management who simply do not care. But of course we just end up blaming the tech teams.
a great observation. i wonder if anyone has a list of enterprises that have "let software eat them" - aka got out of their own way enough that they let the software culture infect the rest of the org instead.
> i wonder if anyone has a list of enterprises that have "let software eat them"

I have no specific listings to offer, but we are effectively doing this first-hand with our customers (old-school banks). We don't sell it as "software eating your business", we sell it as "your business is inherently software-based, so lets go all-in".

9/10 times, all the business really wants you to do is take a few of their existing technology systems and integrate them into 1 cohesive whole which aligns exactly with the business processes & value chain. The other 10% is when this model of gluing together many vendor solutions starts to fall apart and you want to replace it with a uni-channel solution. This whole thing is ultimately cyclical over strategic time frames.

The reason this happens is not because "large organizations move slowly" or "interoperating with old systems is difficult". Rather, it's because the people who are directly responsible for ux, error messages, etc have no incentives to do more effort than bare minimum. But changing these incentives is usually orthogonal to the career hierarchies of these organizations.

In businesses like in the article, acknowledging that software development is now the main value creating activity means rebalancing the rank hierarchy and revoking old career ladders and promises. To avoid this, they need to treat software and developers as peripherals, like copy-machines and technicians.

The hope/belief behind this is that the current pain of software is temporary, and eventually good cheap enterprise software will be available to everyone, similar to things like gmail and salesforce.

The problem with enterprise software is that the design, especially the user experience design is almost non-existent. The thing becomes clunky, it looks like it was carved into clay and makes your work perceptibly harder rather than easier. You don't feel like it actually helps you and you hate it. Most of this comes from thinking on personal level in both managers and developers and I have seen some of it first hand. When you have 5 investors and in a team of 10 people everybody has a lofty title, you get kick-off meetings that last for hours and you will get nothing done that is actually good (i.e. helps people do their work). It also doesn't help, that enterprise software development basically spends other people's money. If the developers actually had a stake in the software being actually successful (by sucking less) and could influence this through their work, you would probably under the lead of a great UX designer, get a useable product or service.

If you think, Gmail is an example of great software, we must have very different views. It has UI elements basically on three sides of the screen and basically useless information at the bottom. This includes much space you use on the left, "Program Policies" and "Powered by Google" in the center and Account activity with Details on the right. You have chat windows to the left but they are using the different chat (Hangouts?) that is actually en vogue at Google currently. If it is a GSuite account, Meet is totally at the bottom even if it currently is perhaps the most used tool besides Gmail and Search. The hamburger menu besides the Gmail logo only hides the left menu with chats and email folders. To the right, you have something like a start bar where you can access other Google Apps with a single click. The same is accessible with another click from the 3x3 dots menu. Then there is the settings button, which opens quick settings where you also click again to see All settings. You can also click your avatar to switch between accounts, manage the account etc. You also have further elements above the email listing. There are perhaps a 100 elements that can do stuff not even counting anything in the email listing. Way too many options to tune everywhere. It is overwhelming and most of it isn't really essential. When Gmail loaded, the app is quite fast so that is a plus. The animations though are not very appealing - they are not physical (e.g. there is no acceleration/ deceleration), this is a problem with Material UI and keeps some people (e.g. my co-worker) from using Android. They feel unwell when they see it. Google could easily fix it in a few months of engineering of 1-2 people but they haven't. Instead, they are inventing "smart" features that you have to opt in or out, because the designer cannot actually decide stuff and take responsibility for those (in)decisions. That is the same with GSuite asking if you are sure you want to send an email outside of your organisation of ~ 4 people. Yes, in such an organisation, it is very likely, you will communicate most of the time with somebody outside the organisation. Where is the pattern recognization when you actually need it?

Also related to the usability of Gmail e.g. on the home turf of Android, in the Gmail app, is they keep auto-correcting text to something totally else extremely badly. I know quite well what I type, especially when typing capital letters - e.g. an abbreviation. I don't want the autocorrect to touch it at all, maybe suggest an edit but don't ever change it without asking. Writing any length of an email on Android quickly becomes unbearable - several times, I even considered not having a smart phone altogether because of it. On the other hand auto-correct isn't able to suggest grammar corrections or better words. Quite surprising how a company specialising in analysing data isn't able to come up with solid dictionaries, discern declinations in some languages, not able to analyse the context, not recognizing gra...

This is a great article from Jess - as all her writing is.

The only rejoinder I will make here is that in my experience doing enterprise dev, the software is bad because there is little or no QA.

I only worked in one enterprise where the dev director hired a single QA engineer. This lady checked all of my code from end to end every time I thought it was ready to ship. It took me 3 months to do something I thought I could do in one because this lady caught EVERYTHING. I hated her for it. She made me fix every single bump, every pixel. Everything. And when we shipped it, it was the best software I have ever written and one of the best pieces still running.

I love writing automated tests, but having someone else test your own code is just different, I as the owner of the code will usually have a “positive” attitude to my own code, this in my opinion limits my imagination towards all the things that can go wrong (TDD sometimes helps me but it has its limits). On the other hand, a QA tester has a “negative” attitude, he or she knows that there are bugs in the code and his/her work is to find them.
Yeah - you can’t beat an indifferent 3rd party. They’ll find all the stuff that you either code around or innately know not to do.
I find that the reason the enterprise is inefficient is their goals are often not aligned with their work.

Think about the original Ford company. They do this revolutionary thing, mass-production of complex machines, using assembly lines and processes to streamline and speed up production. They're highly efficient! But I'll bet you whatever their form of HR was, was not efficient. Their car production was fast because everything was organized around their goal of making it fast. But HR didn't need to be fast, so everything wasn't organized around that, so it wouldn't have been fast.

If the goal of your company is to sell home improvement equipment in a big vertical store (that was the revolution of the "big box store"), then your website is just not going to be nearly as good as the experience of buying in the store. You'd have to fundamentally change your goals, and organize everything around meeting those new goals, for the two to be on par. Sadly, I don't think older leaders have yet learned how difficult it is to produce your own software, and how many ways things can go wrong. You wouldn't ask Ford to go into the restaurant business!

But another big consideration is whether you're trying to affect a culture shift, which (I think) is probably the hardest thing in business. This article on Home Depot touches on it (but I don't think explains just how painful culture shift typically is): https://www.wsj.com/articles/SB107938966321355964

(comment deleted)
I think the author is a bit off here. As an example, I was making an Apple ID the other day and I had to go through the process like three times because clicking off the modal erased all data & progress in signing up. They even have a basic miss in verifying email & phone sequentially instead of parallel making me wait for the code twice.

IMHO, it's a resource issue. FAANGs & unicorn start ups have endless money to throw at software development. It's not surprising that they make better software. But even then they miss seemingly basic stuff like Apples sign up process. As another example, Google homes can't work as intercoms. Something that cordless phones could do 25 years ago.

It seems to be a chicken and egg situation.

Enterprise software seems to be software that users can be forced to use (vs. software that they use if they like it).

If users can be forced to use it, the creators don't need to optimize on usability.

A developer I know constantly has to release “Emergency Patches” to an Enterprise company. It takes 6 to 12 months for those “Emergency Patches” to be put into production by the Enterprise company.