12 ms·
Things end users care about but programmers don't
- PaulHoule 7y agoAs a dev I care about many of those things and feel like a voice in the wilderness. So far as weird numerics are concerned, it's astonishing how complacent the microcomputer world is about that. I think that 0.1+0.2 = 0.3000000000000004 or whatever it is is a distraction from "it just works" and if we want to offer more functionality to the "non-professional programmer" we should do something about it. Mainframes have had decimal numeric types from the very beginning since the people involved realized that fuzzy math meant you cut checks for the wrong amount. In the micro world there was the time that Apple had an Integer basic which schools thought wasn't good enough, so they licensed a basic with (bad) floating point from Microsoft. The people who care about numerics tend to be people who care about performance, those people can deal with the weirdness but they don't want to give up any performance for it at all.
- dagss 7y agoFloating point has a specific purpose in computing, where you deal with measurement, and don't know the scale. Adding one nanometer to a light year (to get back exactly a ligh t year) is actually a useful feature in numerical physical computation. Outside of scientific computation, machine learning, statisticd, etc there is seldom legitimate use for floating point. Nothing to do about performance I think. Either float is exactly right. Or, it is abused and is 100% entirely wrong. Right now Javascript specifically is to blame -- for its insane choice of making floats its only and default number type. This is a problem with Javascript only though. If you use Java or C# or go or pretty much any language except Jabascript and type "float" the problem is the programmer not the language.
- asveikau 7y ago> Outside of scientific computation, machine learning, statisticd, etc there is seldom legitimate use for floating point. I don't disagree with the broad strokes but wanted to point out that graphics is another area where it's useful. And lots of mathy stuff with practical applications. Audio could be another.
- novok 7y agoI think anything that wants to approximate physical reality finds the float useful. The real problems is when people use floats for human accounting and casual measurements like 0.1cm
- ajross 7y ago> insane choice of making floats its only and default number type Javascript math on integers within +/- 10^20ish produces integers and works as expected. It's true that division produces a fraction, so if you're expecting 2's complement integer truncation (absolutely the kind of "funny math" that users in this context are expected to hate) you won't get it. I don't see this as such a terrible design choice. The alternative is python's equally crazy menagerie of almost-but-not-quite-hidden numeric types waiting to bite you in unexpected ways.
- dragonwriter 7y ago> The alternative is python's equally crazy menagerie of almost-but-not-quite-hidden numeric types waiting to bite you in unexpected ways. No, it's not. Python and JS aren't the only two approaches to numbers, even among dynamic languages (Schemes numeric tower, which favors exact types, is another.)
- eropple 7y agoThe alternative is static types.
- novok 7y agoThis happens because 'rational' or fixed point floating point number types are not a first class number type along with float and integer in all popular programming languages. I've seen large company pricing teams do amateur stuff like use floats for their prices because the rational number types are not first class citizens. This probably comes from CPUs not having something like it in their ASM code. They all work with ints, floats and vectors of the two, probably thinking people could just use integers when they need something like a rational number type.
- jcranmer 7y agoRationals are computationally nasty. Even if you have hardware acceleration, they are going to be slow. Here's why: An integer addition (or subtraction) can be done in 1 clock cycle; multiplies will take 3; and division takes far longer, think 20 cycles or more. Fixed point additions are the same as integer additions, while multiplies and divisions both take a multiply and a division (although you can convert one of them to a shift if it's binary fixed point). Floating point additions are more expensive than integers (due to the need of normalization), taking about 3 cycles. But multiplies also take about that amount of time, and you can do a fused multiply and add in the same amount of time, 3-4 cycles. Divisions, like integers, are more painful, but they're actually faster than integer division: a floating point division is going to be closer to 10 cycles, since you have less precision to worry about. For rational arithmetic, you essentially have to run a GCD algorithm to do the normalization steps. Even if this were implemented with special hardware, it would be on the same order as an integer division operation in terms of latency. An addition or subtraction would cost a GCD, 4 multiplies, and an addition, while multiplication and division are cheaper at a GCD and two multiplications each. In summary, if you're looking at the cost of doing a dot product, it's 4 cycles per element if integer or floating-point; 5-25-ish if fixed; and 50+ for rational (assuming hardware acceleration; pure software is an order of magnitude slower). It's telling that the recommendation for solving rational equations is to either convert to integers and do integer linear programming, or to do a floating-point approximation first and then refine in the rational domain. A final note is that integer division is much more rarely vectorized than floating-point division, so fixed and rational arithmetic are not going to see benefits from vectorization on current hardware.
- lmm 7y agoJavascript is by no means uniquely bad. Far too many languages make float/double much easier to find and use than decimal types. If your decimal type is buried in the standard library that's not really any better than being in a third-party library. Java won't even let you use arithmetic operators on decimal types!
- dragonwriter 7y ago> Right now Javascript specifically is to blame Nah. JS is particularly bad on this point, but every language that has not been a special purpose langauge for the narrow domains where float-first makes sense that has made the premature optimization of defaulting decimal literals with fractional parts to floats and/or not providing language level arbitrary-precision decimal and rational types—which is a lot of languages, many more broadly influential than JS (C, for one) are too blame.
- lonelappde 7y agoA broken string library is not a bug in floating point. You can't cut a check for 0.3 pennies.
- samatman 7y agoI entirely agree with you: the default numeric type in computing should be the numeric tower, with floats chosen on an opt-in basis where their properties are useful. Also, zero shouldn't test as false in conditional statements, that's what we have booleans for (sorry, lisp friends nodding along until this moment, the empty list shouldn't be falsy either: just false, and None/nil).
- hathym 7y agoif programmer.have_time() and programmer.very_well_paid(): implement_things_users_care_about()
- cyberferret 7y agoThis article is a good reminder. When I started out my programming career many years ago, these things were fundamental in the way I created software, however things seem to have gone downhill in recent years. The reason? The pressure in the past from co-founders or stakeholders to 'get things out the door quickly' and to get a quick and dirty MVP out there. This often meant lack of time to consider these small details (or even to backload them into the system later for v1.0). Also ironically, we've had professional UX and CX designers work on my software creations who have cut a lot of these things off the interface and functionality as 'unnecessary cruft'. I would also add to the list under Colours/Formatting, that a lot of 'dark mode' designs out there that are considered fashionable just have too low a colour contrast or too small a font to make it readable my someone like me with degrading eyesight.
- nkrisc 7y ago> Also ironically, we've had professional UX and CX designers work on my software creations who have cut a lot of these things off the interface and functionality as 'unnecessary cruft'. As a UX designer, that pains me. The only "unnecessary cruft" I've ever removed was stuff the CEO asked for but tested abysmally with users. We launched it, then quietly removed it a month or two later after they were able to show it off to whomever they were trying to impress.
- cyberferret 7y agoSorry, I didn't mean it as a general swipe at all designers, and I am sure you are great at what you do. Specifically I am talking about the advice such as "Tell me what this does before I click on it" in the article. I tend to always put a description in small print under a button or option (or use a hover tooltip) to explain what a certain button will do when clicked (e.g. a button labelled "Assign Checklist", then underneath "Clicking this will assign a brand new checklist to the employee(s) you nominate". Or perhaps under an entry field for a mobile phone number, I specify in small print that the number should include the international dialling code etc.). These are examples of things that two different designers said to remove completely so the interface could be 'cool and clean' with minimal distractions. We did see an uptick in support queries about a few things after users inadvertently selected something at the wrong time or entered things incorrectly and wondered why they couldn't send text messages etc. On the flipside, there were a few screens with 4 or 5 lines of explanatory lines at the top or bottom that we removed and had nearly nil impact, or that users preferred. So I can see the necessity of lessening the things that users will read, but sometimes, I wish designers would go a little deeper and see when something that doesn't look as 'pretty' is still useful to keep.
- harimau777 7y agoIsn't that what pay is for? If you care about something but your programmer doesn't, then you pay them to start caring about it?
- rexpop 7y agoIn theory, but it turns out that most software products are most significantly just systems of social control. The economics of it don't work out; I can't pay the military industrial complex to value my life. I don't have that kind of money.
- Loranubi 7y agoEarly Windows (probably up to and including XP) did a lot of these things right. But now Microsoft is starting to go against their own recommendations.
- osamagirl69 7y agoHonestly this article misses my main request as a user: 1. Software should be free of bugs. At the very least, updates should not introduce new bugs. 2. Software shouldn't phone home. Ever. If I want to submit a bug report I will submit one through the usual OS channels, and I will give my feedback through your feedback button. 3. If you are a web service don't ever popup banners/tips/chat windows/whatever. Put links to them and I will click on them if I want. If you pop up a modal asking for my e-mail address I am leaving immediately. 4. Assuming you are doing well on #1, you shouldn't need to release updates on an hourly cadence. If there is a security vulnerability release a fix ASAP, but for new features bundle them together and release annually for mature software or quarterly/semiannually for software that is still being finished. I mean having a color scheme that is pleasant to look at is nice, but I would rather you just use my system settings in the first place. What I care about is stability and that the software puts my interests, as a user, first.
- paulryanrogers 7y ago> 1. Software should be free of bugs. At the very least, updates should not introduce new bugs. This is the ideal, especially since it could make software usable indefinitely. Sadly platforms change out from underneath apps, even apps carefully written to use only officially sanctioned APIs. And even Microsoft's years-long efforts at backward compatibility have failed to keep many apps running. I don't think it's possible without walking back the rolling releases in favor of discrete, infrequent upgrades--at least as a long-term support option.
- derekp7 7y agoBreakage due to OS upgrades is one thing. But at least make sure that the software doesn't do anything obviously bad. For example, I was dealing with a "security product" (basically something that profiles activity on the OS looking for malware activity) that we were required to roll out, and come to find out it reliably corrupts the RPM package database on both CentOS 7 and Amazon AWS Linux 2, whenever the OS is rebooted (assuming the software is set to start on boot). Things like this are unacceptable.
- klyrs 7y agoThis title is awful. Plenty of programmers care. It just takes a lot of work to get a project to this level of done.
- TheCowboy 7y agoThere are probably comments on HN to back this up. When features like these are removed for no good reason from various sites or products, often there's a comment out there complaining about it at some point.
- closeparen 7y agoHere’s something users don’t care about. Your next version. You’re a fucking text editor. You do not get to update, ever. Not “remind me later,” not “skip this version,” never. How fucking dare you throw an update prompt or a release notes screen when I’m trying to use a tool to do a job. It’s unconscionable arrogance to think a change to an already-complete piece of software is worth an interruption like that. If I want it to behave differently than it does, I’ll go looking, and the answer is “you gotta upgrade” then I will. But not a moment before.
- kick 7y agoIf you're using an open source editor, compile it without the update check. If you're not, pay for your software, then disable the setting. In neither scenario is there an excuse for entitled laziness.
- minieggs 7y agoAdjacently, release software through the OSs you target. Stores, pkg managers, whatever.
- egypturnash 7y ago“Hey we came up with some new ways to try and solve the kinds of problems this tool is designed to solve” isn’t worth a note? “Hey the version you’re using now won’t work with the new version of the OS you’re using but we fixed that”? “Hey, we fixed a pile of long-standing bugs”? You don’t wanna know about any of those?
- ubercow13 7y agoIt's not great when a modal update notification pops up some X milliseconds after opening a productivity tool, after the required network request has completed. By that time you might be half way through typing something, or just about to click something in the interface.
- jcims 7y agoThis is the main issue. It's not that the information is unwelcome, it's that the delivery of said information interrupts workflow. Notepad++ has been particularly annoying me lately with this one. They removed the option to disable auto update a while back, need to see if it has returned. There should be a site that catalogs anti-patterns and nuisances in applications so we can publicly see the outcry over stupid stuff.
- foobar_ 7y agoYes, sometimes when you use new updated ... these things go missing in other places so it becomes painful to retrain to the next version.
- hn_throwaway_99 7y agoUmm, I want a pony too? I mean, I think most programmers care about these things and want them too, but people (programmers and end users, but especially end users) tend to drastically underestimate how much they actually cost. I've contracted for a small dev contracting shop, and it's amazing how, when customers come with a long wishlist of things they want a piece of software to do, these customers quickly "stop caring" about most of these features when they see actual dollar amounts next to each line item.
- et2o 7y agoMost of these things are not ridiculous asks and a lot of them do seem like they are truly underserved but programmers compared to the mildly tech literate end users. Of course parsing CSV will never go well
- novok 7y agoThey aren't crazy, but they do end up creating more complexity than you would think. My pet theory is the stuff you see skipped over in many programs that seem simple actually generate a lot of complexity when programming, so engineers tend to avoid adding them as a path of least resistance thing. Like that colors feature set would need a fairly sophisticated color theme system, you would have to force designers to work with a set of theme color names vs raw color values along with a design system and you would need a fairly sophisticated color linter to automatically catch things like "Don't place similar colors close to each other"
- lkschubert8 7y agoThe colors feature set specifically strikes me as extremely difficult to implement. Using "your" color palette would require a standard for color palette usage names which would have to be meaningful across multiple different design ideologies (HIG, Material, etc.). And then on top of that it would have to prevent contrast issues? That is significantly more difficult to do in any sane way than that feature list suggests.
- ok_coo 7y agoEnd users don’t care that you want to refresh your design every year. I know you need to keep your designers employed and doing work but please stop.
- Iv 7y agoAnd if you redesign, please, pretty please, keep your URL structure intact. Having links being invalided every two years is jut a pain.
- laurentdc 7y agoThis a thousand times. So many app redesigns. Every time I open Spotify they moved the search option somewhere else. On Gmail for Android you have to guess which is the "mark as unread" button now. The train app for my country is still a bugged mess, but now they added one of those monochrome vector humans that everyone has in between loading screens to mask sluggishness. I'm starting to think UI design is the next bullshit job
- Bootwizard 7y agoThis is exactly what we do at my current job, and it's infuriating to everyone but the management asking for it. We have many different apps and we have 3 different versions of the UI right now because we're slowly redoing the frontend for all of them as we roll them out over several years. What a massive waste of money and time. Some of these apps don't even have enough users to warrant the reskin!
- catalogia 7y agoI'm sick of the meme that programmers aren't end users too. I use software as much as any non-programmer does.
- egypturnash 7y agoBut you probably use very different software, in different ways. Do you think your non-technical relatives want to spend a single second in a CLI?
- samatman 7y agoYet here we all are, using a browser, the most bog-standard piece of kit on a given computer.
- LarryMade2 7y agoA lot of those are nice additions, maybe in the third or fourth generation of the application when you got the data structure nailed down you can look at skinning and things. Other bits sound nice but are back-end hell or licensing hell to implement. I try to get the program being able to be useful informative, easy for data entry, etc. After that - if I get the time - I can go onto enhancing other features like the style sheet (now that you got a good idea of what styles it utilizes its much easier to optimise the CSS to make it skin-able.) Integrations and import/export is a pretty nebulous thing, and if you are interacting with some proprietary system you are always needing to maintain the export/import code to stay compatible (not that easy). Depending on the format you may run into licensing issues to get interoperability, in others some of the local dev or external use tech might not be mature enough to implement well or correctly. "Just put an undo on it." "Detailed and up to date guides in text with screenshots at each step and highlights" Yeah. sigh If the development and team is mature these things will eventually happen. But then comanies fall back when they are riding high on just maintenance and loose the experienced members; then new devs that come in are so overwhelmed on the legacy codebase they just re-write from scratch, picking some bits to reimplement, and loosing a lot of others. Then again, you put a knowledgeable developer in to the planning process and they would surprise you "We could reorder this entry process here and cut more than half the time on data entry", "That report on the old system is redundant, here's why" and "have you ever thought of doing this cool feature? Because that would be so easy implement..."
- mark-r 7y agoI've found that Undo isn't something you can bolt on after the fact, you need to design with it in mind from the start. I've had very good outcomes with that approach.
- stock_toaster 7y ago... and also things they don't want to pay for.
- Lutger 7y agoThis reads like a list of decent but non critical enhancements to many programs. The funny thing is, myself and most programmers I know love working on things like this but most of the time it is not the programmer who is calling the shots on what his time should be spent on. It's the customer who doesn't want to spend money or the product owner who needs to be mindful of the budget spend. So a better title would be: 'things end users would really enjoy but don't actually feel is worth spending money on'. Because if those users would actually think these are valuable things, they would pay for them and you bet that programmers will implement them. They are also users and fairly nitpicky ones.
- chrismcb 7y agoThis reads like a list of decent enhancement that separates a good program from a great one. Some of them are really hard, but many are just the spit and polish that makes a good program a great one.
- jachee 7y agoUsers will pay a premium for high quality software. Just ask Panic, 1Password, BBEdit, and—until very recently—macOS and iOS.
- dm33tri 7y agoOnly Mac and iOS (and sometimes Linux) guys pay premium for software. Windows and Android users only pay for games, sadly.
- paxys 7y agoThese are mostly things that programmers who are also end users care about. I haven't run into a single non-technical user who cares about customizable colors, dark mode, exporting to CSV/JSON/whatever else, customizable shortcuts etc. The average user won't even know what most of this list means.
- baroffoos 7y agoEnterprise users love excel import/export. Potentially CSV as well.
- onion2k 7y agoUsers do care about things like that if you ask them in non-technical language. "Would JSON export be important to you?" is the same question as "Do you want to be able to download and backup your data?" but each question will get quite different responses in most cases. An important skill for senior developers is to be able to talk about technical things to non-technical people, and not to dismiss the opinions of users based on their lack of technical knowledge.
- mikro2nd 7y agoNo, I don't think end users care the smallest jot about what format their data gets exported in for backup, just so long as they can re-import it (otherwise it's not really a backup, is it?) The only time I can think of that they might care or have an awareness that formats matter is if said data is being transported between different applications where there is some pre-existing standard (e.g. BeerXML in the world of brewing caculators.) Aside from that you've conflated two unrelated requirements.
- for1nner 7y ago> It should work on my old android phone browser/IE 11 Disrespectfully, No. Please die, IE. Please. But otherwise, I think the spirit of this is pretty accurate, if only that parenthetical at the top were perhaps more emphasized or explained. Anecdotally, working for crm-adjacent services, there was just a firehose of things customers (and our own sales/customer-facing teams) wanted to implement for the sake of "customization." And especially some of the customer asks were incredibly QoL-based and reasonable (shocking, I know), but the reality was that the roadmap was being pushed ever along, management and sales want new features to polish up for leads and investors, and we simply lacked the manpower to sufficiently cover both sides of that coin. Now that speaks more to failures in the org structure and leadership than anything (imo), but I think it's not dissimilar at many places, both small and large. Long edit complete.
- dm33tri 7y agoThis list looks more like what programmers care about as end users. Average users prefer WhatsApp and Instagram over good messengers. I honestly don't know why such bad software is still relevant.
- abalone 7y agoThis is a great list and I want to add that the “simple” ones are a lot harder when third party integrations are involved. Or even dependencies on other teams in a sufficiently large org. It takes a certain mentality and commitment to look beyond “programming” problems to address these scope/not-my-job issues.
- squarefoot 7y agoI know where this ends; been there done that. The programmer implements all those options in a configuration panel, the user looks at it saying "uh... too complicated" (0), shuts down and uninstall the software then chooses an easier one that forces mostly predefined options on a dumbed down panel, only to complain later that it can't do this and that therefore a more powerful one is needed. Rinse, repeat:^) Also, if anyone is using a RAD for developing the software for a customer, never, ever, ever, show the customer that a button or any other widget can be easily shown or not, moved, resized etc. on the panel, or be prepared to be asked a layout change like twice a day, of course for free since it's just 5 seconds of clicking. Seriously, sometimes it's much better for users to believe that the UI is some sort of black magic that cannot be touched otherwise they'll waste all your time rearranging the layout instead of concentrating on more important issues they're not aware of. (0) Some good research has been done in the past about how much information the user can be shown before the amount of it ends up distracting from the problem; iirc probably IBM was involved; I was told about that in the mid-end 90s but it likely dates from the previous decade.
- irq11 7y agoWell, yes: if you design something badly, users don’t want it. So let’s add “thoughtful design” to the list of things that users want, but which programmers don’t care about. And before anyone says it: there’s nothing on the list that is unreasonable to implement, or that requires a messy/confusing control panel. Apple software has most/all of these features, and more. You have to be willing to iterate on the interaction design of features. If your first instinct is to cram it all into a single config to close the ticket, that’s an okay starting point, but it isn’t where you want to end up.
- wavefunction 7y agoSpeak for yourself. This reads like an enumeration of the traits of a stereotypical arrogant 'programmer' from the 90s. (Got my start in the 90s but didn't stay there)
- muzani 7y agoSurprising how much of it is about color. As a user, I don't really care what color anything is, even if it's nasty like Discord. I want a dark theme, but it's mostly because it lets me save battery and doesn't glow in my bed at night.
- onion2k 7y agoDark themes only save battery power on devices with displays that have per pixel lighting (eg oled like a modern iPhone). If the background lighting is fixed like an led or lcd display then the thing that impacts your battery is the brightness level, and most users can view a light theme at lower brightness than a dark theme. If you're using dark mode to save battery on a laptop it's not working.
- adrianN 7y agoIn fact on lcds black consumes a tiny bit more power because polarizing the lc foil takes a little bit of power. But I doubt you can measure the difference through the noise of normal computer operation.
- muzani 7y agoOn a phone, it has added roughly 4 hours of battery life at night. I'm not a big fan of dark theme, but only started using it for the battery conservation.
- magduf 7y ago>If the background lighting is fixed like an led or lcd display This hasn't been true of LCD displays for years. They now use LED backlighting, and the backlighting is dynamic (it varies in brightness depending on what'd displayed, and changes across the display too). >If you're using dark mode to save battery on a laptop it's not working. This is only true if your laptop is circa 2005.
- myu701 7y agoMy business class just-retired-to-k3s-duty laptop was manufactured in 2014 and has a LCD. That was only 5 years ago. Fixed backlight, no light ambience sensor. Cheap laptops today like the HP Pavilions of the world still use fixed-backlight LCDs as well.
- 0xkalle 7y agoThis is the true one: * WYSIWYG editor that behaves like Word
- mikro2nd 7y agoNumber/date formatting to the right locale Uh,... maybe. This may work well for most people, but at least allow me the option of setting up my own format. I happen to live in a locale where the "official" locale-specific formats for numbers and money are almost never used by real people (because they're ugly and fuggly.) So it gets pretty annoying when LibreOffice only recognises it's own list of locales and will only apply the "official" formats. As a result, you can count on the fingers of one head the number of people here who will use "Format > Money". They'll rather use some number format that looks the way locals all expect things to look.
- oeuviz 7y agoJust out of curiosity: do you mind sharing which locale/area this is?
- mikro2nd 7y agoZA
- TeMPOraL 7y agoSeconded. If anything, I'd personally prefer the date to be ISO 8601, because that format is unambiguous and universally readable everywhere people use the Gregorian calendar. As a programmer, using locales for number pisses me off too; in Poland, the decimal separator is a comma instead of a dot. Beyond me being used to the dot, this causes me no end of grief when entering numbers, because a combination of system locale and preferences of particular software makes it unpredictable. There are benefits to universalization and standardization; dates and numbers are obvious targets.
- sethammons 7y ago> ugly and fuggly Fuggly means fucking ugly, or so I have always thought. Is that not how you are using it? It would be odd to call something "ugly and fucking ugly."
- greggman2 7y agoUsers don't care about most of this. Custom colors? Tell that to Apple's customers who seems to have no problem using a non-customizable OS. Running on obscure hardware configurations? Users don't have those, programmers do. Company branding? That's not a user request. Touch gestures? Who made this up? Not users.
- makapuf 7y agoAgree 100% it depends on the software but you cannot choose the color of your professional tools in general. Your Bulldozer and medical scanner don't come in purple, sorry.
- ken 7y agoYou can always customize it. Professionals paint their tools all the time, since you don't want someone taking your drill home from the job site. Every Genie lift rental has the rental company logo bigger and brighter than the Genie logo. Yes, you can even get your medical scanner in any color you want. One of GE's standard designs is an MRI scanner painted to look like a spaceship, a coral reef, or a hippo: https://www.gehealthcare.com/products/accessories-and-supplies/adventure-series-for-mr https://www.gehealthcare.com/products/accessories-and-suppli... https://www.flickr.com/photos/gehealthcare/sets/72157629488755266/ https://www.flickr.com/photos/gehealthcare/sets/721576294887...
- makapuf 7y agoI stand corrected,thanks. However the scanners are targeted towards patients, and brand customization is understandable for clients. You however see my point : for adults, having a precise or dependable MRI is more important than having it in purple or branded for xyz hospital.
- TeMPOraL 7y ago> Running on obscure hardware configurations? Users don't have those, programmers do. Users have different kinds of obscure hardware configurations. Some programmers may choose to assemble their PC for performance instead of buying an off-the-shelf Macbook, but users will often buy random crap offered by laptop manufacturers, because it looked nice or was cheap - and the cheap stuff is often cheap because of weird/substandard hardware on board.
- TeMPOraL 7y agoI'd agree with only some of the suggestions. > [all things color scheme] A decent color scheme is enough. People don't change it much, if at all, unless they're bored, so I wouldn't go out of my way to support it. Main use cases are, arguably, light and dark mode, and supporting an OS-global switch if one exists. Tips about assigning colors to things are spot-on, though; consistency and discernibility turns color into a powerful communication tool. > WYSIWYG editor that behaves like Word Yes please. In some ways, I'm sad that ActiveX/whatever the way to embed Word on your webpage was died. People really shouldn't keep reinventing their own WYSIWYGs on pages, each with slightly different behavior or interface. That said, this would probably be handled best by a set of guidelines or a library from Microsoft, instead of having to connect to actual Word. > Number/date formatting to the right locale In my personal opinion, locales should die, and everyone should switch to dot as decimal separator and ISO-8601, respectively. But I'm fully aware the general consensus seem to be different :/. > Tell me what this does before I click on it That's what tooltips are for. Harder on mobile, but there's no excuse for web developers who don't include them. > Support touch gestures and mouse Support touch gestures and mouse and a stylus, simultaneously, as separate things. Because they are separate. A pen/stylus on a 2-in-one computer (e.g. Microsoft Surface or Dell Latitude lines) is a huge productivity booster if it's supported. It rarely is. I'm constantly hunting for software that does it right, but there's very little of it, and I have not yet seen a single web application capable of handling a stylus (even though technically, the APIs for that are there). Examples of correctly handling a pen vs. other modalities: without having to switch modes or active tools, allow me to draw with a pen, select with one finger, pan with two fingers, and select with a mouse. > UX The entire section is spot-on.
- groestl 7y ago> That's what tooltips are for. Tooltips, and the forgotten art of ellipsis, promising a dialog instead of a potentially destructive action. I've met UX designers that have never heard of them.
- TeMPOraL 7y agoOh yes, the ellipsis. As the self-proclaimed member of the Order of the Ellipsis, I use every opportunity available during UI design sessions to ensure this knowledge isn't forgotten. (BTW, I know for sure that pattern is a thing on Windows. Does MacOS follow similar guidelines here?)
- janpot 7y agoYou mean "Things end users care about but can't afford"?
- perlgeek 7y ago> Use accounts/permissions from Active Directory If users want that, they tend to be enterprise customers, and you can charge money for your software. That's good for the programmer :-) Users who want AD integration also want (generalizing a bit, of course): * Audit logs * Metrics export to common BI tools * APIs * Separate billing address * Role-based access control * a way to sync data between different environments ... and so on. It's amazing how much work you as a programmer could spend "enterprisifying" a simple application. I kinda wish for better tooling to make enterprise-ready applications, so that many of these things are less effort.
- PaulRobinson 7y agoEnterprise tooling probably needs to make event sourcing out of the box easy to do, with metrics being either a real time stream they can tap into, or an ETL process fed by that stream. Having a decent integration layer is important: I'm about to spend my Christmas "enjoying" Apache Camel installs to get up to speed there, and it's probably wise to move all auth out to something like Keycloak so that it's just "done" and federation back to AD is config, not code. As to getting data synching between environments, well... that gets fun all by itself...
- AndrewDucker 7y agoNot just Enterprise customers in the "the Enterprise is the customer" sense - if you work as a software dev in an enterprise then your users want to be able to use their normal password, and not create a new one for your app.
- blowski 7y agoBasically, SOC II certification. Having that significantly increases the opportunity to sell into enterprises, because they don’t need to do a lot of security audit work before buying.
- sandoooo 7y agoAll of these things can be had in the software you want - just need to ask for it up front and pay a sufficient amount of money and accept a longer timeline. Some of these things are surprisingly expensive, even when they seem simple. It is entirely plausible that, after discussing prices, the response from client is 'actually... can you just make me a CLI thingy that spits out a csv?'
- grenoire 7y ago> Can be mounted on a path that is not the root of the domain. This is so important to me when deploying frameworks and whatnot; I don't want to ever spend an hour battling nginx or httpd to move it into a fake directory.
- l0b0 7y agoIt's not that programmers don't care about this. It's simply that with today's tools this is $1E7 to 1E8 to implement all of these decently for any application.
- adventskalender 7y agoDo users really care about being able to customize the design (themes or more fine grained)? I did that when I had my first Amiga. For a while, when I bought a new Computer, I configured Windows back to "classic mode". After the umpteenth time, it just gets tiring. These days I don't even change the desktop background anymore. I'd much rather the developer make sensible choice to begin with, so that I don't have to think about it. Maybe I should look into Vagrant. Even installing extra "developer fonts" on every computer I might develop with is too straining to me.
- m12k 7y ago- Some words or identifiers should always have a specific color - The same thing should have the same color everywhere - Good contrast is at odds with: - WYSIWYG editor that behaves like Word If you give users the option to use all bold Comic Sans, someone will do just that - and other users they share their work with will have to bear the brunt of reading it. Silly example, but it goes to show that you really can't have it all. For every user that cares about one of these things, there's 9 others for whom having to read, understand and decide not to care about it makes the program more complicated than it needs to be.
- phtrivier 7y agoAlso known as "Things end users care but not enough to pay anyone to work on it, rather than on your application's core domain. Which they are not exactly willing to pay for either, but that's a different story."
- myself248 7y ago> Case-sensitive/insensitive filtering. YES. Searching for "O'Brien" and coming up with no hits because it's in there as "O'brien" is a slap in the face. It's a clear signal that the programmer believes the user should serve the computer instead of the other way around. Lookin' at you, Linux filesystems...
- squiggleblaz 7y agoHow often do you search the Linux filesystem case sensitively? I couldn't tell you how to use `find` to search case sensitively (use -iname to match a name case insensitively) and tab completion works case insensitively on my computer (maybe it's some configuration I picked up two decades ago? dunno). In the gui it's always been case insensitive. The fact that the linux filesystem allows you to have a file named "o'brien.txt" and another file called "O'Brien.txt" is a completely different matter than case insensitive filtering. Otoh, at least they let you call the file "O'Brien.txt"... How many incompetent programmers suddenly decide that because an apostrophe is a part of SQL syntax, it's prohibited to include apostrophes in names? (or prohibit them when they aren't preceded by a backslash, which is just weird. the thinking behind that logic is unfathomable. it doesn't actually make a string safe to include in sql, simply because at some point in its lifetime, all apostrophes grew unwanted backslashes)
- dTal 7y agoThe filesystem is not a search facility. If you want a fuzzy search utility, get a fuzzy search utility. The filesystem itself should distinguish between letter cases, in case the user wants to.
- squiggleblaz 7y agoSpelling my surname properly. Computers can't do it. They just say "oh, let's capitalise the first letter and make the rest small". Makes me sad.
- jwilliams 7y agoAnother title is "Things users will struggle through, because your product fixes a critical, fundamental issue for them" No snark intended. Often a product that solves a real huge pain point has it's own sharp-ish edges too.
- rsp1984 7y agoFrom 1st hand experience let me add IT: Your app can magically talk to servers on the internet from behind my Firewall without my IT being capable to whitelist respective servers.
- pure-awesome 7y agoI'm quite sad that accessibility is not mentioned at all, because I'd say it is THE CLASSIC feature that many users pine for but developers frequently overlook. Just to name a few of the major ones: * Screen-Reader Support * Alt-text for images * Sensible zoom behaviour * Options for keyboard input (instead of relying on mouse) * Colour-blind & high-vis color schemes (Though "change color of things" covers that, at least) Funny side-effect is that implementing this stuff very often (I'd even say almost always) makes the product better for your non-disabled/non-handicapped customers as well.
- miguelmota 7y agoWhat percentage of customers actually request accessibility features such as screen reader support? I agree that every application should strive to be accessible for screen readers and the lowest common denominator but if the project manager had to prioritize features to develop, they'd choose features that majority of customers are requesting such as the things mentioned on the list.
- robinwassen 7y ago100% of all gov customers. Basic accessibility tool support is not a feature, it just becomes a part of the frontend workflow when you get into it. My flow is basically: - Develop some frontend stuff - Check that I can use it with only keyboard - Check that it looks OK at 200% zoom - Run Devtools + axe audit - Fix any issues found Of course there are odd cases such as complex custom components that are really hard to get right, but mostly it's quite easy and goes fast.
- pure-awesome 7y ago> they'd choose features that majority of customers are requesting Just an interesting Side-note: features customers REQUEST and features customers CARE ABOUT are not the same. People are great at telling what they like or don't like when you show it to them, but they're not always great at telling you how to improve it. I can't find the source now, but I've come across a story of a game in which players were complaining that the shotgun was too weak. The game devs solved this problem by... increasing the reload time on the sniper rifle, and the complaints went away. The players could correctly tell that there was a problem, but incorrectly diagnosed the best solution (assuming the devs were right in their decision). Here are some random articles going over this argument in more detail: https://www.appcues.com/blog/dont-give-users-what-they-want https://www.appcues.com/blog/dont-give-users-what-they-want https://www.nngroup.com/articles/first-rule-of-usability-dont-listen-to-users/ https://www.nngroup.com/articles/first-rule-of-usability-don... https://uxplanet.org/stop-asking-users-what-they-want-21e9ba646bce https://uxplanet.org/stop-asking-users-what-they-want-21e9ba...
- chiefalchemist 7y agoUX is tough. So tough it has it's own speciality field. Programmers are not UX'ers. That's fine. We can't be accountable for everything. We would however benefit from a better sense of empathy for users, as well as a more holistic view of "the product." The medium (code) should align with the message (experience). Long to short, not a single user wake up and think "Today I want to use a product based on Technology X, Y and/or Z."
- mannykannot 7y agoI still see retail sites crippled by poor search choices, such as requiring the customer to understand how the retailer categorizes its inventory before it will search for anything, or by showing the union of the matches to each term, so that adding terms, in an attempt to narrow the search, broadens it instead.
- ivanhoe 7y agoIt depends a lot on a type of app, business users usually don't care much about color palettes and having a dark themes available, and worry much more about how streamlined is the workflow for their particular needs. > but our tools make it really hard to provide That's why we build web apps nowadays...
- EricE 7y agoColor is huge! There are so many half-baked trends in color that look great for people on large screens with wide color gamut and young eyes, that in less than ideal conditions are completely illegible. Some of the best guidance for the use of color written in plain, easy to understand language: https://designsystem.digital.gov/design-tokens/color/overview/ https://designsystem.digital.gov/design-tokens/color/overvie... Should be mandatory reading for anyone with any hand in designing a user interface.
- jdhzzz 7y agoDidn't OS/2 bake a bunch of those things into the operating system where they belong? Why don't we use it? Multiple "Product of the year" awards (I've seen 4 in a row but cannot confirm). I'm still a fan.
- chadlavi 7y ago> Good contrast > Automatic contrast of text if I pick a dark/light background These are not preferences, these are minimum requirements. Programmers should care about this.
- andai 7y agoHave you seen the settings of the current version of YouTube? First of all, it took me a good ten minutes to find them, because now I have to scroll down on the Account screen to reach it, and there is no indication that this screen is scrollable.[1] No scrollbar visible until you start scrolling. Nothing peering up from the bottom end. No drop-shadow at the bottom. It just looks like the the last option on the page is Turn on Incognito. Once I reach the settings menu, it took me a while to figure out what I could click on and what I couldn't. The buttons are not buttons, they're just text. In fact, everything is text[2], only the context ("Live chat" vs "YouTube, a Google Company") suggests that something is clickable. Why? [1]: https://andai.tv/img/youtube.png https://andai.tv/img/youtube.png [2]: https://andai.tv/img/youtube2.png https://andai.tv/img/youtube2.png
- pc86 7y agoHow are multiple export formats, configurable deployments/platforms, and consistent UX things programmers don't care about?