Is this my interface or yours? (2016)
medium.com
medium.com
But at this point in time, why aren't we reading about studies rather than an individual's musings? I'd much rather read that x% of individuals didn't immediately make the connection between "my computer" and their workstation in testing at MS.
One reason Code Complete has always been my favorite programming book is that he backed up his suggestions with real numbers from serious studies. I'd love to see similar types of writings in the design field.
But I agree, I much prefer writing based on research rather than some designer's reckons that aren't clearly labeled as reckons.
You’re using it as a noun to mean something more like “guess” or “personal opinion”. I guess stemming from informal uses like “I reckon I could ...” (used without any calculation in sight, often with an exaggerated or bragging rest of the sentence).
However, I do like it when people make comments like your original comment on HN, because now someone who comes across my comment and doesn't understand it will learn something by reading your comment.
* https://ux.stackexchange.com/questions/4348/your-vs-my-in-us...
We're setting things up for you
We can't sign into your account
Etc...If you imagine it in a creepy voice it completely changes the tone of an install.
Edit: thanks autocorrect
To give a contrived example (note: the example is about a pre-condition-like check, but that's not always the "intermediate action").
Let's say I design a sort function. It takes a linear collection (like an array or list) and returns the same (sorted). Let's say I need to carry out an intermediate action (intermediate as in, between the calling code before sorting and the sorting algorithms itself) that I need to check if the collection is already sorted, and return the collection as it is without invoking the sorting code.
The design issue I have is: should the check be inside the sort function or in the calling block just before the sort call?
It might feel like the validation squarely belongs inside the sort function but, besides this example being a bit contrived, there is a solid counter argument to be made that 'the job of the sort function is to sort'. If I am a sort function, I sort. You give me a collection, I return a sorted collection. Don't encumber me with extra checks of validating if the collection is worth sorting, or some other stuff.
This is a general problem not specific to coding. In an interface between a manager or a team-lead and the engineer, there are often situations when the engineer says "It's my job to do this, you give me the task in this, such-and-such prepackaged, form and I will return you the results." Later, the lead wants the engineer to improvise a bit and do this extra thing, an intermediate action, before actually doing the task. This "intermediate action" fits squarely in neither the lead's or the engineer's roles. Ignoring the tilted-balance-of-power in which usually the engineer ends up doing what's slightly vague, which I consider an ad-hoc solution, the engineer could just as well say "Why don't you do it?".
I guess there's a 3rd possibility in which a 3rd party does it. So in the case of sort, we have a pure-sort function, which is called by "an outer-sort" function which has all the checks, and if they all pass, only then the pure-sort is called. And that outer-sort is called in the calling code instead of calling pure-sort directly.
Which one of these is the best? most optimal? correct? What should even be a criteria for judging the implementation of such a scenario? I don't know.
edit: another example, you have an in-place sort impl. and a non-in-place sort impl. In the calling code you wish to switch between the two making sure it's always non-in-place. Should you wrap the in-place sort in a make-a-copy-before-sorting wrapper? or should the in-place impl do it itself just before returning? or should the calling code handle the two types of sort with some if check?