A question has been lingering in my mind for quite a while. Are software developers entitled for the time they put on at the work, or are they supposed to get money only for the work that actually goes on building the working product?

I spent 3 and a half out of my 4 months of co-op term on just learning, learning and learning and building a half-assed product. Around 40% of my time was spent on understanding the domain and underlying technology and 40% time was spent on learning PHP and Drupal. Changing the paradigm from a Javascript developer to Drupal PHP development was the biggest adjustment I had to make.

On just 2 days before the demo, my Drupal website and module crashed, and I had to rebuild the whole thing in 2 days.

Now the question which has been bugging me is this: Am I just supposed to getting paid for final built product? or am I entitled for the learning and experimentation that goes before it?

If viewed in a rational and pure capitalistic way, it makes total sense if an employer only hires someone who has already built a similar product that they are supposed to build and only pay for the actual development work. From this perspective, I should be just getting paid only for the last two days.

What, then would justify me getting the previous three months’ salary? If we compare software development to medical profession, a doctor only gets paid for the patients he treats and not for the 14 years of learning and training that goes before that. The doctor is performing when he is at work, he/she is producing results.

How would an employer justify paying a developer for the entire duration of the product development, when some of it may have been spent on learning the tools and technology? If I put myself in an employer’s shoes, I can’t come up with a better argument.