1.1. Productivity¶
- What is productivity? If we put it very simply,
Then, what is Software Productivity?
Well, the output of a Software Engineer is (most of the time) source code.
- Hence,
In a sense, we can say that Software Productivity is the ratio of the amount of source code that is written (or generated) and the total time taken to write that.
The above statement is an extremely-extreme-over-simplification. It overshadows some very important aspects. Let’s first clear many mis-conceptions in the above equation:
Software engineering is not a single person show. So time spent by everyone involved must be covered.
Source Code is not the only Software Engineering activity. There would be designing, reviewing, testing, performance analysis, reports, etc.
For good quality software reviews are an essential part. Many times you have to get your work reviewed and re-reviewed with your peers. You review not only your final product but even the initial designs and sketches.
And a lot more other details, but we will skip this in overview section of the book.
Joke on code Reviews
Reviews remind me of a joke (just a joke). (No offence to developers working in a start-up.)
Your code your responsibility..
byu/yuva-krishna-memes inProgrammerHumor
Source https://www.redditmedia.com/r/ProgrammerHumor/comments/sa03o4/your_code_your_responsibility/
RIP: Chadwick Boseman
So, software productivity is not only about the time that you personally have invested in that activity, but also the time others have to invest in it.
The software also undergoes maintenance, maybe eons after the original code was written. So we need to be aware of not only the effort that is being put in now but in the future as well.
This brings us to another surprisingly common situation regarding software maintenance:
Joke on Software Maintenance
When I wrote this code, only I and God knew how it works.
Today only God knows how it works.