Live data from Hacker News

Qualities that I believe make the most difference in programmers’ productivity

antirez.com

301–310 of 321 posts

Re: Qualities that I believe make the most difference in programmers’ productivity

#301
post #264
post #222

Earlier quoted context omitted.

If you need smooth scroll you can't rely on browser support and need to use a library or cook something up yourself. It's surprising how few browsers work with smooth scroll. Today it's basically only Firefox; not even Chrome.

What web page or application would need smooth scrolling? What can't work with whatever scrolling is normal for the browser/OS/hardware? Looking cool at the request of some manager does not constitute a need.

Imagine there's a scrollable list of items and you want to scroll one particular item into view when some event happens. Without smooth scroll the item just pops into view and the user may not see it happening. It's a usability issue-- when the user interface jerks instantly, the user can lose context about what's happening. When it's smoothly animated it's easier for the user to keep track of what's happening in the user interface, and to see how one interaction triggers the next.

Done right, animation isn't just snazzy, it produces a more usable, more approachable user interface. It helps the user keep a good mental model of what's going on. It's easier for them to mentally track "ah, when I select this item, it also selects that other item in the other list".

It's the same reason why when you click an app on your phone it animates up from the app icon when the window opens. The animation wordlessly tells the user "I'm opening this app, and the window that's appearing is born of the icon you just clicked." Necessary? Not exactly. More natural? Absolutely. Nothing just snaps into existence in the real world, except for maybe things like lightning.

When things appear out of nowhere it can be jarring. Animation is especially called for when it might not be intuitive why you're making a change to the visual state, or when you want to call attention to something.

Keep in mind that a generation ago, pretty much every piece of software (even games!) came with a printed manual that the user needed to read first before expecting to be able to accomplish anything. Today users expect to be able to figure things out for themselves, and animation is part of the user experience that helps users learn their applications naturally by exploring the user interface.

Re: Qualities that I believe make the most difference in programmers’ productivity

#302
post #264
post #222

Earlier quoted context omitted.

If you need smooth scroll you can't rely on browser support and need to use a library or cook something up yourself. It's surprising how few browsers work with smooth scroll. Today it's basically only Firefox; not even Chrome.

What web page or application would need smooth scrolling? What can't work with whatever scrolling is normal for the browser/OS/hardware? Looking cool at the request of some manager does not constitute a need.

[deleted]

Re: Qualities that I believe make the most difference in programmers’ productivity

#303
post #236
post #222

Earlier quoted context omitted.

If you need smooth scroll you can't rely on browser support and need to use a library or cook something up yourself. It's surprising how few browsers work with smooth scroll. Today it's basically only Firefox; not even Chrome.

Not to be a fanboy but I use a Mac and one of the things that they clearly did a huge amount of research and fine tuning on is the scrolling. I can always tell when there's non native scrolling on a site and it always sucks. Maybe I'm out of touch, but IMO the smoothness of the scrolling is an OS or hardware level feature. If somebody's OS or hardware does not scroll smoothly, then clearly it's something that they're…

I'm not talking about manually implementing a virtual scrollable canvas. I'm talking about "make item 19 in that list box visible in the middle of It's display area."

I agree that scrolling virtual spaces should be native and hardware accelerated whenever possible, but I think we are talking about different use cases.

Re: Qualities that I believe make the most difference in programmers’ productivity

#304
post #13

Everything from the original post sounds reasonable, you should absolutely read it. Just some random thoughts to add to it: * For most of my past clients, the skill / output of their programmers was not the bottleneck, even though they thought so. As long as something is not a bottleneck, there's not point in trying too hard to optimize it (since you can get better ROI somewhere else). * Software is a team effort. Im…

Come on, Antirez is a x10 programmer, he coded one of the most brillant software of the last decade. It's so well done I use it as an example in my trainings, making people compile it to stop being afraid of building from source because I know it never fails and it's so damn simple. And programmer reading anything on his blog, or anything on HN for that matter, is not an average programmer anyway. The simple fact you…

But a lot of what you describe is what most people here would describe as basic competence. We're not talking about something like continuously deploying to multiple regions with architectures that permit high scalability, availability, yadda yadda. We're taking about the ability to create a simple back-end that won't lose customer data (because it has tested backups), obeyed 80/20 rules on cybersecurity, and are reasonably maintainable (code isn't suffocating under centuries of tech debt).

Every other engineering discipline has licensing requirements. People think software is special because the industry moves quickly, and indeed I agree that creating a formal, standard licensure body is extremely difficult, bordering on impossible, but think of it this way:

If, hypothetically, there was a proper licensure - how many people would be competent enough to earn it? We may think that there's a labor shortage now, but really, it pales in comparison to how bad things could be if all of a sudden everyone had to get licensed.

That's the real problem - most "software engineers" are not at a level of competence where they could get licensed, if such a license existed. And the industry's way of dealing with a lack of licensure is to throw more people and money at the problem, because the problem has defied all attempts to think smarter about solving it.

Re: Qualities that I believe make the most difference in programmers’ productivity

#305
post #229

Earlier quoted context omitted.

One of things that come with experience is the ability to foresee the potential changes and ensure that, when possible (preferably during the initial spec phase) the solution is extensible/flexible enough to accommodate the most likely changes. For a simple example, if you're asked to implement something like a blog, you would naturally be prepared to be asked for authentication, authorization, contact us forms, comm…

That's exactly what I think does not work. You can't see the future. Of course a simple project want to have that, but a big project is unpredictable. You should make it flexible by having a great test infrastructure to move forward fast, but you should try to create something that doesn't exist yet. Maybe it is needed, maybe not, it's just too unpredictable to write code for something that doesn't exist in the custo…

I didn't mean "implement features before they're requested". What I meant was that designing flexibly will allow you to iterate better, and given some experience, you will probably be able to "predict" the next feature req or 2.

Re: Qualities that I believe make the most difference in programmers’ productivity

#306

Lol, HN, the place where people try to answer to an expression, a saying or an image by being technically correct. Your comment could be a line from Sheldon in the Big Bang Theory :)

We detached this subthread from https://news.ycombinator.com/item?id=13753531 and marked it off-topic.

Re: Qualities that I believe make the most difference in programmers’ productivity

#307

Earlier quoted context omitted.

https://www.techopedia.com/definition/31673/10x-developer See top answer here: http://softwareengineering.stackexchange.com/questions/17961... The "10 times" didn't come from nowhere, people who use the term to simply mean a great (and not literally "ten times productive") programmer ignore the origin of the term.

Oh God you are taking this seriously ain't you ?

You've crossed into incivility in this thread. We ban accounts that do that. Please don't do it again.

Re: Qualities that I believe make the most difference in programmers’ productivity

#308
post #270

Earlier quoted context omitted.

Another great thing here: "Design sacrifice: killing 5% to get 90%." I remember a very specific example of this from Perl 6 development circa 2009. perlgeek (I think) and I had been struggling with coding up the sequence operator for a couple of months. Every time we thought we had it, someone would come up with a case that broke the system again. pmichaud (not sure if it's the same pmichaud here on HN) comes up to u…

Finding a better solution by changing the problem is great, especially as the problem stated is often not the problem faced. Not doing something, or doing something dramatically simpler, ends up with less code being written. The cost of writing the code is usually a small fraction of the cost of supporting it during over the life span of the system. One problem I faced was a client that as part of an e-commerce re-im…

> the problem stated is often not the problem faced.

100% true! So many times I was assigned to the task in issue tracker, where requirements was written, estimation was made, but after I sat and tried to solve given problem, it turned out that 80% of issue description was false - real problem was totally different than it was written in task.

What seemed right on planning meeting, turned out to be quite false in the process.

But quite often managers/product owners etc. don't understand this. They often believe 100% in planning ahead and issue tracker/backlog descriptions... And when something is going off the track (like it sometimes does - when problem needs extra time for thinking through) they aren't so glad because thinking and design process was not budgeted in issue tracker (even if it could lead to the better design on the long run).

Re: Qualities that I believe make the most difference in programmers’ productivity

#309
post #301
post #264

Earlier quoted context omitted.

What web page or application would need smooth scrolling? What can't work with whatever scrolling is normal for the browser/OS/hardware? Looking cool at the request of some manager does not constitute a need.

Imagine there's a scrollable list of items and you want to scroll one particular item into view when some event happens. Without smooth scroll the item just pops into view and the user may not see it happening. It's a usability issue-- when the user interface jerks instantly, the user can lose context about what's happening. When it's smoothly animated it's easier for the user to keep track of what's happening in the…

Exactly, and just we wait for mainstream VR/AR. I believe we'll see quite a lot of animation skeumorphism (is that a thing? I mean realistic animation/appearance relatively to a real world setting, e.g. gravity on objects, diffraction on transparency, etc). For a few years at least, time for users to learn new interaction paradigms and positioning within a virtual/hybrid environment.

Re: Qualities that I believe make the most difference in programmers’ productivity

#310
post #265

Being able to see edge cases and bugs before they happen will kill your productivity. I think the hardest part is to ignore those and deliver. If no one uses the software, then no harm done, and if the software get popular you will hopefully get funds to pay back the tech debt.

Depends what kind of software you write. Wouldn't want to get into an aircraft that has software written to those standards.

It would be great if programmers got more responsibility with increased skill and experience. But that is often not the case. There are very few jobs for highly skilled and experienced programmers and hackers.
Post reply on HN