[HN Gopher] When users never use the features they asked for
       ___________________________________________________________________
        
       When users never use the features they asked for
        
       Author : jermaustin1
       Score  : 150 points
       Date   : 2021-09-29 20:41 UTC (2 hours ago)
        
 (HTM) web link (web.eecs.utk.edu)
 (TXT) w3m dump (web.eecs.utk.edu)
        
       | ipaddr wrote:
       | People will buy products because if features they will never use.
       | Not building costs money.
        
         | 542458 wrote:
         | This is particularly true if the "users" aren't the ones who
         | are signing the cheques. Sometimes shiny stuff that looks good
         | in a product demo or on the trade show floor is what it takes
         | to actually move units.
        
       | adamm255 wrote:
       | Nice post. I liked this take away. "Users say things for a
       | reason, but there may be more to it than face value."
       | 
       | Theres often more to what a human says than face value. The key
       | is to always be asking questions, always ask why, multiple times.
       | Ask questions until you feel like you're on the edge of pissing
       | someone off.
       | 
       | Often, a good bit of time up front can get to a few outcomes
       | which save you a massive headache.
       | 
       | 1) You understand the feature so well, you're ready to go and
       | know it will be used. 2) The REAL ask was something totally
       | different, and now you know what you need to do (nor not in some
       | cases, sometimes its training, using the product properly/as
       | intended etc).
       | 
       | You're also going to be giving the requester the space to fully
       | explain themselves, and sometimes they can talk themselves round
       | as well. At the end of the day everyones a winner when we ask
       | more questions and listen.
        
         | new_guy wrote:
         | The 5 whys https://en.wikipedia.org/wiki/Five_whys
        
       | strict9 wrote:
       | A metaphor for this situation (building exactly what customers
       | ask for) could be the car Homer Simpson designed ("The Homer").
       | 
       | https://simpsons.fandom.com/wiki/The_Homer
       | 
       | Not that all users are equal to Homer, but what they think they
       | want and what they actually need are very different.
       | 
       | It's better to get more detail on the problem, then present a
       | series of possible solutions to evaluate and iterate on.
        
         | smusamashah wrote:
         | Not just that. If the feature is given in an usable or other
         | poor form. They won't use it even when they have it right
         | there. May be its not very obvious, or complicated, or too time
         | consuming. Design makes all the difference.
         | 
         | If you give them something they never needed or asked for, but
         | it's so obvious and simple to use, they will use the hell out
         | if it.
        
       | KirillPanov wrote:
       | ... and this is how we got WebUSB.
        
       | everdrive wrote:
       | Sometimes I wonder if software is becoming worse because logging
       | is coming better. We have so much data about problems that users
       | are having, feedback they're providing, etc. Perhaps following
       | the mass of people is the root cause of software's constant and
       | worse UI changes.
        
         | quickthrower2 wrote:
         | Jira takes the biscuit with their text editor. Always changing
         | and hard to make sense of. Recently ctrl-enter and enter
         | actions were swapped!
        
           | Minor49er wrote:
           | My favorite thing about their text editor is that it will
           | delete all of your changes with no option for recovery if you
           | accidentally hit the escape key. I also like how this has
           | been an open issue for many years on Jira, but they refuse to
           | change it for some reason (or at least that's the state of it
           | the last I checked about a year ago. Thankfully, I don't have
           | to use any Atlassian products anymore.)
        
       | valparaiso wrote:
       | Ha. Title is right about Android fanatics and Apple.
        
       | [deleted]
        
       | protomyth wrote:
       | The funner one is unique to enterprise developers. Begged to
       | implement a feature to the enterprise software, the development
       | team puts in a hell of a lot of hours to get this time sensitive
       | feature into the production. Then, out of nowhere, a manager of
       | some import informs everyone that they cannot use that feature as
       | its "against best practices" or some other language to that
       | effect. Bonus points if said manager was on the email chain about
       | the feature and its progress.
        
       | datavirtue wrote:
       | I was hoping for a good old fashioned, negative developer rant.
        
         | rightbyte wrote:
         | The author is atleast referring to those rants as "angry mails"
         | he got.
         | 
         | I think these automated CI systems is a losing battle. It makes
         | the build chain to complex. There is too much corner cases that
         | gives false positives unless you keep it dead simple, like eg.
         | enabling all warnings are errors or something in gcc.
        
       | macando wrote:
       | > _Turns out there were a few hiccups: everyone involved in that
       | project we wanted to use had left the company, we had no idea how
       | to build the source code, it had something like 500,000 lines of
       | code, and the one person we found that knew anything about the
       | project was 13 hours ahead and stopped replying to our emails._
       | 
       | When you don't talk to users this is what you end up with.
        
       | [deleted]
        
       | [deleted]
        
       | commandlinefan wrote:
       | I once spent a week working on a fairly complex feature for a
       | product that the users were demanding almost daily updates on. I
       | delivered it and, by coincidence, happened to be where the users
       | were a couple of weeks later and I stopped by to say hello and
       | saw that the user who had been asking for the feature every day
       | was still using the product the "old way". I asked why and he
       | didn't seem to follow what I meant, so I reached over and showed
       | him the _feature that he had been demanding I add_ and he said,
       | "oh, wow, that's awesome, that's going to be such a huge
       | timesaver for us!"
        
         | jsemrau wrote:
         | The wonders of digital transformation. One of my biggest
         | insights here was that digital transformation is not only the
         | technical upgrade or simplicity of implementation but rather
         | the cultural implementation i.e., process re-development and
         | re-training.
        
         | quickthrower2 wrote:
         | You did the customer success role.
        
         | DrammBA wrote:
         | How subtle was the update message letting the users know about
         | the new feature?
        
           | garmaine wrote:
           | Yeah sounds like the lesson here is that nobody reads the
           | update messages.
        
             | Semiapies wrote:
             | Couldn't have anything to do with how app update screens
             | share the exact ergonomics that subscribe-to-the-newsletter
             | nags and other ad popups have.
        
           | Aeolun wrote:
           | I mean, they stopped demanding the feature every day. Clearly
           | they were aware that _something_ changed.
        
       | oceanghost wrote:
       | Before the launch of the XBOX 360, the company I worked for was
       | one of their suppliers, and without going into enough detail to
       | make me identifiable, the management of our two companies had
       | arrived at sort of a stalemate: We didn't want to tell them
       | exactly how our algorithms worked, and they didn't want to tell
       | us exactly what they were doing with them-- think of it like a
       | data compressor where, we don't want them to know the exact
       | compression algo, and they don't want us to have their data.
       | 
       | So, somehow, It is arrived at that a website will be created that
       | encodes MS's proprietary data, but doesn't store it, but also our
       | algorithm is implemented server side, so there's no leakage of
       | proprietary stuff.
       | 
       | A month later, the app is done and tested and I'm decoding data
       | from the website on real hardware. I move on to the next project.
       | 
       | Three years later, the Xbox 360 is out, I decide I'm tired of
       | filling out reimbursement forms for Heroku and its got to be a
       | security risk with no updates in 3 years... so I take a look at
       | the apps stats to see if its feasible to shut it down--exactly
       | zero users. Nobody ever attempted to use it, not even once.
       | 
       | Ironically and unknown to me, the source code had been lost in a
       | freak accident and when I deleted the Heroku account that was the
       | only copy of the source left.
       | 
       | Even worse, a year later someone claimed to have a use for the
       | app and where was it please? And I had to explain we no longer
       | had the source. I remember a very long e-mail about how
       | irresponsible we were.
        
         | arthurcolle wrote:
         | Cool story thanks for sharing - so how did they get around the
         | issue for three years without the app?
        
         | AmericanChopper wrote:
         | The worst programming experience of my life related to lost
         | source code.
         | 
         | I was working for a place that had a service running from a
         | Java app that was customized for each customer, about 200
         | copies of roughly the same app. There was source control at
         | some point, and when a new customer was being on boarded they'd
         | just make the customizations they required, compile the app,
         | and deploy it.
         | 
         | By the time I worked there (years later), all source code had
         | been lost, and I was tasked with creating a CI/CD system that
         | included managing these apps (they'd now decided they needed to
         | be maintained).
         | 
         | For each one I had to decompile the whole thing, rewrite the
         | code into a human readable format, redeploy and test it. They
         | were filled with all sorts of horrible anti-patterns too, like
         | hard coded file paths, and some of them were only used once a
         | year (but for an absolutely business critical process).
         | 
         | About half way through we had a major data center failure that
         | meant we had to do a failover, which of course broke most of
         | these apps with all their hard coded configuration. So instead
         | of having months to work through all of this garbage, I was
         | asked to get them all working immediately.
         | 
         | I got them all working in 3 days, which I thought was quite a
         | monumental accomplishment. But my CEO was very dissatisfied
         | that it took so long. I quit a couple weeks later, and still
         | almost regret putting so much effort in to saving them. A
         | friend of mine still works there and apparently all of these
         | applications are in exactly the same state as I left them.
        
       | karaterobot wrote:
       | Slightly frustrated to read this, because this is user research
       | 101! It's really impressive when someone independently discovers
       | practices from an outside discipline, just by observation and
       | inference. However, somebody could have saved this poor guy a lot
       | of frustration by not forcing him to develop a product design
       | methodology from first principles.
        
       | huang47 wrote:
       | thanks for this great write up and I wish I could read this 10
       | years ago :).
        
       | kerblang wrote:
       | One of many things I learned from writing software just for
       | myself is that I'm just about as bad as anybody at figuring out
       | what I really want, even when I'm talking to myself. I've even
       | had one or two cases where I ignored a feature I asked myself
       | for, and much later realized: Hey, I could actually use that. The
       | worst is asking myself, "How many times do I have to ask for this
       | before you quit procrastinating and just get it done???" I'm not
       | sure which of me is the bigger jerk.
        
         | Arrath wrote:
         | Oh hey its me. I've done some painstaking work to add a feature
         | (hell, even just an excel macro that at the time seemed useful)
         | and realize like 9 months later I've used the feature a
         | whopping 3 times.
        
         | austincheney wrote:
         | The challenge there is when people start using your personal
         | project. Yes, you remain in control and you remain the primary
         | user. But... now regression and features become a much greater
         | concern because the last thing you want to do is harm other
         | people even if they are only a secondary audience. As the
         | project grows this becomes the most pressing concern regardless
         | of who is the primary user.
         | 
         | That begs the question: Why bother growing the application
         | beyond the smallest set of explicit use cases? When you are the
         | primary user AND the only use environment or input samples are
         | written by you life is simple. The moment you must analyze
         | something not written by you, even if this usage is only for
         | you, the problem cases blossom. If your application refuses to
         | solve for those cases then you need to add more features or use
         | a different application.
         | 
         | Those two scenarios seem to feed each other which becomes
         | evident by traffic or usage numbers as you pull your hair out
         | keeping up with some hobby application.
        
       | yupper32 wrote:
       | A fine post and I'm sure a fine tool, but why is an internal
       | linter tool the subject of a proper academic paper?
       | 
       | I can't imagine writing an academic paper for any of the projects
       | of similar complexity and general interest that I've worked on.
        
       | endisneigh wrote:
       | This was a nice article, but I'm not sure the title is
       | representative of its contents. I think the first (Keep your
       | users in the loop, always. Do not go build in isolation) or
       | second to last (A user's workflow is everything ) bullet the
       | author uses for their summary is findings to be more enlightening
       | and representative.
       | 
       | Internal tools definitely require a close relationship with some
       | set of users to really validate what's being worked on. It's just
       | too easy for teams to make unused internal tools. The feedback
       | loop is generally just not there initially. You really have to go
       | and find some users. In this way it's similar to pre-seed stage
       | startup life.
        
       | david_allison wrote:
       | Great article, but I disagree with the premise.
       | 
       | Code review is too late for most automated analysis (at the level
       | of: "parameter isn't validated" as seen in the screenshot), it
       | should ideally be done as a compiler/lint check in the IDE, and
       | at worst as a git pre-commit hook.
       | 
       | In most cases it's not worth sending a code review if there is
       | automated feedback which can and should be addressed before a
       | human sees it. It streamlines the reviews for reviewers, and
       | gives new contributors a much better experience as they have less
       | feedback to address, and more confidence that their code is
       | correct.
        
         | Quarrelsome wrote:
         | There's nothing more frustrating than a stupid machine telling
         | me it knows better when it doesn't. I used to work on a team
         | where the build defaulted to fail if something wasn't used and
         | debugging was a fucking nightmare because the moment you
         | comment out a block of code there's a cascade of warnings into
         | errors that is just never ending (it was typescript so it
         | leaked all the way back to module definition). I had to piss
         | away some time to write a script to turn a bunch of the rules
         | off and then remember to re-enable them later or I'd break the
         | build by breaking someone's OCD.
        
           | macando wrote:
           | Had an issue like that. The workaround snippet that fixed it
           | was aptly named stfu.js by the author.
        
           | marcosdumay wrote:
           | Well, don't turn warnings into errors. Doubly so on your
           | development environment. That's not a good reason for not
           | running a linter while developing.
           | 
           | But, of course, if the decision was out of your hands, people
           | that do that are usually the same that enable all linter
           | rules. Neither decision makes for a good development
           | practice.
        
         | 3pt14159 wrote:
         | Your comment is more true today than it was back then, not that
         | I disagree with you posting it. Back then linters were a
         | twinkle in the hopeful eye of software devs. Now they're battle
         | hardened.
        
           | buescher wrote:
           | Back then was 2018. Lint dates from the seventies. I doubt it
           | was the first static analysis tool, either.
        
             | 3pt14159 wrote:
             | You're right. I read 2008 in the post and thought the
             | writer was talking about a time shortly after then. By the
             | late 2010s linters were prevalent.
        
       | caseyross wrote:
       | When you ask people to imagine a feature, they're going to
       | imagine the absolute perfect version of the feature, for them
       | personally. A feature that requires no effort to set up or use,
       | provides exactly the information or functionality they want, and
       | never gets in the way of anything else.
       | 
       | Everyone takes for granted how smooth their own workflow is to
       | them, both because they're already used to it, and because they
       | sunk effort into it to make it smooth (via learning or planning),
       | which has probably been forgotten. So, people just take for
       | granted that new features will maintain that acquired smoothness
       | --- unfortunately, they usually don't.
       | 
       | As the author found out, most of the work in building features is
       | often not in the "raw functionality" of the feature, but rather
       | in making something that performs its functions while _also_ not
       | costing the user significant extra mental or physical effort to
       | use.
        
       ___________________________________________________________________
       (page generated 2021-09-29 23:00 UTC)