To make some of the ideas in this article a little more concrete, here are some research demos I’ve made: * Legible Mathematics, an essay about the UI design of understandable arithmetic: http://glench.com/LegibleMathematics/ * FuzzySet: interactive documentation of a JS library, which has helped fix real bugs: http://glench.github.io/fuzzyset.js/ui/ * Flowsheets V2: a prototype programming environment where you see…
Developer Experience: Fundamentally harder than normal UX
101–110 of 125 posts
Re: Developer Experience: Fundamentally harder than normal UX
#102I think developers are missing the testing practices UX designers have grown accustomed to: 1. Usability tests where developers literally sit down and watch someone install and use your library from scratch (I find a lot of developers do not like to do this). Things like, seeing where they have to look up documentation (and how they do it), what bugs they hit, and how often they make common mistakes. I think a lot of…
Why doesn't every error message have a link to a specific page with discussions, instructions, etc. Or maybe even a button you can click where the machine tries a best guess at an automatic fix?
Re: Developer Experience: Fundamentally harder than normal UX
#103I 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 develop…
A healthy exercise, I think, is to replace "developer" with "scribe" whenever we have these conversations. It becomes clear that in large part it is the overall culture that is missing the point -- which should be a kind of mass literacy. Smalltalk is a different universe indeed, but its goals were also completely different from today's. Its creators assumed that "using" a personal computer would be, in part, "progra…
Re: Developer Experience: Fundamentally harder than normal UX
#104I disagree with the premise. The problems the author identifies largely have already been solved . The solutions just haven't become universal, generally for reasons completely unrelated to the actual problem, and more to do with PR.
Re: Developer Experience: Fundamentally harder than normal UX
#105> 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 promisin…
> So far I haven't found a good reason not to write tests...I don't quite see how tooling will get rid of the need for tests. I write device control software. It’s very difficult to have true automated testing of things like drivers. You can write unit tests for subsystems, like packet parsers, but integration testing generally requires good ol’ “monkey testing.” “Just write a mock!” Is what I hear all the time. Mock…
Re: Developer Experience: Fundamentally harder than normal UX
#106I 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 f…
On impact: I've been running the numbers for a tool I'm working on and the projected savings for the industry look insane! Just by shaving off 10 minutes here or there you can contribute a lot.
Re: Developer Experience: Fundamentally harder than normal UX
#107"DX" is indeed important. Myself and a number of other academics have been researching the topic for years. See here for examples of publications in the area: http://web.eecs.utk.edu/~azh/publications.html Also relevant, I wrote a blog post for students to get started in human factors in software engineering: http://web.eecs.utk.edu/~azh/blog/guidehciseresearch.html
Re: Developer Experience: Fundamentally harder than normal UX
#108Earlier quoted context omitted.
A healthy exercise, I think, is to replace "developer" with "scribe" whenever we have these conversations. It becomes clear that in large part it is the overall culture that is missing the point -- which should be a kind of mass literacy. Smalltalk is a different universe indeed, but its goals were also completely different from today's. Its creators assumed that "using" a personal computer would be, in part, "progra…
We need to find our equivalent of a printing press! For what it's worth, possibly that won't be just one thing, but a wide array of tools?
We need to think hard about what reading and writing really are. These are the only technologies of their kind and they have had a completely different kind of qualitative effect on individuals and whole societies than other types of media and/or technical systems.
It brings up interesting questions. If you have a scribal culture, what are the interests of the community of scribes? Would they support easier writing systems, more amenable to learning by outsiders, or something more arcane that protects their cultural and social position (or something in between)?
Also what is the transition from one literate state to another like, what does it entail, how long does it take, and what kinds of "works" appear in the interregnum? In the Middle Ages the Universities in the west were largely concerned with endlessly rehashing Aristotle (a thinker on the border between orality and literacy) over and over, without coming up with original ideas. Is the enclosed community of developers today more like the scholastics than they'd care to admit?
There are stark differences between systems like Unix and those hinted at by Hypercard, Oberon, Smalltalk and the rest. It's like we know about the alphabet and what it is capable of, but the cultural inertia of complex cuneiform systems is too much to get past.
Re: Developer Experience: Fundamentally harder than normal UX
#109To make some of the ideas in this article a little more concrete, here are some research demos I’ve made: * Legible Mathematics, an essay about the UI design of understandable arithmetic: http://glench.com/LegibleMathematics/ * FuzzySet: interactive documentation of a JS library, which has helped fix real bugs: http://glench.github.io/fuzzyset.js/ui/ * Flowsheets V2: a prototype programming environment where you see…
[1] The weird symbols might seem like an initial barrier to this, but they're only hard to read if you're unfamiliar with APL; they're actually very easy to learn and remember, as there's not that many of them and they all do very basic operations. However, APL loves operator overloading and likes to give operators different functions based on whether they're used in prefix ("monadic") or infix ("dyadic") forms, and there are also higher-order operators that consume the operators immediately adjacent to them and then operate on the expressions after that; all of this makes the nominally right-to-left parsing require a fair bit of mental effort instead of being able to rely on immediate visual recognition.
Re: Developer Experience: Fundamentally harder than normal UX
#110Earlier quoted context omitted.
> So far I haven't found a good reason not to write tests...I don't quite see how tooling will get rid of the need for tests. I write device control software. It’s very difficult to have true automated testing of things like drivers. You can write unit tests for subsystems, like packet parsers, but integration testing generally requires good ol’ “monkey testing.” “Just write a mock!” Is what I hear all the time. Mock…
Just a question. Do you imply that the mock of a device should simulate/emulate the entire behavior of the device? Because you definitely don't need to do that and it would, of course, be a vast and hard-to-justify endeavor. You only need to _mock_ the object, that is emulate behavior on a small scale.
It depends on what we are testing.
It can actually be worse than useless to rely on the "perfect world" of unit testing. I have had a nasty shock, when switching from mocked behavior to real-world behavior. I write about that here: https://medium.com/chrismarshallny/concrete-galoshes-a5798a5...