Notifications
Clear all
Principles Of Bad Software Design
Principles Of Bad Software Design
Group: Registered
Joined: 2023-10-29
New Member

About Me

Contact me for feedback or questions! I reply to everyone.

Principles of bad software program design

Introduction

We encounter them everyday, but have discovered to ignore or tolerate them - yet they keep popping up like moles, claiming our favourite software program. Sometimes we don't know the way exactly to describe the flaws - simply intuitively notice that one thing is wrong here. In this article I'll attempt to more methodically point out the quite a few dangerous design decisions, the popular offenders in addition to programs who have managed to avoid them.

Stuff popping out

My most hated design concern, and possibly the most typical one. Here you're attempting to work...and then boom! A dialog field, overlay, notification - name it something you need - it steals your consideration, ruins your focus, and sends you into rage. A well-liked instance is Mozilla Firefox (will be my favourite target here ^_^). Of course, it "greets" you with the Firefox will send some knowledge bullshit when you open a new tab, but we will ignore that. What occurs while you attempt to type something into the tackle bar?

This shows up. In fact, we can see the manipulation in enhance your experience, however that is not the purpose here. These things ought to be in the settings, and the default must be NO. I mean, that's what the settings menus are for - proper? I do not want to be bothered whereas looking out - just let me search! How about once you close the browser with a number of tabs open?

No clarification needs to be required...I've clicked the X button, of course I would like to close the damn tabs. What did the guys who came up with this assume? That people don't know what the X button does, possibly? Don't make me snort - everyone, from the three to the 103 yr olds, has used a pc lately. Or possibly that you have to make it possible for, despite scrolling all of the strategy to the X button, they really needed to close the rattling browser - thus treating everybody like goldfish or the mentally disabled? This, again, could possibly be dumped to the settings menu - and the default ought to be Don't Bother ME.

Another - and worse - example is Chromium. Anytime it does not close accurately it displays this upon startup:

And this crap will stay there and take up area until you shut it or choose to restore pages. Could they actually not simply have a small button (proper where the extensions are for example - that manner everyone will notice) that may restore the sites if anyone wanted? Right now, it takes up 1/4 of the horizontal display screen house until you react to it. Could there be a extra horrible design choice?

You'd think the area of interest browsers have provide you with a smarter method, but no dice. Otter Browser, for example, throws up a whole separate window:

Which lets you select the way you need to begin your session. And you cannot do a factor until you deal with it.

Smaller offenders are qBittorrent, which can remind you that you're responsible for the stuff you share, or one thing like that. Probably any picture or text enhancing program, which have the annoying do you want to save lots of before closing message (no, if I clicked the button, I want to shut - that's it! If you're so anxious about folks by accident losing their work, embrace an autosave characteristic - but don't bother me with popups!).

So - which programs do it right? Well, media players, PDF viewers - simply because there's nothing there to bother you with. NetSurf browser did not show anything after i improperly closed it and just displayed its start web page - the right habits - though it ought to even have an option somewhere to revive the tabs (that doesn't get in the way in which in fact). The gold standard is to have the performance with out the annoyance.

No offline assist

I mean, why would you assume everybody has an web connection at all times? You realize, individuals can take their laptop computer with them to a place without WiFi. Or their ISP could merely be down for some time. Or there is a power outage and so they're operating on battery. Or they moved and have no internet in the brand new home yet. No matter the explanations, help should nonetheless be available offline; if there isn't any point in connecting to the web - maybe do not make the connection.

Another peril of getting on-line-solely assistance is that you simply rely on a server to be up at that moment and even still exist in any respect. If it would not, the user will receive a message comparable to Pale Moon can't establish a connection to the server at trac.gajim.org as a substitute of the documentation. Users of old software program variations are especially susceptible, since devs have most likely stopped caring about supporting those at that point. They might have - for example - moved domains, but for the end user that is irrelevant since his program will still hyperlink to the previous one. Or they switched to an exterior site like readthedocs and let the previous docs simply die utterly. Or they grew to become Cloudflared and the TOR consumer is rejected. Or they only deleted the information, since who's using 10 12 months old software versions? (diggy is :D). Whatever the rationale, having assist locked behind on-line connectivity exhibits utter contempt for the user on the developers' part. It places the documentation on a timer, while offline is future-proof. Most GUI software suffers from this; SpaceFM, Claws Mail and Geany are all I've discovered to date that does not.

Lack of customizable keyboard shortcuts

This should be inexcusable in the trendy age, and yet has eluded the vast majority of software. You might need some basic keybindings in there by default (for some actions only - these the devs thought you'd want, the remainder can go to hell), however you can't change them - or worse - you are not even told what they're (Firefox and Chrome are examples of the latter). Why ought to we be at the mercy of the devs? We should be in a position to regulate our software program the way in which we need to. Geany has a nice Keybindings part in Preferences - why cannot others comply with? SpaceFM does it even better - you may set a shortcut for every single clickable merchandise. This is the gold commonplace - however for now we may settle for Geany-type Keybindings menu.

Crammed or empty menus

File, View, Edit, Tools, Help...sound acquainted? Apparently not to some "trendy" packages that thought they can do higher. As regular, both Chrome and Firefox are the primary offenders here. Chrome's menu consists of one button which accommodates the settings the devs thought are a very powerful - while the rest goes into a separate Settings menu the place every thing is crammed together once more. Firefox does even worse - the menu is a only a few huge buttons.

Cutting, saving, zooming - which might historically be in separate menus - are instead crammed collectively.

In fact, to attain this, each of these browsers had to massively cut down the amount of available settings (see above picture) - the rest are dumped into about:config or into the abyss. For a non-browser instance - GNOME three also apparently suffers from this difficulty (which has spawned the MATE desktop environment) - however I don't know a lot about it. What is incorrect with the traditional "desktop metaphor" interface? That's what the devs should assume about before developing with their "improvements". Fortunately, the vast majority of software nonetheless has the sane UI.

Depending on extensions for primary performance

Once you install a program, you expect certain issues to be there by default - but just lately, many devs have been shying away from that model. In fact our "favorites" Chrome and Firefox lead the pack - with every new version, an increasing number of stuff is removed and you are pressured to traverse their admittedly massive extension shops so as to add it again. So much that the very first thing anybody has to do after installing the browser is including a bunch of extensions to it. Content blockers, style editors, keybinders, proxy switchers...all issues that ought to be there by default. Is that actually the course we wish to go in? Now, that doesn't mean extensions are unhealthy normally - but they need to extend the software program, not replace it. Who does it proper? SpaceFM for example - all the basics (and extra!) you'd expect from a file supervisor are there, and anyone can submit and share a plugin with a customized command. SpaceFM has hit the jackpot again - why can't others observe?

Long option to usability

You start a program and anticipate to be able to work right away. But not all of them enable that. The truth is, for some there is kind of an extended path before you can use it, and it isn't all the time apparent. Let's take a look at what appears once we begin the GNU Image Manipulation Program:

A complete lot of nothing.

Okay, let's make a brand new file. Great! Now to begin drawing...wait, where is my paintbrush? It's hiding in the Tools part in fact. Wait, I made a mistake - gotta erase it! So let's discover the eraser...there it is. Now the paintbrush once more...screw it, that is so inconvenient. Why can't I've all the instruments displayed on the sidebar? Oh wait...Windows > New Toolbox permits just that, however why wasn't it there by default? And the way may I've known it is in Windows and not Tools? It is so unintuitive. Okay, let's pencil something in and our drawing is finished. Hmm, that's quite large for a pencil...I need to scale back the size. After all, an choice to do that ought to have appeared the second I selected the pencil...however it isn't there. Where is it hiding? In Windows > Dockable Dialogs > Tool Options. Attempt to guess that! Inkscape does it right - what's GIMP's excuse? I've targeted on it here but this could apply to any software - even Linux distros that require putting in too many further packages to be usable. Or a media player that needs screwing around with codecs, etc.

Pretending to know what I would like better than me

Recently my Linux system threw up an error about an .Xclients file, so naturally I went to DuckDuckGo to check what's up. And what do I see? Including outcomes for .purchasers. Fuck off - I typed .Xclients, as a result of that was exactly what I needed to seek for! Spellcheck is one other "feature" that fits into this class - if I misspell one thing, that's on me - I can all the time verify a dictionary if I'm not sure. What I don't need is an obnoxious strikethrough - or worse, an automated modification - which, ironically, usually ends up being flawed (many horror stories of forum posts having their meanings modified completely thanks to spellcheck). Maybe this stuff wouldn't be so unhealthy in the event that they were not the defaults - however sadly, they usually are.

Feature creep

Let's play a sport! Guess what's the principle objective of this program? It's an E-mail shopper! But can we actually say that if it has all that other "functionality" tacked on? I counsel calling it an abomination instead. Anyway, there are several the explanation why a program should not attempt to do multiple job - it clutters the UI, increases loading time, makes bugs and security issues extra probably, and simply confuses and distracts the customers. Efficiency can be decreased when your mail client is attempting to do the job of a chat program, since it won't do it as nicely and you have to a correct one anyway. But maybe more importantly, we already have a greater approach of doing what the abominations are doing - it is referred to as a window supervisor. Yes, that is the factor which permits you to start any program you need and change between them at will. Must edit some textual content? Launch Leafpad. Type some commands? Click the xterm icon. Send an prompt message? Pidgin is there for you. Putting a couple of sort of performance in a program is pointlessly duplicating the job of the window manager. It's like throwing your meals, clothes and electronics in the same container, as a substitute of neatly separating them. Now, this has nothing in any way to do with the recent mistaken pattern of "minimalism" - the place you intentionally have your program do as little as possible. Having features is fine so long as they are all relevant to the task at hand - so a mail consumer can have all of the performance needed for mail handling - but ought to keep away from intruding on the territory of web browsers or chat programs, like Thunderbird does. Other examples of software suffering from this subject include: systemd, SeaMonkey, FrostWire / Tixati, and plenty of others.

If you have any kind of issues concerning exactly where and also the best way to employ instantspacebar.com, you possibly can e-mail us in our own web site.

Location

Occupation

https://instantspacebar.com/
Social Networks
Member Activity
0
Forum Posts
0
Topics
0
Questions
0
Answers
0
Question Comments
0
Liked
0
Received Likes
0/10
Rating
0
Blog Posts
0
Blog Comments
Share:

Copyright © 2019 DeadBeatHomeowner | Powered by MaDCheRrys