Live data from Hacker News

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

antirez.com

271–280 of 321 posts

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

#271
There are so many factors at play in team and client environments, so the best benchmark to use is your own productivity as a programmer.

1. Solving problems for the Nth time instead of the first leads to substantial gains in productivity, easily 10X gains on your first attempt.

2. Architectural decisions add another multiplier on the above: picking the wrong database type, structuring and reorganising your models, spending time to design ahead vs coding right away, all can /10 or 10X your project easily from fixes and re-dos alone - combine both 1 and 2, and you have potential 100X gains.

3. Risk-distributing the project work: eliminating the worst 5% as the author says, and/or writing the most complex parts first to reduce risk of massive rewrites in case something doesn't meet expectations in its most critical functionality.

4. Having competent business requirements providers who won't move the ground beneath your feet. You can be 10X or 100X more productive when writing new code, and that much slower when rewriting someone else's bad decisions. It's no different than trying to build a skyscraper on foundations built for a garage.

Stack the above as A x B x C x D and you can see why you might be able to beat your past self 10X or 100X and more between projects. Having teammates who can beat you is even better if you can learn from them and accelerate your own progress by skipping time consuming mistakes.

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

#272
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.

I think that knowing the most common edge case(s) will cause 80% of the bugs means you can solve (or design around) the most common issues and move on.

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

#273
It seems to me a few people fit their jobs/environment others don't. The few who fit are productive, those who aren't where they are supposed to be are not. We should be discussing how to help people learn what environment/job works for them and empowering them, instead of trying to focus on the mythical 10x programmer. Don't get me wrong some programmers are very talented (and thus more productive), but I think this is due in great part to their ability to add value in a particular setting.

A 10x games programmer in a small studio could easily become a 0.1x web dev in a big web dev team.

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

#274
post #222

Earlier quoted context omitted.

> we use a javascript scrolling library, for reasons etc, long story short a programmer spent a couple day trying to figure out why the horizontal bar wronly showed on edge, until I went in and dropped a display none on the bar itself. Wouldn't an even simpler solution be to just use the scrolling built into browsers?

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.

[deleted]

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

#275
post #48

In this thread: mostly people responding to the headline, not the actual content of the article. There's some fantastic stuff in here about how great design is the key to increased productivity. For example: "It is very important for a designer to recognize all the parts of a design that are not easy wins, that is, there is no proportionality between the effort and the advantages. A project that is executed in order…

Great article, as I'm a bit of an old hat myself I'd like to add a few extra categories -

Knows how to handle not knowing or getting stuck - some people have a melt down or won't ask for help when they hit a wall or don't know when to push back (we had a vendor that gave us buggy code but kept claiming it wasn't until we pushed back through our management and forced them to let us see the code).

Can visualise the program - how much of a program someone can hold in their head is the only thing I've really seen make a programmer exceptional. It is rare and I've only met a couple of people that can hold a medium sized program in their head, the whole thing this ability lets them basically just vomit it all out into the editor without having to switch between functional and structural context and really does make for a big productivity bonus (maybe as much as 4x).

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

#276
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…

This is the difference between a real programmer and a coding monkey.

Coding monkeys consider the spec the problem and try to write code that solves it.

Programmers consider the spec a part of the solution and evolve it as necessary.

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

#277
post #48

In this thread: mostly people responding to the headline, not the actual content of the article. There's some fantastic stuff in here about how great design is the key to increased productivity. For example: "It is very important for a designer to recognize all the parts of a design that are not easy wins, that is, there is no proportionality between the effort and the advantages. A project that is executed in order…

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…

Kobayashi Maru

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

#278
post #48

In this thread: mostly people responding to the headline, not the actual content of the article. There's some fantastic stuff in here about how great design is the key to increased productivity. For example: "It is very important for a designer to recognize all the parts of a design that are not easy wins, that is, there is no proportionality between the effort and the advantages. A project that is executed in order…

> Let's talk about that.

Sorry, doesn't fit in a two week sprint.

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

#279
post #222

Earlier quoted context omitted.

> we use a javascript scrolling library, for reasons etc, long story short a programmer spent a couple day trying to figure out why the horizontal bar wronly showed on edge, until I went in and dropped a display none on the bar itself. Wouldn't an even simpler solution be to just use the scrolling built into browsers?

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.

This is what I use right now for cross-browser smooth scrolling. It's native first with a jQuery fallback.

  
      html, body {
          scroll-behavior: smooth;
      }
  

  
      // Uses native smooth scrolling if available, otherwise uses a jQuery fallback
      // Just add data-scroll attribute to any anchor you want to make smooth
      // Add data-scroll-header to a sticky nav / header to offset the window top
      if (!('scrollBehavior' in document.documentElement.style)) {
          // jQuery fallback
          // Taken from https://css-tricks.com/snippets/jquery/smooth-scrolling/
          $('[data-scroll]').click(function() {
              if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
                  var target = $(this.hash);
                  target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
                  if (target.length) {
                      $('html, body').animate({
                          scrollTop: target.offset().top - $('[data-scroll-header]').height()
                      }, 600);
                      return false;
                  }
              }
          });
      }
  

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

#280
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.
Post reply on HN