views:

341

answers:

8

As a programmer, what would you consider the most important factors that determine productivity?

I am looking for an answer of the type:

n% language
m% experience
i% programming mojo
where n+m+i = 100

Or maybe

productivity = (0.2*environment + 0.8*language)*skill

I am not a very experienced programmer, so I can't judge for myself. I would be really interested in the responses of experienced programmers.

Edit:

You can add other variables :P

+1  A: 

0% language

5% enough rest between breaks

5% social/internet help

35% experience

55% programming mojo

Experience is definitely important when it comes to programming because the more code you write the more it sticks with you, but that passion for it is most important

TStamper
A: 

productivy = freesoftdrinksandothergoodies

Not really a programming question.

paxdiablo
A: 
productivity = ((.2)environment + (.5)programmingMojo + (.3)experience)

You can have the best environment and a ton of experience but if you don't have the Programming Mojo to get the good stuff out of your environment and experience, neither of them are going to get you more than half way...

Justin Niessner
+1  A: 
25% methodology
5% platform
15% tools
20% experience
20% skill
10% social/environment
5% time to relax
tvanfosson
A: 
  • 70% coffee
  • 30% coffee quality
  • 0.0000001% language,experience,mojo,etc

more seriously,

You can't really put solid numbers on it, but things that I like to think would increase my productivity:

  • Unlimited coffee/smoke breaks
  • Interesting problems to solve
  • Blocking stackoverflow internet access
  • 2-3 monitors
  • good keyboard
  • only my own sound (ie nobody else in room)
  • close proximity to people working on similar product
  • logitech mouse with pew pew scroll wheel
  • grad dev/intern/zombie to offload crapwork to
jim
A: 
(l * ((p + a) * e) + t - i) / h
  • p = problem solving*
  • a = pattern abstraction*
  • e = experience/knowledge*
  • l = planning/design*
  • t = tools*
  • i = total interruptions/meetings
  • h = total hours

*ranked on a scale of 1-10, with 10 being the best possible

VirtuosiMedia
+1  A: 
45% Skill
20% Environment
20% Tools
10% Experience
 5% Languages

Being passionate about software developement is also import, but I'd almost bundle that with skill as they seem to be strongly correlated.

As a side note, if you're interested in productivity check out Peopleware (http://www.amazon.com/Peopleware-Productive-Projects-Teams-Second/dp/0932633439). It has some interesting statistics about the productivity of the programmers. In short the best outperform the median by 2.5:1 and the worst by 10:1. If I remember correctly there was no correlation between experience and performance unless you had less than 6 months of experience.

mattkemp
A: 

For me, in my current job, the things which most negatively affect my productivity have nothing to do with languages, etc.

  1. Lack of hardware. (I work for a HW company, and my software has to work on lots of different hardware. Kind of hard to debug stuff when you don't have the only hardware on which the bug occurs.)
  2. Distant testers. The guys finding the bugs are on the other side of the planet, along with the needed hardware. Send them an email? Get a response the next day.
  3. Bad bug reporting software. I won't say more about that.

But... to try to frame the answer in the way you are looking for it, which ignores many roadblocks that have nothing to do with anything sane, I'd say programming mojo eclipses the other factors you mention by so much that the others are irrelevant. The best programmers will crank out an astonishing amount of good code in a very short time, leaving onlookers with jaws on the floor, under the right circumstances.

smcameron