David Platt. Most software sucks, so statistically speaking the software you write probably sucks as well, according to the author of programming classics like Understanding COM+ (now out of print) and Introducing Microsoft .NET (now has a different title). His latest book, Why Software Sucks (buy it here), pillories …
not exactly true
>>Another good example: Google automatically detecting the user’s country from the IP address, automatically serving up the right language page for that country<<
Well David, that is one of my biggest annoyances with websites. I always to prefer them in English, and without being asked, a lot of sites switch to 'my' language. Most annoying and definately 'sucky'!!
I want this man's books!
I've worked in a software development department for the "world's largest chipmaker," and all of Dave's comments are spot-on. I remember when our team got a new manager who had just come from Microsoft - and his attitude was "I don't care if it works, we have a ship date, mark it gold and we'll fix it in patches." I fixed the "high-ranking idiot" problem by leaving; I didn't want to be associated with hardware drivers that didn't work.
new verses old
What I see happening is that younger less experienced programmers are playing with the software. The older programmers either move to a different field or up the ladder. There is a constant drive to employ juniors to do seniors work. After all, once a developer has done 5+years they are not that interested in trying new tricks but getting the older ones working.
Agile and extreme programming are examples of returning to the good old days of developer/user communication - neither understands each other.
I think it is time IT grew up and took notice of how the Civil Engineering industry works. Juniors do not do critical design - and all of their design for 5+ years is meticulously checked by senior engineers.
Most of the code reviews I have witnessed miss the point - is it what the user wants? - 'no it is what they are getting - users do not know what they want'.
"I didn't want to be associated with hardware drivers that didn't work."
Are drivers responsible for bad Operating Systems then, in that without their Support, neither would work at all?
The Lotus Position
I presume Why Software Sucks does not talk about Lotus Notes, else we would not be able to read it as the author would still be writing it now and for about the next ten to fifteen years, and it would be longer and fill more volumes than Encyclopaedia Britannica even if it was printed in tiny print and came with a magnifying glass to read it.
If Lotus Notes sucked any more I wouldn't be able to tear my face off my monitor.
It's not a feature ... it's a bug
From my perspective, this guy is part of the problem. He seems to want things done automatically. That is one of those things which makes software hard to use and understand. A user may not be part of the "in" crowd who "understands" those things and if he isn't, then those things become confusing, or insulting.
Google's insistance on serving up pages for my area has caused probelms for me when I'm on the phone to someone in another part of the world and we are not seeing the same search results. For a non programmer, that kind of software behaviour is just bullshit and makes the experience confusing.
i think one of the reasons a lot of software sucks is that, the developers feel compelled to include features a rival may have innovated with and they just bolt similar functionality on.
normally to the detriment of getting any thing done. for example roxio's 'wizard' interface which nero pretty much copied with nero express. i just cant see how it simplifies the creation of a cd. if a split view of cd file structure and hard drive structure which you drag and drop between is too much for your brain to comprehend, you probably need to forget about using the cd your creating as the eject button will probably be too much for you to handle when you come to use it
annother easy way to make software suck is not allowing me to maximise it (reason, you over rated sequencer), especially given the price of huge monitors these days (was only ten years ago when having a 15" monitor was a considerable upgrade in price, and anything over 17" was serious high end kit) i want to take advantage of all the space i now have, using reason as an example, why cant i make it full screen and have the racks side by side, instead of one stupidly long down scroll, constrained to a width to fit on a 1024 * 768 resolution, it looks retarded at 1600....
then again prehaps shitty software is a reflection on society. shitty seems to be new standard to aim for, shitty tv, shitty music, shitty films, obbsession with people who's only noteworthy act was winning a draw and getting to be on tv. or can play a sport well, both pretty useless deeds, i mean what good has it ever done, other than a few photo shoots with disadvantaged kids. its not like edmond hillary who climbed a sodding mountain, struggled and generally went through a world of shit to reach the top, who actually did something to earn my respect, unlike all these gobshites, who seem to think that being on tv is reason enough for my respect, or that there 'struggles' with what ever self imposed situation they find em selves in are worth any thing more than filling the space between adverts, might as well do the job properly and be a cultural tourist/paracite/whore for a year, sorry i mean take a gap year and go travelling the well trodden path of oz, thailand and back to oz. At least then they would only be inflicted upon there nearest and dearest, not every other fucker who unfortunatly happened to be channel hopping
in a nut shell, sucky software, comes from a shitty social trend to glorify and revell in ignorance (jade, paris, and any other dumbass, especially that prick off big brother, who asked what a shakespear was, and claimed to never have heard of romeo and juliet ("aint he that guy from so solid crew...")), and an apathetic society which watches it because its sold as entertainment and they consume it, useless bloody cows munching on the grass of reality tv and gameshows, can only hope the van from the abattoir is arriving shortly. if as a society we will accept that sort of shit, then its no wonder that we accept equally naff code
That is the most forthright and accurate assessment I've heard.
Nice One, Dave.
"Platt: Then you have the ‘high ranking idiot problem’ and you’re going to have a new boss soon – one way or another. I don't have a solution for that." The Only Real Solution for that.
Leo - Notes has moved on. A long time ago.
So why dont you ?
Hell we're at Notes version 8 very soon now. I'm guessing you've last seen it before version 6 ? Version 6 got usability prizes three years ago..
Version 8 is now blended into an eclipse front-end for J2EE portal-like application behaviour - at the desktop. Fancy doing a mashup involving a JSR168/JSR170 Portlet and some notes stuff ? On the desktop ? No worries. Windows or Linux client ? No worries. (Mac client - coming Real Soon Now)
The difficulty with Notes is that it just keeps going and going. So poor users get stuck with very old versions because their IT department isnt forced to keep it up to date.
Case in point. One of the largest insurance companies in the UK still have *some* users on OS/2 and Notes v4.5 [out of support in 1998?] - because its still not broken. Granted - they have to run OS/2 within MS Virtual PC (now there's some irony in *that*) and of course they can run these clients against the latest servers.
To put this in context, this is the same as running Outlook from *1997* against an Exchange 2007 server... And complaining that outlook sucks because the UI is dated.
And please remember - Notes isnt just a sodding mail system. Any numptie can do that.
Its a secure, open-source public/private key based platform-agnostic replicated application infrastructure - something that MS is still struggling to sort itself out with. Add in Sametime and you have IM and meeting capability. (You get the IM for free, BTW)
Want it on Windows ? Intel Linux ? xBox ? No worries.
What about more reliable/scalable tin: Solaris ? pSeries ? AS/400 ? zSeries ? Windows ? No worries.
For example - a content management and eMail system in MS land - 5+ servers (Sharepoint, Exchange, SQL, AD, IIS..).
In Notes/Domino land. One. Want it completely clustered, etc? Make that two Domino servers. How many MS ones ? 10 ? 15 ?
And remember. You get the source code for the mail client. Want to add new stuff ? Do it yourself. Or go to openNtf.org and use theirs. Try extending Outlook without writing DLLs and install kits...
Perhaps what you wanted to say in the first place was: "Sharepoint/Exchange might be a pile of insecure and unreliable poo, but hell, look at that pair of nice icons. Phwar!"
(P.S. If your having to use Notes v5 or before at your place of work - shout at your IT department... Or get in touch, and I'll shout at your IT department.. )
I felt his best work was in Italy playing for Parma (I think), although he wasn't bad for England during the 1990 World Cup.
Good to know he's branched out from football management, and does a spot of programming too.
The automatic transmission thing is a perfect comparison
Automatics piss me off. They shift when *they think you want them to*, which is usually an assinine setting for high gas milage on flat sea level land. I live in Denver and drive up and down mountains every day. On most uphills most automatics are constantly switching (every couple of seconds) between 3rd and 4th!
Which brings me to my point: Remove complexity, don't hide it! If there are gears in the transmission, then give my control of them, don't "hide them because your system is so perfect I will never need to know".
This is exactly what makes software unusable, and the perfect example of the Windows "Wizard" problem. If you are setting something up anlong the path most followed it is easy as hell. But then when it breaks and you have to go back and fix it, you have no idea how, except to uninstall the thing and go through the "Wizard" again, or install a terribly obscure utility from a "support disk", and figure out an obscure syntax.
Going back to the transmission thing, a continously shifting transmission is a *solution*, not a cover up or "fix". Illiminate the complexity. Don't "hide" it.
What a strange, strange universe...
...you live in. Here in the Real World(TM), if something sucks, some constructive criticism (and often a few well-placed flames) aimed at the developer fixes it in some cases; in the other cases, it turns out the effort to develop a better piece is actually fairly trivial. If you want something done right, hire good people to do it for you.
And to counterpoint
I *always* choose the "advanced" option, because the "easy" option usually assumes assinine defaults like installing an icon in your tray to run 24/7, annoy you with popups every time new beta version 22.214.171.1245x comes out, installs Google toolbar, spyware, puts itself in an aweful folder, asumes you want to associate every file type in the world with it, and most likely steals your credit card number, kills your dog, and rapes your wife.
Sure is easy tho.
This is weird I had started writing a book with almost the same title around 8 years ago and of course never got past the first couple of chapters.
But when it comes to user interfaces the simple answer is that "if you try to please all of the people, all of the time - someone is not going to like it". We've all come across people who think they're experts at UI design but have no idea about what's really important to the user (I mean you Stewart).
One of the simplest things I've seen that makes software sucky is the presentation of data in the UI being largely the same as what is stored in the database (or other repository). What's on the database is not necessarily fit for end user consumption, it simply may not be meaningful for them (without a LOT of training). Whereas a well designed UI will give the information meaning and context, but it may look nothing like how it's stored on the database.
The other that really gets me is software that requires a veritable priesthood to run it because it can't look after itself. I write my software to cope with all the crap that comes at it, including some poor sod of a maintenance programmer making changes to my code long after I've gone. I hate software that should be able to cope with the usual sorts of issues that get thrown at it but doesn't. This is simply a failure to focus on what's really important and deliver that first and foremost.
Re: (Ab)user interfaces
Without trying to start a flame war, I respectfully disagree. When I've seen programs that try to obfuscate the true underlying objects (usually DB tables, but possibly WMI objects, ADSI, files, etc), then you end up with something that confuses the users even more. Typically programs which don't try to represent objects take the form of "task oriented" interfaces, which are great if you want to perform a particular preprogrammed task, but that require that maintenace programmer to step in whenever something hasn't been thought of in the original design.
You are correct that these transparent systems take more training than "opaque" ones, but although users fight them at first, they eventually understand exactly why things work the way they do, and are thankful for it.
You are absolutely correct in saying that neither philosophy won't have objectors. Some people just want to follow a wizard, type shit in, and not really care about what happens after that. Basically there are two types of users: idiots and control freaks, and neither are ever happy with software designed for the other.
Anyway, all that being said, I think we will reach true simplistic harmony when the objects in the database really can represent exactly what the user expects to see in the GUI, i.e. what is logical and intuitive, instead of being bound to a relational representation (i.e. evil link tables). Looking at it from that perspective, we get closer to useable apps with each generation of programming tools. Imperitive languages, smarter databases, object oriented programming, higher level languages and SDKs all help us get a step closer each iteration. But they are baby steps, and it is a long, slow process that will take decades at best, and will perhaps never be complete.
While Platt makes some valid points, he mostly makes the same points over and over via different examples. Most of his interview repsonses are lines I heard twice at SDWest, once during a regular session then again during a keynote.
Starbucks coffee ?
....Urine recyc more like.... Only Lavazza Gold Espresso passes my lips. I particularly disapprove of the cardboard and sawdust flavour of Starbucks inferior brew. I just wish that there was a similar easy to use alternative to much of the plain badly designed software in the marketplace.
Good coffee and software user
Having followed the link to the sample chapter, I realised it was a bit long to read at work, and picked a heading I liked the look of as a sample of the sample.
I chose this section: 'Stopping The Proceedings With Idiocy', which begins: 'This box is the creation of a true idoit.'
I don't think this quite ranks as "the greatest accomplishment of idoicy I’ve ever seen.", but I do think that you should make sure you don't make mistakes when you set out to expose those of others.
Well if we're talking about stupid design, how about the design of this page, which (where I am, in both IE and FF) forces all the comments into a column around 30 characters or so wide, leaving the rest of the page width unused.
Chaps, I'm not reading a hardcopy newspaper column, and I doubt if that many folks are reading this on a phone/PDA display, so why make it look like one? Content before style, if you please.
We have sucky software because people still buy it
We have to endure crap software because people buy it. If we refused to buy crap software, the companies that produced it would go out of business, and the companies that produced non-crap software would survive.
Why do people buy crap software? It's because they are more concerned about other factors, such as it having a nice name, being a shiny silver colour, having a brand that they recognise, being the same as a friend uses, having a long feature list, being cheaper, being first-to-market, and so on.
If you want better software, vote with your custom.
..pushing your logo in the user's face
Adobe Acrobat Reader is my pet peeve these days.
With every upgrade I have to tell it "please do not display pdfs inside my browser!" and recently I have to remove this mysterious "Acrobat speed launcher" from my startup folder. I don't know what it does, but I don't do drugs in general.
As far as I can tell, Adobe are trying very hard to make their .pdf reader more visible on my computer. It acts more and more like an ad-bot, and less and less like a document reader. I need it to display documents, not the Adobe logo!
I don't blame the software developers. I blame the marketing guys.
Google redirect by ISP sucks
The Google redirect by ISP sucks – it’s no use if you’re in the UK and your network routes traffic via somewhere in Europe.
Do as I say, not as I do...
This is probably unfair comment for a number of reasons, but it's amusing so it's justified. During a visit to the book's website (http://www.whysoftwaresucks.com/) I wanted to leave a comment; but when I attempted to follow the comments link, I got a page full of incomprehensible error report which is clearly aimed at the site's developers, and is no use to the visitor.
Re: Glass Houses
Sorry about my previous comment.
You should definitely read the whole of any article, and the linked items before commenting.
the 'idoit' spelling is intentional.
(I'm glad I said I hadn't read it all though. Almost like I knew I'd need a disclaimer.)