Live data from Hacker News

Developer Experience: Fundamentally harder than normal UX

gabrielpickard.com

1–10 of 125 posts

Re: Developer Experience: Fundamentally harder than normal UX

#2
> Tests are a usability dead end -- I know this may be contentious, but I believe test suites are another realm of excessive moralizing en lieu of better tools and better processes. Too often they function as a security blanket that simply encases the parts of the code that are unit testable, while leaving the vulnerable, untestable bits fluttering in the wind. Approaches such as generative testing seem more promising.

I'm not quite sure what the author is arguing for here in particular.

Anything that makes writing tests a bit easier, e.g. suggestions for additional test cases, would be cool, but ultimately tests are about writing down your assumptions/expectations about the code.

No, they are not formal proofs and sometimes they are not perfect but they still provide a lot of value. So far I haven't found a good reason not to write tests (since I outgrew my newcomer attitude) and yeah integration tests are usually what I focus on most. For any case where testing whole systems today is hard, there are some fundamental challenges (e.g. end to end web UI test). I don't quite see how tooling will get rid of the need for tests.

Re: Developer Experience: Fundamentally harder than normal UX

#3
> How do I run this thing? Where does the code start? Is my system configured correctly?

This is why there are occasional spasms of "back to basics" or plaintive remembering of the BBC Micro. You power it on, it beeps, and within a second you're in the interactive development environment. Typing code runs it directly. Typing code with a line number adds it to the program. No configuration, containers, downloads, updates, dependencies or uninformed choices to make.

> Why do we treat this as a moral failing instead of a usability issue?

Yes. This applies in so many places. Learn from "Poka-yoke". The system should make it easier to do safe things and harder to do unsafe things.

> Tests are a usability dead end

Depends what you mean by "tests". A strong type system does away with certain categories of test (and conversely a lot of the heavy unit testing usage comes from communities with weakly typechecked languages). But both types and tests are capturing a human-level requirement of "if X then Y", a constraining of the problem space.

This is why many successful code archaeology maintenance projects start by building a test suite to capture the current functionality of the program. An executable requirements document.

Re: Developer Experience: Fundamentally harder than normal UX

#4
> We've simply gotten used to them: Dealing with the idiosyncracies of bash, vi, or the JavaScript type system

This stuck out to me, there seems to be a trend in UX/UI where any move away from the "simplest path" is seen as a huge negative. Could it be the case that we use these tools (especially UI patterns like vi) because after the learning curve the give a huge amount of value? It seems like we are assuming that we should make a developer tool with the same level of "immediate familliarity" that we try to build into a website where customers will bounce easily, for an audience who is willing to spend time learning a tool if it provides value to them.

Re: Developer Experience: Fundamentally harder than normal UX

#5
I think that improving DX might be the most important thing of the future software industry. If a single developer devotes his live to a better DX, hundred of thousands of developers might be significantly more productive.

I really like to explore new DX approaches (just recently, I published an extension for VS Code enabling visual debugging [1]). But I find it hard to make a living out of it, as so many companies find it granted that everything is free. They would rather hire another developer than paying for licenses that might effectively increase the effiencency of the developers they already have.

[1] https://github.com/hediet/vscode-debug-visualizer/blob/maste...

Re: Developer Experience: Fundamentally harder than normal UX

#6
I told my UX buddy half a dozen years ago that I was optimistic that there seemed to be a glut of UX people coming because we were going to steal a bunch of them to look at DevEx issues.

I spent some time nerding out over woodworking hand tools a few years back and it pretty well cemented for me something that I’ve suspected for most of my career: people down in the muck have very limited vision. That your output is only better than your input by degrees.

I’m not sure there would be much fine woodworking at all if the best woodworking tools were only as good as the best software tools. There is no Lee Valley of developer tools. You can’t make me stop using JetBrains (individual licenses were their best idea every), but it still doesn’t rate above a Woodriver, and if I’m honest some of their stuff is Stanley level, and not even the antique stuff. And their stuff is better than just about any other tool I use all day.

I suspect Harbor Freight could make better software than Atlassian, and I don’t even mean that as a metaphor. I think I could take harbor freight employees and get better requirements out of them because they wouldn’t be up to their ears in cognitive dissonance.

Re: Developer Experience: Fundamentally harder than normal UX

#7
I don't think that DX is harder than UX because developers somehow have a more complex task than everybody else, and that there's therefore a richer "experience" to navigate than in other domains. I think it's because developers tend to be developers, so are more aware of and willing to accept the nuances and complexities that go into development. In other words, we've got a more detailed understanding of the developer experience because, as developers, it's what we experience.

We accept the heritage of developer tools - the keyboard-driven interface that displays to a teletype emulator, the edit-compile-debug workflow - and build tools that improve the processes that have built around those legacies. This is why when something comes out of left field like Adele Goldberg and colleagues describing Smalltalk, we find it easy to adopt the approach to code organisation on offer and hard to adopt the image model, browser-based workflow, debugger-driven iteration, and other changes.

Meanwhile, when we go out into other domains, we use a little bit of understanding of that domain, a lot of reasoning by analogy, and an intention to "disrupt" what already exists and "eat the world", and create something that works very well for the spherical user in a vacuum without all of the detailed understanding that comes from having grown up in the system and learnt from people who grew up in it even longer ago.

Re: Developer Experience: Fundamentally harder than normal UX

#8
post #4

> We've simply gotten used to them: Dealing with the idiosyncracies of bash, vi, or the JavaScript type system This stuck out to me, there seems to be a trend in UX/UI where any move away from the "simplest path" is seen as a huge negative. Could it be the case that we use these tools (especially UI patterns like vi) because after the learning curve the give a huge amount of value? It seems like we are assuming that…

I think even complex products should have a linear progression from newcomers, curiously exploring the product for the first time, to experts, who want to do certain tasks as fast as possible.

It's simply not possible to learn vi by just using vi.

Also, the author emphasizes that just dumbening a product is not the solution.

Re: Developer Experience: Fundamentally harder than normal UX

#9
post #4

> We've simply gotten used to them: Dealing with the idiosyncracies of bash, vi, or the JavaScript type system This stuck out to me, there seems to be a trend in UX/UI where any move away from the "simplest path" is seen as a huge negative. Could it be the case that we use these tools (especially UI patterns like vi) because after the learning curve the give a huge amount of value? It seems like we are assuming that…

Maybe a bit unrelated, I got used to Windows 2000, then window XP, then Gnome 2, then Gnome 3 came. So I stuck with Gnome 2, then moved to XFCE, and now with RHEL 8 I had to use Gnome 3 because there were no other options. Gnome 3 is an absolute horror show. I don't know who made it, for who, and what the theory behind it is but I don't see how it would be easier to use for someone non technical, my parents both understood how to use Windows 2000. It is just weird. It is harder to multitask as efficiently as I did in XFCE and Gnome 2. Gnome 3 is not simpler - it is just more convoluted.

And I feel this is a very similar situation with other tools. I edit code with vim, in a terminal. This is simple as dirt. I do it because it is simple as dirt. Visual Studio is incredibly complicated to me because to do the creating code part my job I need to understand the following:

- How code is built.

- How to build the code without using any graphical front end.

- But now when you bring VS into the mix I need to also understand visual studio. It does not remove complexity, it adds it.

Similar thing with debugging, I need to understand all the ins and outs of debugging but now bring VS into the mix and I need to understand it's stupid UI.

I like simple, my mind is simple. I can learn things, if there are rules and patterns it makes it easier to learn, but the less things I have to learn the happier I am. I don't have an option to not learn some things, like how to do build automation, how to debug code, how computers work, etc. But I do have an option to not learn something entirely useless like VS.

I think the lie being sold is that somehow you can be a programmer without actually knowing how to use a computer. And to know how to use a computer is not the same thing as knowing how to click on things in the UI with a mouse. To know how to use a computer you need to understand how to use it to do automation - and once you need to do this VS is just a nuisance.

Just a rant I guess.

Re: Developer Experience: Fundamentally harder than normal UX

#10
I wish we could scrap the term experience again and just go back to interface.

I connect experience with hyped concepts that are already forgotten today.

That said, tendency to decrease choice seems to only serve certain users. Other feel just as restricted as developers, which are also users, so the dichotomy should be questioned.

Post reply on HN